poanetwork / hbbft

An implementation of the paper "Honey Badger of BFT Protocols" in Rust. This is a modular library of consensus.
Other
357 stars 96 forks source link

Question regarding missed batch #435

Open promptlyspeaking opened 4 years ago

promptlyspeaking commented 4 years ago

Hi, I'm trying to understand different BFT implementations. Just a question if anybody could help me out, specific to this library.

Should there be a network failure that causes a node to miss a batch of contribution, what would happen? Does hbbft attempt to recover the missed batch or would the node fail forever from then on?

Thanks for your time.

afck commented 4 years ago

If I remember correctly the hbbft crate doesn't do that automatically, but gives the caller the option to do so. E.g. you could imagine using hbbft in a blockchain context, and whenever a batch gets finalized, you turn it into a block and all validators sign it. In such a program you could call skip_to_epoch(42) if you receive block 41 with a quorum of signatures, thus skipping epoch 41 and catching up, even if you missed the HBBFT messages from epoch 41.