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

Light Client States Updates #111

Merged
merged 52 commits into from
May 9, 2024
Merged

Light Client States Updates #111

merged 52 commits into from
May 9, 2024

Conversation

nomaxg
Copy link
Collaborator

@nomaxg nomaxg commented Apr 2, 2024

This PR:

This PR introduces light client state updates to our Arbitrum integration, as well as recent miscellaneous changes to get our E2E test working with Cappuccino-related sequencer updates.

At a high level, the batcher now waits for light client state updates, updating batches with a block merkle justification relative to a light client snapshot at a certain L1 height. The validator then verifies this merkle proof against the snapshot, which is provided by the ReadHotShotCommitment host-io call.

This PR does not:
In the process of working on this PR, two issues have been identified.

  1. Broken Namespace Validation (this will need to be fixed for Cappuccino, and will be addressed in a follow-up PR)
  2. Broken Fraud Proofs (this will be addressed in a follow up PR, once we return to fraud proof work).

Key places to review:
batch_poster.go:465: Modification to the batcher to wait for light client state updates
transaction_streamer.go:664: Small DB workaround to account for the fact that batches can now change in flight.
espresso-crypto-helper/src/lib.rs:47: Helper function to verify merkle proofs.

How to test this PR:

make build
go test -run ^TestEspressoE2E$ github.com/offchainlabs/nitro/system_tests -v
make test-go

@nomaxg nomaxg marked this pull request as draft April 5, 2024 17:53
@nomaxg nomaxg marked this pull request as ready for review April 18, 2024 13:54
@nomaxg nomaxg changed the title Stub validation setup Block Merkle Justification Apr 18, 2024
@nomaxg nomaxg marked this pull request as draft April 18, 2024 13:59
ImJeremyHe pushed a commit that referenced this pull request May 8, 2024
Update stylus header to 0xEFF000
@ImJeremyHe ImJeremyHe force-pushed the mock-validation branch 2 times, most recently from bea541c to e965ef0 Compare May 8, 2024 06:48
@nomaxg nomaxg marked this pull request as ready for review May 8, 2024 14:48
@ImJeremyHe ImJeremyHe self-requested a review May 9, 2024 12:59
Copy link
Member

@ImJeremyHe ImJeremyHe left a comment

Choose a reason for hiding this comment

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

I think this PR can be merged now. We can fix or do other things in next PRs.

@nomaxg nomaxg merged commit fd7d4d6 into integration May 9, 2024
6 checks passed
@nomaxg nomaxg deleted the mock-validation branch May 9, 2024 14:39
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.

4 participants