Skip to content

Spartan v1#8

Merged
just-mitch merged 23 commits intomainfrom
sequencer-prover-test-net
Jul 24, 2024
Merged

Spartan v1#8
just-mitch merged 23 commits intomainfrom
sequencer-prover-test-net

Conversation

@just-mitch
Copy link
Collaborator

@just-mitch just-mitch commented Jul 16, 2024

This design and implementation plan describes version 1 of "Spartan", a public network that will be operational on/before 2024-09-16.

@just-mitch just-mitch marked this pull request as draft July 17, 2024 20:13
@just-mitch just-mitch changed the title Sequencer prover test net Sequencer prover test net v1.0.0 Jul 17, 2024
@just-mitch
Copy link
Collaborator Author

@just-mitch just-mitch marked this pull request as ready for review July 22, 2024 15:06

We will explicitly support multiple concurrent "chains":

- "Pending Chain" - Reflects blocks published to L1 with their state diffs, but not yet been proven.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a fan of the "Pending" name, since it already has semantics in Ethereum which differ from these.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let us know if you have a better option!


It is the responsibility of the prover selected at the beginning of an epoch to submit the proof of the epoch.

The proof of epoch i must land in epoch i+1.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't enforce this for v1. If we did, what should the protocol do if the proof doesn't land on time? We don't handle reorgs nicely yet.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reasoning for i landing in i + 1 was a simple way of ensuring that a proof does not land on top of an epoch that have not yet been proven.
It is essentially just making accounting slightly easier since there is not this case where epoch i + 1 is proven but i is not yet. If we have any kind of timeliness requirement on it we can reorgs. @spalladino, Would you suggest here that we instead just force that the ordering is correct for proofs but ignore any timeliness?


It is the responsibility of the prover selected at the beginning of an epoch to submit the proof of the epoch.

The proof of epoch i must land in epoch i+1.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reasoning for i landing in i + 1 was a simple way of ensuring that a proof does not land on top of an epoch that have not yet been proven.
It is essentially just making accounting slightly easier since there is not this case where epoch i + 1 is proven but i is not yet. If we have any kind of timeliness requirement on it we can reorgs. @spalladino, Would you suggest here that we instead just force that the ordering is correct for proofs but ignore any timeliness?


#### Overview

It is the responsibility of the prover selected at the beginning of an epoch to submit the proof of the epoch.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to be this strict for version 1? I thought the plan was to push prover coordination for later. Should we initially allow any to submit the proof to keep the chain moving?

Particularly as we can't currently handle re-orgs.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is related to @spalladino and @LHerskind comments below.

How about we keep this coordination (we pick a prover for an epoch), but do not worry about any timeliness (so no re-orgs).

In order for the proven chain to advance, all previous proofs must be posted.

Separately, we keep a function on the rollup contract just for verifying whether a proof is valid (not advancing the proven chain), enabling the "free for all" games to be played on SPRTN, DevNet, or both.

@just-mitch just-mitch changed the title Sequencer prover test net v1.0.0 Spartan v1 Jul 24, 2024
@just-mitch just-mitch merged commit ab534b4 into main Jul 24, 2024
@just-mitch just-mitch deleted the sequencer-prover-test-net branch July 24, 2024 23:28
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

Successfully merging this pull request may close these issues.

8 participants