New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle fork (1/3+ byzantine failure) gracefully #200
Comments
Nope! There is no such thing as an orphaned block in tendermint. Once a block is committed, it is final! An orphan implies two or more competing chains and that is simply not possible unless a third or more validators are byzantine |
So from my understanding, if more than 1/3 are byzantine - what happens? Do the other nodes delete their data? Is there any way to track or log that a conflict occured before they delete it? |
good question. we haven't defined this behaviour yet, but we are working on what this should look like. the software will panic before anything is overwritten, but it will keep a log of having received eg conflicting proposals, so that someone can come in and take a look. really we need to boot into a "recovery mode" protocol so validators can publish evidence, find out who shit the bed, kick them out and restart, but this is very much work to do. want to help?! |
Closing this as we prefer safety over liveness. Chain will halt in this scenario. Please reopen if I'm wrong. |
In the event of +1/3 but -2/3 attacking the network, we should do something intelligent, ie. a "fork accountability" protocol, which Zarko and others are working on - see https://github.com/tendermint/tendermint/issues/1466. Maybe we keep this open until it's implemented. |
Sounds good! Thank you for the info @ebuchman |
Closing in favor of #4189 |
The leveldb wrapper library requires cgo to build.
…ermint#202) * Fixes the and removes other networks. (tendermint#200) (cherry picked from commit 5d54939) # Conflicts: # docs/networks/terraform-and-ansible.md # networks/remote/README.md # networks/remote/ansible/config.yml # networks/remote/ansible/logzio.yml # networks/remote/ansible/roles/logzio/tasks/main.yml * Resolve mergify backport conflicts Co-authored-by: Lasaro <lasaro@informal.systems>
…ermint#201) * Fixes the and removes other networks. (tendermint#200) (cherry picked from commit 5d54939) # Conflicts: # docs/networks/terraform-and-ansible.md # networks/remote/README.md # networks/remote/ansible/roles/logzio/tasks/main.yml * Resolving backport conflicts Co-authored-by: Lasaro <lasaro@informal.systems> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Hello, i was wondering if tendermint has an option to store orphaned blocks or if it utilizes uncle blocks similar to Ethereum?
The text was updated successfully, but these errors were encountered: