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

Compute a failsafe check for consensus #8118

Closed

Conversation

aeyakovenko
Copy link
Member

@aeyakovenko aeyakovenko commented Feb 4, 2020

Problem

Summary of Changes

Fixes #8113

tag: @sakridge @carllin

@aeyakovenko
Copy link
Member Author

aeyakovenko commented Feb 5, 2020

@carllin @sakridge @sagar-solana

I don't think blocktree is the right approach. I think we need to rely on a hard to censor protocol for a watchdog.

watchdog:

  1. scan gossip for EpochSlots
  2. scan gossip for Votes
  3. Store bankhash from each vote, Slot/Pubkey.
  4. Assert that X% of the network agrees on the root slots.
  5. Assert that X% of the network agrees on BankHash for root slots (this may be hard because nodes may skip some of the votes)

replay should stop voting if watchdog fails. X should be 75%?

@carllin
Copy link
Contributor

carllin commented Feb 5, 2020

@aeyakovenko, I'm fine with this as long as we're careful that gossip failures don't lead to the network stalling.

For #3, Store bankhash from each vote, Slot/Pubkey, from the other steps you listed, it seems we only care about the bank hashes for the roots, why not just gossip that as part of EpochSlots? You think people will lie about that?

Also I'm sitting on a few changes, one of which is to store the confirmed blockhashes in blocktree, which will give you all the blockhashes for previous roots. Do you want to leverage that? If so I can check it in.

@aeyakovenko
Copy link
Member Author

@carllin this is trying to watchdog for an attack, so we have to assume attacker will lie. I think the block propagation is weaker than gossip.

@stale
Copy link

stale bot commented Feb 16, 2020

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale [bot only] Added to stale content; results in auto-close after a week. label Feb 16, 2020
@stale
Copy link

stale bot commented Feb 23, 2020

This stale pull request has been automatically closed. Thank you for your contributions.

@stale stale bot closed this Feb 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale [bot only] Added to stale content; results in auto-close after a week.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Validators do not have any failsafe checks for consensus
2 participants