Skip to content

Merge master into gp#9493

Merged
kamilchodola merged 180 commits into
kch/rlpforced-getpayload-timestamphackfrom
master
Oct 17, 2025
Merged

Merge master into gp#9493
kamilchodola merged 180 commits into
kch/rlpforced-getpayload-timestamphackfrom
master

Conversation

@kamilchodola

Copy link
Copy Markdown
Contributor

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.

ak88 and others added 30 commits August 22, 2025 11:55
* extend tracer with evm exception

* Update RpcTest.cs

rollback debug help

* TransactionResult with EvmException

* format result wrapper

* format

* fixing rpc tests

* changed RPC test and estimateGas no data on error

* removed unnecessary bool TransactionResult

* not used output

* fixed test

* review comments

* fix unit tests
* Optimize Blooms

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Feedback

* bleh

* Feedback

* Make combined method public

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: rubo <rubo@users.noreply.github.com>
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Per contract state

* Update src/Nethermind/Nethermind.State/PersistentStorageProvider.cs

Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>

* Fix randomly faailing test

* Fix concurrent ensure storage tree

---------

Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Move main block processing components to DI

* Remove comment

* Move invalid chain tracker hook outside also

* Slight comment change

* Remove some field

* Rename to `MainProcessingContext`

* Fix build

* Whitespace
* start XDC project

* moved main project

* revert format
* Optimize TrieNode.SeekChild

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ffs copilot

* Use switch expression

* switch expression, improve comments

* Improve param naming

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kamil Chodoła <43241881+kamilchodola@users.noreply.github.com>
* Incorrect Gas Estimation

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>
* Added basic spec classes

* small correction
* Stop after 256 blocks

* Run until BestKnownNumber

* Split InitializeNetwork

* Remove comment

* Await processing in ReviewBlockTree

* Revert InitializeNetwork

* Fix formatting
Co-authored-by: rubo <rubo@users.noreply.github.com>
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* feat: add support for additional metrics labels in prometheus reporter

* fix: add labels config to root command

* feat: add basic auth support for prometheus push gateway

* refactor: update memory metrics structure to support method-specific metrics

* fix: use correct histogram labels in prometheus metrics reporter
* Hive to load blocks before RPC start

* Do not load inactive deps

* Only optional deps are not required

* Reuse a loop

* Simplify RunnerStepDependenciesAttribute.Optional

* Simplify loop, remove unnecessary ToArray, general refactors

* whitespace

---------

Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
* Move blocktree to di

* Reduce change

* Fix test
* Admin Get Peers - initial commit

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Improvements

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Improvements

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Improvements

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Improvements

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Formatting

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Breaking Changes

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Test Improvements

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Remove Comment

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Improvements

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* PR Review Comments

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Avoid string manipulation in NetworkInfoBuilder

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Avoid string manipulation in NetworkInfoBuilder

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Further improvement in string allocation at CapabilityConverter.cs

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Format

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>

* Bit of refactors

* Remove EnrExtractor and move comment to PeerInfo

* Update comment with issue link

---------

Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
* separate receipt deletion from receipt tx deletion

* regression test

* tidy test

---------

Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com>
* ENR initial implementation

* ENR on PeerInfo.cs
Ensure ForkInfo was initialized
…9236)

Signed-off-by: Antoine James <antoine@ethereum.org>
* implement xdc codec

* add tests for decoder

* remove unnecesary wrapper

* fix formatting

* refactor unit tests

* refactor: convert BlockDecoder to primary constructor
* more tests and corrected sealing encoding

* format
Copilot AI and others added 24 commits October 14, 2025 14:23
…ature (#9453)

* Initial plan

* Add ChainId to legacy transactions from signature when null

Co-authored-by: MarekM25 <9356351+MarekM25@users.noreply.github.com>

* Fix test expectations to include chainId for legacy transactions

Co-authored-by: MarekM25 <9356351+MarekM25@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MarekM25 <9356351+MarekM25@users.noreply.github.com>
* Add blocktest tracing support to nethtest tool

Implements consolidated transaction tracing for blockchain tests,
compatible with go-ethereum's blocktest trace format.

Features:
- Consolidated trace output to stderr (matching state test behavior)
- Single stream for all blocks and transactions
- JSON-lines format compatible with geth
- CLI options for memory/stack control (-m/-s)
- Unit tests with 4 test methods covering core functionality

Implementation details:
- BlockchainTestStreamingTracer: Streams traces to stderr
- Fixed async block processing race condition in BlockchainTestBase
- Tracer registration moved after StopAsync() for complete traces
- Simplified architecture with single tracer per test run

Usage:
  dotnet nethtest.dll -b -i test.json -t 2>trace.jsonl

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix trace divergence by removing incorrect gas increase heuristic

The gas increase detection logic incorrectly identified instructions after
RETURN/CREATE operations as "jumped over" and skipped tracing them. This
caused trace divergences where:

- After RETURN (depth 2→1): Gas appears to "increase" due to context switch
- Heuristic wrongly skipped next instruction, causing PC misalignment
- Nethermind traces missing instructions that Geth correctly traces

Root cause: The >50 gas threshold conflated:
1. Actual gas stipend increases (CALL/DELEGATECALL)
2. Apparent increases from context returns (RETURN/CREATE)

Fix: Remove selective tracing logic and unconditionally emit all trace entries.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add blocktest test end marker for JSONL-compliant tracing

Implements testEnd marker written to stderr after each blocktest execution:
- Format: {"testEnd":{"name":"...","pass":bool,"fork":"...","v":1,...}}
- Includes test metrics: duration, gasUsed, txs, blocks, finalStateRoot
- Written BEFORE tracer removal to ensure it's the last trace line
- Written even on test failure for proper fuzzer integration

Changes:
- BlockchainTestStreamingTracer: Add WriteTestEndMarker() method
- BlockchainTestBase: Call marker method via reflection before assertions
- Track transaction count, block count, and total gas for metrics

Required for differential fuzzing between Nethermind and Geth.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove reflection

Write directly to output removing memory streams
Refactors

---------

Co-authored-by: Bhargava Shastry <bhargava.shastry@ethereum.org>
Co-authored-by: Claude <noreply@anthropic.com>
* TestDiscovery

* Broadcast_BlockRangeUpdate_when_latest_increased_enough
* Place access list deserialization guards

* refactor

* fix property casing

* Update src/Nethermind/Nethermind.Facade/Eth/RpcTransaction/AccessListForRpc.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Nethermind/Nethermind.Facade/Eth/RpcTransaction/AccessListForRpc.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* rename

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: rubo <rubo@users.noreply.github.com>
* fix Should_return_correct_block_reward

* fix getPayloadV1_waits_for_block_production

* Fix E2ESyncTests by waiting for block processing in setup

* whitespace

* more fixes to E2ESyncTests

* Another fix for Should_return_correct_block_reward

* fix Test_task_that_is_scheduled_during_block_processing_will_continue_after

* more sensible timings

* try fix Maintain_correct_pointers_for_beacon_sync_in_archive_sync and Big_test((storage_hash_and_code_hash_same, System.Action`3[Nethermind.State.StateTree,Nethermind.Trie.Pruning.ITrieStore,Nethermind.Db.IDb]))

* Try wait for BlockProcessingQueue in Big_test

* Revert Big_test changes I give up

* fix

* Try fix ImportAsArchiveSync_WillPaceSuggestBlock

* Try fix ImportAsArchiveSync_WillPaceSuggestBlock further
* Try fixing leak in ProtocolsManager._sessions

* Additional check for safety

* Avoid double removal
* test

* Test

* Test

* Try fix

* Fix hash

* Fix

* Cleanup

* known failing test

* Report self-desctruct

* known tests

* Fix tests list

* Create const

* Move precompiles

* Reset precompiles

* Push empty code into precompile address

* Remove insert

* Override code in precompile

* Commit roots

* Commit

* Fix tests

* Fix tests

* known failing tests

* revert extra test
* Harden RLP limits on allocations

* fix

* fix build

* fix

* fix

* FIx tests, refactors, adjust limits

* Move RlpLimit to own file

* fix

* fix pyspec tests

* Improve exception message

* Update src/Nethermind/Nethermind.Serialization.Rlp/RlpLimit.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Nethermind/Nethermind.Network.Stats/SyncLimits/NethermindSyncLimits.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Nethermind/Nethermind.Network/P2P/ProtocolHandlers/ProtocolHandlerBase.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/Nethermind/Nethermind.Serialization.Rlp/RlpLimit.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Increase Transaction.Data limit to 30MB to handle 300MGas of calldata

* Remove unused

* fix Benchmark solution

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
#9485)

* Adjusting estimateGas response to match geth responses for execution reverted

* Fixing whitespace formatting
* Check bytes left before checking the limit

* Refactor RlpLimit from nullable to Default

Simplify RlpLimit creation with good defaults

* fix by revert back to nullable

* fix

* Add tests
* Fix genesis post processor have no allocations

* Fix build
…c sync manager behavior (#9438)

* Update BlockchainTestBase.cs

* Update BlockchainTestBase.cs

* Update BlockchainTestBase.cs

* Update BlockchainTestBase.cs
@kamilchodola kamilchodola marked this pull request as ready for review October 17, 2025 14:47
@kamilchodola kamilchodola requested a review from a team October 17, 2025 14:47
@kamilchodola kamilchodola merged commit acb864c into kch/rlpforced-getpayload-timestamphack Oct 17, 2025
139 of 148 checks passed
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.