Skip to content
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

Closed
Latrasis opened this issue Mar 25, 2016 · 7 comments
Closed

Handle fork (1/3+ byzantine failure) gracefully #200

Latrasis opened this issue Mar 25, 2016 · 7 comments
Assignees
Labels
C:evidence Component: Evidence T:bug Type Bug (Confirmed) T:security Type: Security (specify priority)
Projects

Comments

@Latrasis
Copy link

Hello, i was wondering if tendermint has an option to store orphaned blocks or if it utilizes uncle blocks similar to Ethereum?

@ebuchman
Copy link
Contributor

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

@Latrasis
Copy link
Author

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?

@ebuchman
Copy link
Contributor

ebuchman commented Apr 8, 2016

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?!

@ebuchman ebuchman changed the title Uncle chains storage Handle 1/3+ byzantine failure gracefully Jun 25, 2016
@ebuchman ebuchman added the T:bug Type Bug (Confirmed) label Jul 5, 2016
@ebuchman ebuchman changed the title Handle 1/3+ byzantine failure gracefully Handle fork (1/3+ byzantine failure) gracefully Aug 9, 2016
@ebuchman ebuchman added this to the launch milestone Apr 29, 2018
ebuchman pushed a commit that referenced this issue Jun 20, 2018
@ebuchman ebuchman added the T:security Type: Security (specify priority) label Sep 21, 2018
@ebuchman ebuchman modified the milestones: v1.0, launch Sep 21, 2018
@xla xla added this to Queued in Launch Oct 3, 2018
@milosevic milosevic self-assigned this Nov 8, 2018
@milosevic milosevic moved this from Queued to Ongoing in Launch Nov 21, 2018
@ebuchman ebuchman modified the milestones: launch, v0.30.0 Jan 14, 2019
@ebuchman ebuchman modified the milestones: v0.30.0, v0.31.0 Jan 22, 2019
@ebuchman ebuchman modified the milestones: v0.32.0, v0.33.0, v0.34 Feb 28, 2019
@jackzampolin
Copy link
Contributor

Closing this as we prefer safety over liveness. Chain will halt in this scenario. Please reopen if I'm wrong.

@ebuchman
Copy link
Contributor

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.

@ebuchman ebuchman reopened this Jun 21, 2019
@jackzampolin
Copy link
Contributor

Sounds good! Thank you for the info @ebuchman

@melekes
Copy link
Contributor

melekes commented Jan 15, 2020

Closing in favor of #4189

@melekes melekes closed this as completed Jan 15, 2020
faddat pushed a commit to faddat/tendermint that referenced this issue Nov 23, 2022
The leveldb wrapper library requires cgo to build.
troian pushed a commit to akash-network/tendermint that referenced this issue Mar 11, 2023
…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>
patiee pushed a commit to graphprotocol/tendermint that referenced this issue Aug 7, 2023
…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>
firelizzard18 pushed a commit to AccumulateNetwork/tendermint that referenced this issue Nov 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:evidence Component: Evidence T:bug Type Bug (Confirmed) T:security Type: Security (specify priority)
Projects
No open projects
Launch
  
Ongoing
Development

No branches or pull requests

6 participants