fuel-bft
fuel-bft copied to clipboard
Tendermint consensus in Rust
Since voting power is stake weighted, we need to track validator state in the consensus metadata and use it for determining consensus thresholds.
Listen to votes and follow the consensus for the network to import new blocks. Currently, the consensus mechanism will be idle unless it can vote (the keychain provides round public...
We might benefit from having generic signature primitives for the consensus votes since the protocol might use validators from external networks _Originally posted by @leviathanbeak in https://github.com/FuelLabs/fuel-bft/pull/9#discussion_r857701229_
This deviates from tendermint-style algorithms and could lead to rounds being arbitrarily skipped. This also doesn't allow for the eventuality guarantees of tendermint: > The timeouts prevent the algorithm from...
why not use thiserror? _Originally posted by @Voxelot in https://github.com/FuelLabs/fuel-bft/pull/9#discussion_r833763560_
Rust doesn't support async traits as of the moment. As soon as the feature lands in stable, we should remove `async_trait` from our implementation in favor of the canonical implementation....
The public key of a validator might change depending on the round. _Originally posted by @adlerjohn in https://github.com/FuelLabs/fuel-bft/pull/9#discussion_r830430866_
> I'm fine with merging without that for now. But eventually, this should include some kind of tokio task or executor that drives progress and handles timeouts etc. ([originally posted](https://github.com/FuelLabs/fuel-pbft/pull/1#discussion_r778471177)...