Skip to content

Conversation

@tanishqjasoria
Copy link
Owner

Fixes Closes Resolves #

Please choose one of the keywords above to refer to the issue this PR solves followed by the issue number (e.g. Fixes #000). If no issue number, remove the line. Also, remove everything marked optional that is not applicable. Remove this note after reading.

Changes

  • List the changes

Types of changes

What types of changes does your code introduce?

  • Bugfix (a non-breaking change that fixes an issue)
  • New feature (a non-breaking change that adds functionality)
  • Breaking change (a change that causes existing functionality not to work as expected)
  • Optimization
  • Refactoring
  • Documentation update
  • Build-related changes
  • Other: Description

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

Notes on testing

Optional. Remove if not applicable.

Documentation

Requires documentation update

  • Yes
  • No

If yes, link the PR to the docs update or the issue with the details labeled docs. Remove if not applicable.

Requires explanation in Release Notes

  • Yes
  • No

If yes, fill in the details here. Remove if not applicable.

Remarks

Optional. Remove if not applicable.

tanishqjasoria and others added 30 commits April 3, 2024 12:39
Add network componenets for verkle sync

Add verkle state to api and block processing
replace sstore costs with verkle
@tanishqjasoria tanishqjasoria requested a review from Copilot March 5, 2025 15:40
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

PR Overview

This PR introduces new tests and benchmark support for Verkle along with updates to configuration and API interfaces to enable Verkle-related features during block processing. Key changes include:

  • Adding a new benchmark class for Verkle world state and updating the benchmark runner.
  • Extending configuration and API interfaces with new Verkle-related properties.
  • Updating various test and blockchain processing classes to support the Verkle features and to pass in required dependencies.

Reviewed Changes

File Description
src/Nethermind/Ethereum.Test.Base/IBlockchainTestBase.cs Adds a new interface for blockchain tests with Setup() and RunTest().
src/Nethermind/Nethermind.Benchmark/Verkle/VerkleWorldStateBenchmark.cs Implements benchmarks for Verkle world state vs. MPT.
src/Nethermind/Nethermind.Api/IInitConfig.cs Adds new config properties for stateless processing and Verkle proofs.
src/Nethermind/Nethermind.Api/InitConfig.cs Implements the new configuration properties with default values.
src/Nethermind/Ethereum.Test.Base/JsonToEthereumTest.cs Updates network string mappings for test specs.
src/Nethermind/Nethermind.Api/IApiWithBlockchain.cs Adds properties for VerkleTreeStore and VerkleArchiveStore.
src/Nethermind/Nethermind.Api/NethermindApi.cs Extends API with Verkle sync and storage properties.
src/Nethermind/Ethereum.Test.Base/BlockchainTestBase.cs Changes to concrete implementation and method accessibility.
src/Nethermind/Ethereum.Test.Base/TestBlockJson.cs Adds JSON mapping for ExecutionWitness using a custom converter.
src/Nethermind/Ethereum.Test.Base/LoadBlockchainTestsStrategy.cs Updates test directory enumeration to use subdirectories.
src/Nethermind/Nethermind.Api/IApiWithNetwork.cs Adds VerkleSyncServer property to network API interface.
src/Nethermind/Nethermind.Blockchain.Test/BlockProcessorTests.cs Updates tests to inject IBlockTree dependency.
src/Nethermind/Nethermind.Blockchain.Test/FullPruning/FullPruningDiskTest.cs Updates Build method signature to include genesisAllocation parameter.
src/Nethermind/Nethermind.AccountAbstraction.Test/AccountAbstractionRpcModuleTests.TestAccountAbstractionRpcBlockchain.cs Updates Build method signature to include genesisAllocation.
src/Nethermind/Nethermind.Benchmark.Runner/Program.cs Adds the Verkle benchmark assembly to the benchmark runner.
src/Nethermind/Nethermind.AccountAbstraction/Executor/AABlockProducerTransactionsExecutor.cs Updates transaction processing to use executionTracer.
src/Nethermind/Nethermind.AuRa.Test/Contract/TxPriorityContractTests.cs Updates Build method signature to include genesisAllocation.
src/Nethermind/Nethermind.AuRa.Test/AuraBlockProcessorTests.cs Simplifies the constructor argument for WithdrawalProcessor.

Copilot reviewed 454 out of 454 changed files in this pull request and generated 1 comment.

[ConfigItem(Description = "If 'true' then the verkle proof in blocks are verified while block processing", DefaultValue = "false")]
bool VerifyProofsInBlock { get; set; }

[ConfigItem(Description = "If 'true' then the verkle proof in blocks are verified while block processing", DefaultValue = "false")]
Copy link

Copilot AI Mar 5, 2025

Choose a reason for hiding this comment

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

The descriptions for 'VerifyProofsInBlock' and 'GenerateVerkleProofsForBlock' are identical, potentially causing confusion. Please update the description for one of these properties to accurately reflect its distinct functionality.

Suggested change
[ConfigItem(Description = "If 'true' then the verkle proof in blocks are verified while block processing", DefaultValue = "false")]
[ConfigItem(Description = "If 'true' then verkle proofs are generated for blocks during block processing", DefaultValue = "false")]

Copilot uses AI. Check for mistakes.
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.

5 participants