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

Persist current hbbft state on regular shutdown #181

Open
dforsten opened this issue Aug 4, 2019 · 1 comment
Open

Persist current hbbft state on regular shutdown #181

dforsten opened this issue Aug 4, 2019 · 1 comment
Assignees

Comments

@dforsten
Copy link

dforsten commented Aug 4, 2019

A regular shutdown like:

  • Rebooting the server
  • Stopping/restarting the client for the purpose of a parity client upgrade

should not cause the node to become faulty for the current hbbft round/epoch.

This could very quickly push the chain into a state where more than f nodes are considered faulty (and thus stalling the chain), on operations that should be considered normal in real-world production environments.

To achieve the required level of robustness we will have to persist vital hbbft state information to disk and load it on the next validator startup.

This includes at least:

  • The current hbbft state
  • The hbbft consensus messages currently cached in the sync module, but not sent yet
@dforsten
Copy link
Author

dforsten commented Aug 7, 2019

As discussed in poanetwork/hbbft#421 we need to persist both outgoing and input messages (along with the rng seed) for active epochs to have all necessary data to deterministically replay the epoch to restore the hbbft state as it existed before client shutdown.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant