Merged
Conversation
* Bump spec tests Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> * changelog Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> --------- Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Usman Saleem <usman@usmans.info> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* Add test summary reporting to block-test command The block-test command now tracks and displays a summary of test execution results, including total tests, passed/failed counts, and a list of failed tests with their failure reasons. This improves usability when running large test suites by providing a clear overview of test outcomes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Bhargava Shastry <bhargava.shastry@ethereum.org> * Refactor block-test summary output for better maintainability Address code review feedback by: - Extract separator string into SEPARATOR constant to reduce duplication - Reuse failureReason variable in output statements instead of duplicating formatting logic This improves code maintainability by consolidating the failure message formatting in a single location. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Bhargava Shastry <bhargava.shastry@ethereum.org> * Address review feedback: simplify TestResults implementation - Remove unused testName parameter from recordPass() method - Remove totalTests field and calculate it dynamically in printSummary() from passed + failed counts - Simplify SEPARATOR constant by removing embedded newline and use explicit out.println() for consistent formatting - Add hasTests() helper method to check if any tests were executed This reduces redundant state tracking and improves code clarity. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Bhargava Shastry <bhargava.shastry@ethereum.org> --------- Signed-off-by: Bhargava Shastry <bhargava.shastry@ethereum.org> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Usman Saleem <usman@usmans.info> Co-authored-by: Simon Dudley <simon.dudley@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* Implement era1 file export Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Clean up OutputStreamFactory to pass inspections Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * fix javadoc Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * fix javadoc Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * fix more compile checks Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * fix more compile checks Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * fix more compile checks Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Output era1 files to supplied directory Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Implement accumulator and block index Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix compile errors Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix javadoc Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Couple of fixes, add logging Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Implement our own merkleizer, try many things Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix accumulator calculations Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix block number to file number calculation Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Correctly use accumulator hash in era1 filename Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Update manual test to use nimbus.team source for expected era1 file Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Add javadoc to new Era1* files Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix BlocksSubCommandTest Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Add MerkleizerTest Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Refactor to produce Era1FileWriter Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Add unit test for Era1FileWriter, fix discovered bug in Era1FileWriter Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Refactor to produce Era1Accumulator and add unit test Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Refactor to produce Era1BlockIndexConverter and add unit test Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Unit test Era1BlockExporter Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix javadoc issues Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Rename difficultysForFile to difficultiesForFile Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Move network selection outside of loop Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Make blocks export option non-hidden, add changelog entry Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Use network option in era1 block exporter Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Change Era1BlockExporter.export arguments to start/end block, and handle file number conversion internally Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Add additional Merkleizer tests and guard against empty leaves Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix BlocksSubCommandTest Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Move new rlp encoder classes into encoding package, add encodeWrapped for BlockBodyEncoder, add TransactionReceiptEncodingConfiguration parameter to TransactionReceiptEncoder.encode Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> --------- Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> Signed-off-by: Matilda-Clerke <matilda.clerke@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…u-eth#9320) This reverts commit 42306f9. Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…esu-eth#9194) Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* remove parentBeaconBlockRoot from getPayload result to match the specs Signed-off-by: Ameziane H. <ameziane.hamlat@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* add burn-in tasks Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> --------- Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…eth#9183) Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Allows for enabling and disabling stack, storage, returnData, etc.. for these 2 specific RPC endpoints: debug_traceStandardBlockToFile and debug_traceStandardBadBlockToFile. It does not change any previous defaults for memory which is shown by default. Example of usage: curl --location --globoff 'http://localhost:8545' --data '{ "jsonrpc": "2.0", "method": "debug_standardTraceBlockToFile", "params": [ "0x2476b23a03dd87f272724a12213dc4a1ca8f13a1aa9d128a690e1b7d7d312e5e", { "txHash": "0xdfd5028da0f2f306ae71dc558c26bb1935b13ec3a0e909223eaa77bf761189a8", "disableStack": true, "disableMemory": false, "disableStorage": false } ], "id": 1 }' curl --location --globoff 'http://localhost:8545/' --data '{ "jsonrpc": "2.0", "method": "debug_standardTraceBadBlockToFile", "params": [ "0x2476b23a03dd87f272724a12213dc4a1ca8f13a1aa9d128a690e1b7d7d312e5e", { "txHash": "0xdfd5028da0f2f306ae71dc558c26bb1935b13ec3a0e909223eaa77bf761189a8", "disableStack": true, "disableMemory": false, "disableStorage": false } ], "id": 1 }' Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…lock to be completed (besu-eth#9332) Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Also remove sigleton pattern from ReferenceTestProtocolSchedules. Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* update netty Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> --------- Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…fer value is zero (besu-eth#9315) Signed-off-by: Miroslav Kovar <miroslavkovar@protonmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…ng with peer task system usage (besu-eth#9178) * Remove GetBlockFromPeerTask and RetryingGetBlockFromPeersTask, replacing with peer task system usage Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix BackwardSyncContextTest Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Use preferred peer first for block retrieval in BlockPropagationManager Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Add new GetHeadersFromPeerTask constructor which doesn't take a block number and use it in SyncStepStep Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Refactor PeerTaskExecutor usage in BlockPropagationManager for better readability Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix a != that should have been == Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Re-add AbstractBlockPropagationManagerTest.shouldRequestBlockFromOtherPeersIfFirstPeerFails and modify to use mock PeerTaskExecutor Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Re-add BackwardSyncContextTest.whenBlockNotFoundInPeers_shouldRemoveBlockFromQueueAndProgressInNextSession Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Fix BlocksSubCommandTest again, but differently Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> * Remove commented code Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> --------- Signed-off-by: Matilda Clerke <matilda.clerke@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
…su-eth#9337) Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* assert no errors before asserting method calls Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> --------- Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* exclude icebox'd issues from being marked stale Signed-off-by: jflo <justin+github@florentine.us> * Update .github/workflows/stale-issues.yml Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: Justin Florentine <justin+github@florentine.us> --------- Signed-off-by: jflo <justin+github@florentine.us> Signed-off-by: Justin Florentine <justin+github@florentine.us> Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
* add instructions for DCO into DCO.md Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> --------- Signed-off-by: Sally MacFarlane <macfarla.github@gmail.com> Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
jframe
reviewed
Jan 12, 2026
.../main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftMiningCoordinator.java
Show resolved
Hide resolved
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/chain/DefaultBlockchain.java
Show resolved
Hide resolved
...java/org/hyperledger/besu/ethereum/eth/manager/snap/RetryingGetAccountRangeFromPeerTask.java
Show resolved
Hide resolved
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/chain/DefaultBlockchain.java
Show resolved
Hide resolved
...ain/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/WorldStateHealFinishedListener.java
Outdated
Show resolved
Hide resolved
.../src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/ImportSnapSyncBlocksStep.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
...th/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadState.java
Outdated
Show resolved
Hide resolved
.../src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldStateDownloader.java
Outdated
Show resolved
Hide resolved
...c/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloaderTest.java
Outdated
Show resolved
Hide resolved
.../eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/BackwardHeaderSource.java
Outdated
Show resolved
Hide resolved
.../eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/BackwardHeaderSource.java
Outdated
Show resolved
Hide resolved
...eum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/BlockHeaderSource.java
Outdated
Show resolved
Hide resolved
...eum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/BlockHeaderSource.java
Outdated
Show resolved
Hide resolved
| } else if (taskResult.responseCode() != PeerTaskExecutorResponseCode.SUCCESS | ||
| || taskResult.result().isEmpty()) { | ||
| ethPeer.recordUselessResponse("headers"); | ||
| return getHeader(ethContext, getEthPeer(ethPeers, task), ethPeers, task); |
Contributor
There was a problem hiding this comment.
If we're happy to retry with different peers anyway, could we just call peerTaskExecutor.execute instead and let the PeerTaskExecutor handle retrying?
Contributor
Author
There was a problem hiding this comment.
I've been talking to Matilda about that and I think when we are adding a bit of functionality to the PeerTaskExecutor we should be able to simplify this code quite a bit. I would prefer to do that in a follow up PR.
...th/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/PivotSelectorFromPeers.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/t8n/T8nBlockchain.java
Show resolved
Hide resolved
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
...c/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/DownloadBackwardHeadersStep.java
Show resolved
Hide resolved
...c/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/DownloadBackwardHeadersStep.java
Outdated
Show resolved
Hide resolved
...m/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/HeaderDownloadUtils.java
Outdated
Show resolved
Hide resolved
jframe
reviewed
Feb 4, 2026
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/chain/DefaultBlockchain.java
Show resolved
Hide resolved
.../eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/ImportSyncBlocksStep.java
Outdated
Show resolved
Hide resolved
...c/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/DownloadBackwardHeadersStep.java
Outdated
Show resolved
Hide resolved
...c/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/DownloadBackwardHeadersStep.java
Outdated
Show resolved
Hide resolved
...c/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/DownloadBackwardHeadersStep.java
Outdated
Show resolved
Hide resolved
...m/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/HeaderDownloadUtils.java
Outdated
Show resolved
Hide resolved
.../src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/ImportSnapSyncBlocksStep.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
...h/src/main/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapSyncChainDownloader.java
Outdated
Show resolved
Hide resolved
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
Signed-off-by: stefan.pingel@consensys.net <stefan.pingel@consensys.net>
jframe
approved these changes
Feb 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several improvements and fixes related to snap sync.
Snap sync chain download is using two pipelines now.
Test and Configuration Enhancements:
Build and Miscellaneous Fixes:
Syncing Times compared to latest
*Chain download is 2-3 hours faster than latest, but as state download with state heal is slower this does not make a big difference in total sync time.