-
Notifications
You must be signed in to change notification settings - Fork 284
fix(l1 follower, rollup verifier): blockhash mismatch #1192
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
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
Semgrep found 1 Risk: Affected versions of github.com/btcsuite/btcd are vulnerable to Always-Incorrect Control Flow Implementation. The btcd Bitcoin client did not correctly re-implement Bitcoin Core's "FindAndDelete()" functionality. This logic is consensus-critical: the difference in behavior with the other Bitcoin clients can lead to btcd clients accepting an invalid Bitcoin block (or rejecting a valid one). Fix: Upgrade this library to at least version 0.24.2-beta.rc1 at go-ethereum/rollup/missing_header_fields/export-headers-toolkit/go.mod:14. Reference(s): GHSA-27vh-h6mc-q6g8, CVE-2024-38365 |
…port reset of syncing pipeline
…ng header fields file
|
another question: who upload the |
This is uploaded by us by utilizing the toolkit from #903. It's a one time operation and as you can see in this PR the hash of the data is added to the genesis. |
… fields and fix blockhash mismatch (#903) * feat: add toolkit for exporting and transforming missing block headers fields * feat: add missing header writer to write the missing header file with deduplicated headers * feat: add sha256 checksum generation * add bitmask to encapsulate logic around header information in it. also add vanity count as part of the bitmask * feat: add optional verification of input and output file with separate csv file * add feature to continue already existing header file * change byte layout of deduplicated file due to too many vanities (>64) in Sepolia data * fix some stuff * add state root to header * goimports * only create 1 task at a time * address review comments * add optional coinbase and nonce to missing header * add flag to run fetch from rollup relayer DB * go mod tidy * fix(l1 follower, rollup verifier): blockhash mismatch (#1192) * implement missing header fields reader and manager * chore: auto version bump [bot] * increase download timeout * sanitize BaseFee when executing blocks from DA * initialize and pass missing header manager to DA syncing pipeline * add state root to deduplicated header * overwrite state root if given via missing header file * fix test * set correct links and missing header file hashes * allow reading of previous headers by resetting file and buffer to support reset of syncing pipeline * address review comments * add coinbase and nonce field to missing header reader * replace missing header reader in toolkit with actual implementation * update sync from DA pipeline to include coinbase and nonce from missing header fields file * update sha256 hashes for missing header fields files * lint * address review comments * address review comments * chore: auto version bump [bot]
1. Purpose or design rationale of this PR
This PR fixes the problem of mismatching block hashes due to the missing header fields
difficultyandextraDatain DA. It should be reviewed in conjunction with #903, which provides a way to prepare this missing data and describes the format in more detail.Specifically, this PR implements a missing header fields manager that:
Tested on Sepolia:
After a restart the header file is not downloaded again. The L1 syncing process can just continue. As can be seen the generated block hash matches.
Synced to the latest finalized block:

Tested on mainnet:
After a restart the header file is not downloaded again. The L1 syncing process can just continue. As can be seen the generated block hash matches.
Synced to the latest finalized block:

2. PR title
Your PR title must follow conventional commits (as we are doing squash merge for each PR), so it must start with one of the following types:
3. Deployment tag versioning
Has the version in
params/version.gobeen updated?4. Breaking change label
Does this PR have the
breaking-changelabel?