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

Update BABE specification (Relative Time, Consensus Message Digest, etc.) #168

Merged
merged 22 commits into from
Nov 25, 2020

Conversation

FlorianFranzen
Copy link
Contributor

@FlorianFranzen FlorianFranzen commented Apr 14, 2020

Updated based on latest research write up.

To be done

  • Update algorithm to take probabilistic finalization into account and define Slot-Time(s) again
  • Simplify definition of sync epoch (e.g. as multiple of epoch)
  • Review and publish Babe randomness algorithm to runtime spec.
  • Mention that arrival time of only new blocks are valid (in contrast to block received during sync/catch up).
  • Explanation to how to use the algorithm output to estimate future slots.

I assume block arrival times should not be saved to disk, but sync-epochs are rather long (~5h currently) and restarts happen. So for now that would mean it could take validators 5-10h to join the network. This might get even longer if we define sync epochs as a multiple of epochs.

It might also be worth extending the definition of finalized blocks to Grandpa finalized blocks and use the probabilistic finalized blocks only as a fall-back.

This is part of our efforts in #46 and also tracked internally by research here.

Rebased on top of #249 to utilized the improved diffs support.

@FlorianFranzen
Copy link
Contributor Author

TeXmacs Diff

@drskalman
Copy link
Contributor

@FlorianFranzen talks to @hndnklnc to clear out the points mentioned so it can be turned into spec.

@FlorianFranzen
Copy link
Contributor Author

@hndnklnc wrote up some changes to the protocol, which are tracked in w3f/research-internal#375 and w3f/research-internal#376. I will update the spec accordingly in the coming days.

@burdges
Copy link
Contributor

burdges commented May 12, 2020

Added some info for devs in paritytech/substrate#5978 and asked for cumulus to pass clock to parachains in paritytech/cumulus#72 (comment)

@FlorianFranzen FlorianFranzen changed the title Update BABE clock adjustment spec Update BABE specification (Relative Time, Consensus Message Digest, etc.) Aug 4, 2020
@burdges
Copy link
Contributor

burdges commented Aug 4, 2020

Is relative time working yet?

@hndnklnc
Copy link

hndnklnc commented Aug 5, 2020

Is relative time working yet?

not yet

@FlorianFranzen
Copy link
Contributor Author

@burdges @hndnklnc I am getting an issue together with outstanding points to discuss to get an implementation going. Will add you to it once it is ready.

@burdges
Copy link
Contributor

burdges commented Nov 17, 2020

I've added more detail for relative time and approval assignments in paritytech/substrate#7398 but maybe we should extract all this onto one design document, either expanding https://hackmd.io/FY4MCfZCSZGkV-Ulo3VSRg or something new, maybe even being more formal.

This was referenced Nov 25, 2020
@FlorianFranzen FlorianFranzen dismissed drskalman’s stale review November 25, 2020 13:05

All requested changes have been implemented. Thank you for the feedback.

@FlorianFranzen FlorianFranzen merged commit 2ba74cc into master Nov 25, 2020
@FlorianFranzen FlorianFranzen deleted the babe-time-sync branch November 25, 2020 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
specification Additions and Updates to the Specification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants