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

Specify how Fuel synchronizes with L1 #285

Closed
adlerjohn opened this issue Mar 2, 2022 · 2 comments
Closed

Specify how Fuel synchronizes with L1 #285

adlerjohn opened this issue Mar 2, 2022 · 2 comments

Comments

@adlerjohn
Copy link
Contributor

adlerjohn commented Mar 2, 2022

Leader Selection

Leader should be assigned for a slot: range of Ethereum blocks. (Maybe 10 minutes?) Happens entirely off-chain.

  • fuel-bft should return leader given Fuel height, round, and validator set/voting power
  1. If missed slot, increment round, and/or
  2. If missed slot, next leader can submit missed block.

If there's a Commit, then don't re-org, instead submit later. If there's no Commit, then increment round.

Batch submission

If validator set hasn't changed by >1/3, then can submit a range of block with only a single Commit. (Have to look up exact details. https://arxiv.org/abs/2010.07031)

Deposits and valset updates

After some parameter (100 Ethereum blocks?) and Fuel block has Ethereum block number at least that, then deposit poofs into deposit set and can be spent.

How to sync Ethereum block number (and timestamp) in header

Suggestion: contract checks timestamp and block number is (non-strictly) monotonic and within some tolerance (some parameter).

Tolerance (checked by contract could just not check under honest majority assumption):

  1. Timestamp can't be in the future at all.
  2. Ethereum block number can't be in the future at all.
  3. Timestamp must be within [some parameter >0 number of slots] of current Ethereum time.
  4. Ethereum block number must be within [some parameter >0 number of slots] of current Ethereum block number.
@adlerjohn adlerjohn changed the title Specify how Fuel syncronizes with L1 Specify how Fuel synchronizes with L1 Mar 2, 2022
@simonr0204
Copy link
Contributor

If validator set hasn't changed by >1/3

I'm concerned about the gas cost of verifying this on ethereum.

@Voxelot
Copy link
Member

Voxelot commented Sep 13, 2023

Closing this for now, the approach has changed a lot since this was written.

@Voxelot Voxelot closed this as completed Sep 13, 2023
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

3 participants