Produce block on main world state#270
Merged
damian-orzechowski merged 16 commits intomainfrom Oct 24, 2025
Merged
Conversation
wurdum
approved these changes
Sep 30, 2025
svlachakis
approved these changes
Sep 30, 2025
hudem1
approved these changes
Oct 10, 2025
There was a problem hiding this comment.
Pull Request Overview
This PR modifies the DigestMessage implementation to produce blocks directly on the main WorldState instead of a read-only state, then updates the BlockTree without re-processing blocks for validation. The change simplifies block production by removing event-based validation and enabling a new BuildBlocksOnMainState configuration option.
Key changes:
- Adds
BuildBlocksOnMainStateconfiguration option to all Arbitrum config files - Removes event-based block validation logic from
ArbitrumRpcModule - Introduces
ArbitrumGlobalWorldStateBlockProducerEnvFactoryto support building blocks on main state
Reviewed Changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| arbitrum-sepolia.json | Adds BuildBlocksOnMainState: true configuration |
| arbitrum-sepolia-archive.json | Adds BuildBlocksOnMainState: true configuration |
| arbitrum-local.json | Adds BuildBlocksOnMainState: true configuration |
| ArbitrumRpcModule.cs | Removes event-based block validation and async processing logic |
| ArbitrumBlockProducer.cs | Adds tracing namespace imports |
| ArbitrumBlockProcessor.cs | Updates processing flags to use new approach |
| ArbitrumBlockProducerEnvFactory.cs | Adds new factory for global world state block production |
| ArbitrumPlugin.cs | Updates plugin to conditionally use new factory based on config |
| Nethermind.Arbitrum.slnx | Removes Overseer test project reference |
| ArbitrumTestBlockchainBase.cs | Updates test infrastructure to use new block production approach |
| ArbitrumChainSpecProviderTests.cs | Updates test constructors with new parameter |
| BlockProducerTests.cs | Fixes scope handling to prevent state access outside scope |
| BlockProcessorTests.cs | Updates test to use BlockToProduce instead of Block |
| Nethermind | Updates submodule reference |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
src/Nethermind.Arbitrum.Test/Infrastructure/ArbitrumTestBlockchainBase.cs
Show resolved
Hide resolved
src/Nethermind.Arbitrum.Test/Infrastructure/ArbitrumTestBlockchainBase.cs
Show resolved
Hide resolved
wurdum
approved these changes
Oct 23, 2025
Contributor
svlachakis
approved these changes
Oct 23, 2025
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.
Changes
DigestMessageimplementation to produce block on mainWorldState(not read-only) and then updateBlockTreewithout re-processing block for validation.Depends on: NethermindEth/nethermind#9388