Conversation
LukaszRozmej
approved these changes
Sep 2, 2025
alexb5dh
approved these changes
Sep 2, 2025
src/Nethermind/Nethermind.Blockchain.Test/Receipts/PersistentReceiptStorageTests.cs
Outdated
Show resolved
Hide resolved
alexb5dh
pushed a commit
that referenced
this pull request
Sep 2, 2025
* separate receipt deletion from receipt tx deletion * regression test * tidy test --------- Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com>
stdevMac
pushed a commit
that referenced
this pull request
Sep 3, 2025
* separate receipt deletion from receipt tx deletion * regression test * tidy test --------- Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com>
kamilchodola
added a commit
that referenced
this pull request
Oct 17, 2025
* Align/refactor RPC output with geth (#8951)
* 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 (#9191)
* 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>
* Auto-update fast sync settings (#9193)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Update OP Superchain chains (#9194)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Per contract state (#9088)
* 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>
* Use genesis as the parent for the first block (#9203)
* Improve deposit request fields validation (#9199)
Improve 6110 validation
* Refactor/move main blockprocessing to di (#9130)
* 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 (#9206)
* start XDC project
* moved main project
* revert format
* Optimize TrieNode.SeekChild (#9195)
* 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>
* Fix concurrent storage root issue (#9209)
Co-authored-by: Kamil Chodoła <43241881+kamilchodola@users.noreply.github.com>
* Incorrect Gas Estimation & Refactoring (#9064)
* Incorrect Gas Estimation
Signed-off-by: stavrosvl7 <stavrosvl7@gmail.com>
* GasEstimator refactor post #9064 (#9210)
* Added basic spec classes (#9212)
* Added basic spec classes
* small correction
* Await db blocks sync inside ReviewBlockTree (#9196)
* Stop after 256 blocks
* Run until BestKnownNumber
* Split InitializeNetwork
* Remove comment
* Await processing in ReviewBlockTree
* Revert InitializeNetwork
* Fix formatting
* Remove hardcoded AuRa release spec decorator to plugin module (#9167)
* Auto-update fast sync settings (#9217)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Update OP Superchain chains (#9218)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Precompiles Extensibility through IReleaseSpec (#9222)
* Precompiles Extensibility
* feat: improve kute tool prometheus metrics (#9077)
* 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 (#9224)
* 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>
* Refactor/move blocktree to di (#9230)
* Move blocktree to di
* Reduce change
* Fix test
* Admin Get Peers (#9003)
* 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>
* Fix receipts deletion (#9231)
* separate receipt deletion from receipt tx deletion
* regression test
* tidy test
---------
Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com>
* ENR Support on admin_peers (#9228)
* ENR initial implementation
* ENR on PeerInfo.cs
* Ensure ForkInfo is initialized (#9233)
Ensure ForkInfo was initialized
* feat(block-validator): add debug logging message for MaxRlpBlockSize (#9236)
Signed-off-by: Antoine James <antoine@ethereum.org>
* Implement Xdc Header Decoder (#9214)
* implement xdc codec
* add tests for decoder
* remove unnecesary wrapper
* fix formatting
* refactor unit tests
* refactor: convert BlockDecoder to primary constructor
* Remove unused references for XDC (#9237)
remove unused references
* Corrected sealing encoding XDC (#9238)
* more tests and corrected sealing encoding
* format
* Removed xdc ref in core (#9242)
removed xdc ref in core
* XDC : add extra needed types (#9219)
* add more types used by Xdc
* remove duplicated types
* fix build issiue, missing identifier in SignFn delegate definition
* fix build issue : wrong references in BlockInfo, coupling in ExpCountDown
* add missing ';'
* change signature type from byte[] to Signature class
* ws fixes
* refactors and fixes
* Added more exceptionTypes and refactors
* Update src/Nethermind/Nethermind.Xdc/Types/ExpCountDown.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* applying changes requested
* fix messed up class name
* ws fxies
* removed unused Error msgs (will add them as we need them)
refactored constructors to use primaryCtor
* more cleanup
* refactor to primary ctor
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* implement eth_getAccountInfo (#9241)
* implement eth_getAccountInfo
* update method description
* introduce .empty and have better formatting for return statement
* Added filename in accumulator.txt and checksums.txt (#9211)
* Added filename in accumulator.txt and checksums.txt
* Formatted code
* Updated era import functionalities to support new format of accumulator.txt and checksums.txt
* GasEstimator refactor post #9064 (#9210)
* Added basic spec classes (#9212)
* Added basic spec classes
* small correction
* Await db blocks sync inside ReviewBlockTree (#9196)
* Stop after 256 blocks
* Run until BestKnownNumber
* Split InitializeNetwork
* Remove comment
* Await processing in ReviewBlockTree
* Revert InitializeNetwork
* Fix formatting
* Remove hardcoded AuRa release spec decorator to plugin module (#9167)
* Auto-update fast sync settings (#9217)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Update OP Superchain chains (#9218)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Precompiles Extensibility through IReleaseSpec (#9222)
* Precompiles Extensibility
* feat: improve kute tool prometheus metrics (#9077)
* 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
* Update src/Nethermind/Nethermind.Era.Test/EraExporterTests.cs
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
* Using typed type instead of var
* Using span instead of split
* Using separate array to store file names
* Using span instead of split. Using streamwriter instead of zip
* Feature/issue 8454 add filenames to accumulator checksum refactor (#9247)
* refactors
* simplify
* simplify
---------
Co-authored-by: Niloy Datta <niloy.datta@nethermin.io>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: ak88 <anders@nethermind.io>
Co-authored-by: Nikita Mescheryakov <root@nikitam.io>
Co-authored-by: Amirul Ashraf <asdacap@gmail.com>
Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com>
Co-authored-by: rubo <rubo@users.noreply.github.com>
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
Co-authored-by: Stavros Vlachakis <89769224+svlachakis@users.noreply.github.com>
Co-authored-by: Carlos Bermudez Porto <43155355+cbermudez97@users.noreply.github.com>
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
* Cleanup/remove nodecommit info (#9155)
* Remove node commit info
* Fix worldstate benchmark
* Slight comment
* Fix mistake
* Remove node commit info
* Fix worldstate benchmark
* Slight comment
* Fix mistake
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Prepare stable state
* Remove is root
* Whitespace
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix Nethermind UI when the app is run from non-app directory (#9248)
Update static files resolution to be relative to executable and not content root
* Fix simulate gas (#9244)
* Try fix
* add logging
* Add invalid uncle reason
* Fix uncle
* Add log
* Fix hive
* Remove debug logs
* Try removing validate check
* Cleanup/remove unnecessary method (#9249)
* Remove subinterfacing blockchainbridge factory
* Remove unused method
* Tests for #9244 (#9250)
* Add tests and remove parent
* Remove comment
* Perf/Patricia set (#9220)
* Fix issue
* Extra benchmark
* Use new set
* Reduce change
* Fix missed nibble
* Whitespace
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Core/Buffers/SpanSource.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix build
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Perf/Update Patricia.Get (#9221)
* Fix issue
* Extra benchmark
* Use new set
* Reduce change
* Fix missed nibble
* Whitespace
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Core/Buffers/SpanSource.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix build
* New read
* Remove unused code
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Auto-update fast sync settings (#9252)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Update OP Superchain chains (#9253)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Bump up the version to 1.34.0-unstable (#9124)
Co-authored-by: kamilchodola <kamilchodola@users.noreply.github.com>
* Feature/arbitrum setup sync (#9232)
* Add Arbitrum RPC module
* Add Arbitrum configs and launch profile
* Allow plugin to provide custom genesis loader
* Fix arbitrum chainspec for proper gen block building
* chore: remove GenesisHash from arbitrum-local config (#8693)
The GenesisHash validation is removed from the arbitrum-local config file
to allow for more flexible testing scenarios. As documented in the
LoadGenesisBlock class, when no genesis hash is specified, the system
skips genesis hash validation, which is useful for quick testing of
private chains.
* Rollback introduction of IGenesisLoader in favor of more flexible custom genesis load step, use arbitrum config params
* Adjust steps to support delayed genesis building (#8726)
* Adjust steps to support delayed genesis building
* Try fixing tests, backport Ben's test fix
* Updating arbitrum branch to latest master (#8746)
* Pass PruningConfig to triestore (#8598)
* Move some method to pruning trie store
* Remove set
* Use raw trie store
* Snapsync to not use full trie store
* Further remove some code
* Create test
* Whitespace
* Update src/Nethermind/Nethermind.State.Test/PatriciaTreeTests.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Whitespace
* Use a single trie store for state
* Move to factory function
* More constructor to test function
* Rename to Build
* Overridable world state to not inherit trie store
* Make it official then
* Remove some parameters out of IPruningStrategy
* TrackedPastKeyCountMemoryRatio to TrackPastKeys
* Fix build
* Fix benchmark build
* Fix test build
* Fix build
* Moved test factory to core test
* Added comment and test
* Seal triestore
* Address comment
* Fix build
* Fix build
* Fix build again?
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix/parallel block downloader (#8587)
* Reapply "Perf/parallel block downloader" (#8574)
This reverts commit b9a2a9345d4e5bbe1583258fe6f9c1e1de5ffe72.
* Fix aura not thread safe
* Fix validate suggested block cannot run out of order
* Fix test
* Fix test
* Whitespace
* Some extra log
* Update src/Nethermind/Nethermind.Consensus/Validators/BlockValidator.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Make sure only one request at a time
* Fix build
* Remove comment
* Remove comment
* Check disposed
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update OP Superchain chains (#8611)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Fix trie tests (#8614)
* Fix trie tests
* Fix build
* Whitespace
* Does this work?
* How about now?
* What if I copy it first
* Ok, how about nwo?
* Back to memory
* You know, if you could just reproduce locally, this would be faster.
* Screw it.
* Auto-update fast sync settings (#8612)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Refactor/Explicit message serializer registration (#8604)
* Remove `IMessageSerializationService.Register`
* Check banned registration
* Slight cleanup
* Fix build
* Whitespace
* Add more check
* Fix editorconfig not applied to C# file. (#8620)
Fix editorconfig not applied
* Update libp2p package (#8534)
* HealthChecks: Track CL calls from fcu & np methods (#8603)
* Track CL calls directly
* Fix tests
* Add test
* Fix suggestions
* Remove class
* Update src/Nethermind/Nethermind.HealthChecks/ClHealthRequestsTracker.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Update HealthChecksPlugin.cs
---------
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Cleanup/remove upgreadable peer allocation (#8572)
* Remove upgradeable allocation
* Remove unused method
* Remove allocate best peer
* Slight cleanup
* Safely cast Optimism subtypes (2) (#8619)
Replace cast with `as` operator
* Fix long running test fuzzing OOM (#8615)
* Use console over TestContext in EthereumTests as they can be run from Test.Runner and not flushed for a long time
* whitespace
* Feature/clef tx (#8609)
* Start
* support clef sign transaction in RPC
* fix
* also works with eth_sign
* format
* restore
* review comments
* eth_sign rpc bug fix
* fixed personal_sign
* fix
* revert
* sig fix
* format
* Optimism CL: Enable P2P (#8556)
* Enable p2p
* Improve startup logic
* PayloadByNumber protocol
* Peer manager
* Reverse peers
* Fix formatting
* Fix build
* Fix xml
* Move CL parameters to op config
* Use external ip
* Fix npe
* Lock in EL manager
* Fix formatting
* Simplify sync
* Small fixes
* Fix config description
* Add constants
* Update src/Nethermind/Nethermind.Optimism/IOptimismConfig.cs
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Add logging
* typo
* Fix return
* Remove return
* Update Libp2p
* Remove test feed
* Reuse sessions
* Improve logging
* Remove sessions
* Use LocalPeer sessions
* Shuffle peers
* Fix build
* Update parentHash
* Improve logging
* Log peer
* Update head while processing
* Fix missing payloads
* Head block
* Do not shuffle
* P2P Payload status
* Update libp2p
* Remove return
* Update src/Nethermind/Nethermind.Optimism/CL/ExecutionEngineManager.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Fix formatting
---------
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* OP CL L1 Validation on startup (#8610)
* Enable p2p
* Improve startup logic
* PayloadByNumber protocol
* Peer manager
* Reverse peers
* Fix formatting
* Fix build
* Fix xml
* Move CL parameters to op config
* Use external ip
* Fix npe
* Lock in EL manager
* Fix formatting
* Simplify sync
* Small fixes
* Fix config description
* Add constants
* Update src/Nethermind/Nethermind.Optimism/IOptimismConfig.cs
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Add logging
* typo
* Fix return
* Remove return
* Update Libp2p
* Remove test feed
* Reuse sessions
* Include L1 parameters for validation
* Add `eth_chainId`
* Initial `L1ConfigValidator`
* Validate L1 config on CL startup
* Rename parameters
* Fix license date
* Adjust interface summary
* Improve logging
* Remove sessions
* Add `ArgumentNullException.ThrowIfNull`
* Use LocalPeer sessions
* Shuffle peers
* Fix build
* Update parentHash
* Improve logging
* Log peer
* Update head while processing
* Run `superchain.py`
* Fix missing payloads
* Fix `eth_chainId` deserialization
* Only use `fullTxs = true`
* Empty commit
* Empty commit
---------
Co-authored-by: Nikita Meshcheriakov <root@nikitam.io>
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Initialize kzg when used in runner too (#8623)
* Add Nethermind.Test.Runner Docker image (#8608)
* Fix hive (#8590)
* Report on issues with system contracts
* Externalise conditional logic; intrinsic gas = 0
* Handle deposit layout issues
* Fix more tests
* More tests
* Add system call
* More tests
* Tests
* Fix more
* Fix clique
* Fix more
* Add granular exceptions; separate type fo a system call
* Update tests
* Fix solution; remove redundant changes
* Use the same code
* Refactor/Move DiscoveryApp initialization to DI (#8624)
* Extract node record provider
* DiscV5 to DI
* DiscV4 to DI
* Consolidate the network storage initialization
* Allow more margin
* Override discovery db in test also
* Whitespace
* Add state availability checks before debug module tracing (#8621)
* Check if state is available in debug trace calls
* Add GetFailureResult methods
* Fix formatting
* Set block state as always available in test stub
* Mock relevant methods in unit test stubs
* Set year in copyright text
* Simplify header searches in favor of finds
* Add TryGetHeader
* Expose Block-based interfaces in IGethStyleTracer
* Avoid re-decoding block RLP
* Fix formatting
* Refactor TryGet methods to return header/block
* Set block difficulty if null
* Update Nethermind.Numerics.Int256 package (#8628)
* Fix infinite loop in tx pool (#8632)
* Fix filter timeouts, set to 15m (#8633)
* Update System.CommandLine package (#8639)
* Bump up the version to 1.33.0-unstable (#8533)
Co-authored-by: kamilchodola <kamilchodola@users.noreply.github.com>
* Auto-update fast sync settings (#8645)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Remove SkipLocalsInit to avoid garbage in first bytes of hash (#8634)
* Remove SkipLocalsInit to avoid garbage in first bytes of hash
* Use Ben's ToHash implementation
* Improve test
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Update OP Superchain chains (#8644)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* add surge hoodi chainspec (#8643)
Co-authored-by: Ahmad Bitar <smartprogrammer@windowslive.comm>
* Fix for `Block.AccountChanges` not being disposed in some cases (#8647)
* Fixed `Block.AccountChanges` not being disposed in some cases
* Code cleanup
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix Holesky Sync (#8651)
* taiko alethia pacaya fork activation (#8642)
add taiko alethia pacaya fork activation to chainspec
Co-authored-by: Ahmad Bitar <smartprogrammer@windowslive.comm>
Co-authored-by: Kamil Chodoła <43241881+kamilchodola@users.noreply.github.com>
* Revert wrong code on missing receipt (#8653)
* Revert wrong code on missing receipt
* fix test
* Set default `LegacyTransactionForRpc` gas price to zero (#8630)
Set default legacy transaction gas price to zero
* Fix #8648 - eth_getTransactionByBlockNumberAndIndex out of bounds (#8654)
* Fix #8648 - eth_getTransactionByBlockNumberAndIndex out of bounds
* one more fix
* Update RocksDB package (#8640)
* Kute: order by filename (#8657)
* PatriciaTree ignoreMissingDelete is not used (#8646)
* Remove unused code
* Submodule revert
* Implement Eip7823 (#8649)
* Eip7823 settings
* Add implementation and test
* Format
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Feedback
* Feedback
* Add invalid examples
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Sync OP chains after Isthmus (#8638)
* Change accessibility
* Make `ValidateWithdrawalsRoot` instance method
* Make `ValidateBodyAgainstHeader` an instance method
* Make `ValidateBodyAgainstHeader` virtual
- Revert rename
* Make static methods protected
* Override `ValidateBodyAgainstHeader`
* Update interface implementation in `SlowHeaderValidator`
* Update interface implementation in `TestBlockValidator`
* Fix `BlockValidatorTests`
* Fix `BodiesSyncFeedTests`
* Adjust Isthmus EIPs
* Run `superchain.py`
* Fix `InvalidBlockInterceptorTest`
* Run `superchain.py`
* Delete extra file
---------
Co-authored-by: Kamil Chodoła <43241881+kamilchodola@users.noreply.github.com>
* Use RocksDB PinnableSlice when available (#8661)
* Use RocksDB PinnableSlice when available
* Just use straight overloading
* Optimize RlpStream.Encode(ulong) (#8660)
* Optimize RlpStream.Encode(ulong)
* Don't unnecessarily convert to UInt256 to encode
* Update src/Nethermind/Nethermind.Serialization.Rlp/RlpStream.cs
* Slight discovery refactor. (#8664)
* Reducing change
* Nodes to array segment
* Extract some logic out to DiscoveryPersistenceManager.cs
* Fix test
* Fix test
* How about now
* Ok, so something is running in the background.
* Assert msg count also
* Dont start thread if closed
* Remove the metric assertion
* Slice span rather than array (#8665)
* Use static SHA256.HashData (#8673)
* Use span when slicing arrays (#8672)
* Mild performance tweaks (#8674)
* Mild performance tweaks
* Apply suggestions from code review
Co-authored-by: Amirul Ashraf <asdacap@gmail.com>
---------
Co-authored-by: Amirul Ashraf <asdacap@gmail.com>
* Remove TD based peer allocation strategy (#8670)
* Remove TD based peer allocation strategy
* Remove `MergePeerAllocationStrategy`
* Improve WebSocketMessageStream (#8676)
* Improve WebSocketMessageStream
* Change to struct
* Feedback
* Add test
* Optimism CL: Split finalized/safe blocks (#8658)
* split safe/finalized
* Add logging
* Release lock
* Fix startup processing
* Fix if
* Fix BLockId
* Fix initialization
* Fix
* Fix
* Detect L1 reorgs
* Fix
* Reset on reorg
* Delete some fields
* Finalization first
* L1 bridge step
* Fix
* Fix async
* Fix overflow
* Change to parent hash
* Do not process head
* Fix overflow
* Delay step
* Decrease delay
* Implement process reorg
* Fix formatting
* Clear channels properly
* Reset decoding pipeline
* Fix ClockCache.Set (#8679)
* Fix ClockCache.Set
* Clearer
* Implement EIP-7825: Transaction Gas Limit Cap (#8663)
* initial implementation, txpool limit
* fix formatting
* block validity
* enforce in TxValidator
* restore tx processing
* add txpool test
* add to osaka fork and add txvalidator test
* fix whitespace
* revert accidental changes
* remove from osaka
* fix whitespace
* remove redundant txpool check
* construct ExpectedChainIdTxValidator only once
* move spec check inside GetTxGasLimitCap
---------
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
* Implement OP CL `optimism` RPC namespace (#8667)
* Initial OptimismOptimismRpcModule
- Add `optimism_` namespace
- Initial `optimism_version` method
* Generalize `GetCurrentBlocks`
* WIP `optimism_syncStatus`
* Add `GetSafe`
* Add `L1BlockRef From(L1Block block)`
* Initial `optimism_syncStatus` method
* Document `SyncStatus`
* Add `Zero`
* Add `CurrentL1`
- Handle nulls as Zero
* Refactor CL constructor
- Replace with DI
- Initialize OP CL RPC module
* Prefer to inject `ILogManager`
* Fix whitespace
* Relax accessibility modifier
* WIP `optimism_rollupConfig`
* Add `delta` fork
* Remove interop
* Add `EIP1559DenominatorCanyon`
* Add `ChannelTimeout`
- Constant value
* Add `OptimismSystemConfig`
- Store genesis system config
* Run `superchain.py`
* Correct JSON serialization
* Initial `optimism_outputAtBlock`
* Add `GetProof`
* Add `StateRoot` to `L2Block`
* Initial `optimism_outputAtBlock`
* Run `superchain.py`
* Small tweaks
* Actually compute Root hash
* Skip local initialization
* Hide OP-CL specific options (#8684)
* Hide OP-CL RPC module
* Hide OP-CL configs
* Reduce `Forward header starting block number did not changed.` exception to log. (#8683)
* Fix unexpected same block number exception
* Whitespace
* Refactor projects configuration (#8659)
* Update packages (#8641)
* Refactor/Reduce `AuraNethermindApi` usage. (#8686)
* Dont use static factory here
* Trying to isolate StartBlockProduer also
* Start blockchain aura
* Block produce env factory
* Remove unnecessary code
* Optimize 12 x 20byte & 32byte OpCodes (#8687)
* Optimize Address returning OpCodes
* Optimize PREVRANDAO opcode
* Optimize ChainId opcode
* Simplify Hash Pushes
* Less Unsafe
* Read-only method
* Align stack memory
* Optimize alignment calc
* over comment
* Use EvmStack.WordSize const
* Optimize `UInt256` opcodes
* Optimize loop
* Balance, SelfBalance
* ExtCodeHash
* Short circuit delegate look up for empty
* Optimize code lookup
* Add Unsafe back
* Pass through push
* Pass through 32
* Keep as property
* Move to VirtualMachine
* Change back to readonly field
* Auto-update fast sync settings (#8689)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Update OP Superchain chains (#8690)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Perform stack writes as single 32 vector (#8691)
* Perform stack writes as single 32 vector
* Use shared method
* Make common method
* Reintroduce Jit time branch elimination (#8692)
* Reintroduce Jit time branch elimination
* Formatting
* Compile issues
* Move to core
* Benchmarks
* Benchmarks
* Fixes one discv5 test (#8635)
* fix
* review comment
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Migrate to Microsoft.Testing.Platform (#8190)
* Migrate to Microsoft.Testing.Platform
* Remove irrelevant setting
* Fix Taiko project
* Show failure per test
* Fix Ethereum.Test.Base
* Fix entry point
* Ignore status code 8
* Restore to library project
* Remove Nethermind.State.Test.Runner
* Fix build errors
* Fix Nethermind.Test.Runner
* Ignore Log dir
* Remove duplicate property
* Ignore TestResults dir
* Remove VSTest stuff
* Revise coverage collection
* Disable Nethermind.Overseer.Test and change test commands
* Rename code coverage settings file
* Fix file encodings
* Refactor tests workflow
* Fix tests workflow
* Update Microsoft.Testing.Extensions.CodeCoverage package
* Update Microsoft packages
* Revise workflow
* Apply `EnableNUnitRunner` individually
* Rename code coverage config
* Update packages
* Update `testenvironments.json`
* Revert `StartupObject` changes
* Update NUnit.Analyzers package
* Fix/aura hive startup (#8694)
* Fix aura hive startup
* Remove unnecessary change
* EIP-7594: PeerDAS (#8417)
* calculate cell kzg proofs
* extent tx network wrapper
* add cell proofs to test tx builder
* add test for blob txs with cell proofs
* add tx extension to supply both blob proofs and cell proofs
* adjust tx builder to current master
* fix data length
* adjust tx validator
* extend test
* simplify network wrapper
* cosmetics
* hack decoder to accept optional blob proofs
* cleaning
* add cell proofs verification
* fix
* draft of translation logic
* enable translation in tx validator
* fix commitments
* Send blobs update
* Add engine_getBlobsV2, Fusaka
* Fix proofs
* drop BlobSender changes
* Fix encoding
* undo remaining blob sender changes
* Fix block production
* undo bs
* Fix multiple blobs sending
* Add more structs and APIs
* Split GetBlobsHandler file
* cleaning
* fix blob tx decoder
* fix old proof length in transaction builder
* fix transaction builder
* whitespaces, encoding
* add getBlobsV2 to engine rpc capabilities
* fix test
* fix proofs validation
* bring back Alexey's BlobSender changes
* whitespace
* fix
* Add manager(just PoC)
* Add osaka blobs settings change handling
* add ProofVersion to ChainHeadInfoProvider and add SpecDrivenTxGossipPolicy
* Fix some tests
* Fix V2 proofs
* fix file encoding
* add error InvalidProofVersion
* invalidate if proof version is not correct
* add test OsakaSpecProvider
* adjust and extend test for cell proofs pre and post osaka
* Fix APIs
* Fix a test
* Move name to spec to Spec project
* Fix build
* fix cancun caps
* Make tx pool return blob txs with applicable proof version
* Change proof version
* Display better error
* add ProofsTranslationEnabled to config
* convert old proof to cell proofs if enabled and after fusaka
* add test
* allow replacement: new proofs for old proof
* add regression test
* fix transaction selector tests
* Fix blob sender #2 and #3 breaks
* fix engine_getBlobsV2 warning
* fix osaka caps activation
* fix tests
* extend test for blobs bundle v1
* add regression test for blobs bundle v2
* whitespaces
* fix blobs bundle v2
* cosmetic
* fix versions
* add AreBlobsAvailable
* add metrics
* return empty array if not all blobs are available
* add tests, fix disposing issues
* fix build
* Dial back JsonRpc log spam
* fix test
* default ProofsTranslationEnabled to false
* fix test
* Rename proof versions for less confusion
* Fix naming change
* One does not simply rename an enum value
* Simplify proof version checkers
* Clean up
* Ckzg.Ckzg -> Ckzg. (#8568)
Ckzg./2
* Rename peerdas getBlobsV2 metrics (#8579)
* Add metrics for getBlobsV2
* Remove AreBlobsAvailable
* Rename metrics
* fix
* fix build
* fix test
* readd proof version validation
* Quick cleanup
* Fix gpv3 fork validation
* Fix building
* Clean up
* Evict transactions with old proofs
* Improve test
* Fix test
* Fix some comments
* Update src/Nethermind/Nethermind.Merge.Plugin/Metrics.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* More fixes
* More
* More fixes
* More fixes
* Use preallocated span not list
* Segregate; statics
* Update src/Nethermind/Nethermind.Merge.Plugin.Test/EngineModuleTests.V4.cs
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Fix
---------
Co-authored-by: Alexey Osipov <me@flcl.me>
Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
Co-authored-by: Minhyuk Kim <kimminhyuk1004@gmail.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Refactor build scripts (#8601)
* Refactor/make all blockprocessor arg required (#8688)
* Dont use static factory here
* Trying to isolate StartBlockProduer also
* Start blockchain aura
* Block produce env factory
* Remove unnecessary code
* Explicit constructor variable
* Remove receipt root
* Explicit execution requests
* Remove transitioning factory constructor
* Reduce code
* Reduce diff
* Update src/Nethermind/Nethermind.Consensus.AuRa/InitializationSteps/InitializeBlockchainAuRa.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Whitespace
* Fix build
* Address taiko
* Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Fix clique
* Unused imports
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Warm up evm instructions (#8699)
* Warm up evm instructions
* mods
* Use SpecProvider
* Revert "Use SpecProvider"
This reverts commit 189ef1d2d870a3ae775bb7d5fe5f758b0051a68f.
* Add BPOs (#8631)
* calculate cell kzg proofs
* extent tx network wrapper
* add cell proofs to test tx builder
* add test for blob txs with cell proofs
* add tx extension to supply both blob proofs and cell proofs
* adjust tx builder to current master
* fix data length
* adjust tx validator
* extend test
* simplify network wrapper
* cosmetics
* hack decoder to accept optional blob proofs
* cleaning
* add cell proofs verification
* fix
* draft of translation logic
* enable translation in tx validator
* fix commitments
* Send blobs update
* Add engine_getBlobsV2, Fusaka
* Fix proofs
* drop BlobSender changes
* Fix encoding
* undo remaining blob sender changes
* Fix block production
* undo bs
* Fix multiple blobs sending
* Add more structs and APIs
* Split GetBlobsHandler file
* cleaning
* fix blob tx decoder
* fix old proof length in transaction builder
* fix transaction builder
* whitespaces, encoding
* add getBlobsV2 to engine rpc capabilities
* fix test
* fix proofs validation
* bring back Alexey's BlobSender changes
* whitespace
* fix
* Add manager(just PoC)
* Add osaka blobs settings change handling
* add ProofVersion to ChainHeadInfoProvider and add SpecDrivenTxGossipPolicy
* Fix some tests
* Fix V2 proofs
* fix file encoding
* add error InvalidProofVersion
* invalidate if proof version is not correct
* add test OsakaSpecProvider
* adjust and extend test for cell proofs pre and post osaka
* Fix APIs
* Fix a test
* Move name to spec to Spec project
* Fix build
* fix cancun caps
* Make tx pool return blob txs with applicable proof version
* Change proof version
* Display better error
* add ProofsTranslationEnabled to config
* convert old proof to cell proofs if enabled and after fusaka
* add test
* allow replacement: new proofs for old proof
* add regression test
* fix transaction selector tests
* Fix blob sender #2 and #3 breaks
* fix engine_getBlobsV2 warning
* fix osaka caps activation
* fix tests
* extend test for blobs bundle v1
* add regression test for blobs bundle v2
* whitespaces
* fix blobs bundle v2
* cosmetic
* fix versions
* add AreBlobsAvailable
* add metrics
* return empty array if not all blobs are available
* add tests, fix disposing issues
* fix build
* Dial back JsonRpc log spam
* fix test
* default ProofsTranslationEnabled to false
* fix test
* Rename proof versions for less confusion
* Fix naming change
* One does not simply rename an enum value
* Simplify proof version checkers
* Clean up
* Ckzg.Ckzg -> Ckzg. (#8568)
Ckzg./2
* Rename peerdas getBlobsV2 metrics (#8579)
* Add metrics for getBlobsV2
* Remove AreBlobsAvailable
* Rename metrics
* fix
* fix build
* fix test
* readd proof version validation
* Quick cleanup
* Fix gpv3 fork validation
* Fix building
* Clean up
* Evict transactions with old proofs
* Improve test
* Fix test
* Add BPOs
* Evict txs with to many blobs, don't allow gaps
* Fix tests
* Add osaka
* Apply suggestions from code review
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
* Change bpos format to array with timestamps
* Update spec format; fix tests
* Fix some comments
* Update src/Nethermind/Nethermind.Merge.Plugin/Metrics.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* More fixes
* More
* More fixes
* More fixes
* Fix typos, clean up
* More fixes
* Use preallocated span not list
* Segregate; statics
* Fix merge
* Typos
* Improve tests and spec
* Return previous approach
---------
Co-authored-by: Marcin Sobczak <marcindsobczak@gmail.com>
Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
Co-authored-by: Minhyuk Kim <kimminhyuk1004@gmail.com>
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update TxParser (#8698)
* Update fork in TxParser
* Add way to get latest named fork class
* Update src/Nethermind/Nethermind.Specs.Test/Nethermind.Specs.Test.csproj
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Update Directory.Packages.props
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Update src/Nethermind/Nethermind.Specs.Test/Nethermind.Specs.Test.csproj
* fixes
* Remove transaction validator
* remove unused code
* remove unneded usings
* Use Fork.GetLatest in EVM Warmup
* Cache Fork.GetLatest result
---------
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* eip-7883 implementation (#8489)
* bump pricing
* disable precompile cache
* min gas at 300
* 400 is the new min
* divide by 2
* min gas 500
* min gas 600
* divide by 2
* min gas 500
* increase words cost if >32 bytes
* add eip activation
* fix whitespace
* add tests
* add more tests
* fix whitespaces
* minor refactoring
* Add GasCostOf constant
* Name numbers
* cosmetic
* Add json -> spec -> prov loading test for timestamps
* Fix test
* Fix testing platform by getting rid of internals
* Reuse
* Add names
* Disable EOF
---------
Co-authored-by: Marcin Sobczak <marcindsobczak@gmail.com>
Co-authored-by: Alexey Osipov <me@flcl.me>
Co-authored-by: Marek Moraczyński <marekm2504@gmail.com>
* Add logo on startup (#8701)
* Add logo on startup
* Include text
* extra
* Less bright
* Add website
* Make links brighter
* Only have one website
* Init banner
* Refactor/deduplicate ReadOnlyTxProcessingEnvFactory (#8697)
* Dont use static factory here
* Trying to isolate StartBlockProduer also
* Start blockchain aura
* Block produce env factory
* Remove unnecessary code
* Explicit constructor variable
* Remove receipt root
* Explicit execution requests
* Remove transitioning factory constructor
* Reduce code
* Reduce diff
* Update src/Nethermind/Nethermind.Consensus.AuRa/InitializationSteps/InitializeBlockchainAuRa.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Whitespace
* Fix build
* Address taiko
* Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Auto read only tx processing env
* Fix clique
* Unused imports
* Fix more build
* Remove from taiko
* Add processing module
* Add all plugin
* Remove more use of read only tx processing env
* Remove the one in aura api
* Hide it from usage
* Slight cleanup
* Revert unnecessary change
* Update src/Nethermind/Nethermind.Runner/NethermindPlugins.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Restore and fix tests (#8696)
* Un-ignore tests
* Fix test names
* Rename tests on the fly
* Return `null` instead of errors in RPC `get` methods (#8702)
* Make `get<X>CountBy<Y>` return `null` on error
* Make `get` methods return `null` on not found
- Adjust nullability annotations
* Cleanup/move some aura components to di (#8704)
* Move to DI
* Some fix
* Fix test
* Fix aura test
* Missed equal sign
* Optimize: Number, GasLimit, Coinbase, PrevRandao opcodes (#8700)
* Potentially optimize: Number, GasLimit, Coinbase, PrevRandao opcodes
* optimize BlockExecutionContext layout
* optimize ExecutionEnvironment layout
* Update src/Nethermind/Nethermind.Evm/BlockExecutionContext.cs
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* fix
* fix test
* Keep PrevRandao as Big-endian
* Convert BlobBaseFee once
* Formatting
* Create BlockExecutionContext less often
* build fix
* Reuse BlockExecutionContext in Prewarmer
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* EIP-7918: Blob base fee bounded by execution cost (#8656)
* initial impl
* fix whitespace
* start adding tests
* 7918 tests
* fix formatting
* fix comment
* fix and update formula
* fix tests, constant
* make cleaner
* move constant to own file
* add missing eip enable
* use ulong, fix underflow
* rename to parentBlobGas to match spec
* Update src/Nethermind/Nethermind.Core/Eip7918Constants.cs
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* remove redundant checks
* check that target does not exceed max when loading blob schedule
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* TxParser: Add signature validation, keep errors in 1 line (#8706)
* Add signature validation, keep errors in 1 line
* remove unused usings
* optimize
* Refactor tests configuration and work around Rider issue (#8703)
* Move common tests properties to `tests.props`
* Move common packages to `tests.props`
* Add `tests.props` to solution
* Add Microsoft.NET.Test.Sdk package
* Revise workaround condition
* Some fixes for clef integration in RPC (#8626)
* checksum address converter
* fix
* ignore gasPrice in eip1559 rpc tx
* fix
check on tx type instead
* dont change normal RPC behavior
* Fix Nethermind.Test.Runner Dockerfile (#8708)
* GetStorageRange fix for no storage slots found (#8538)
* GetStorageRange test with no slots returned
* Single case fix
* Retrun proofs when no storage slot found
* Test build fix
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Fix Assertoor workflow (#8711)
* Optimize debugging container (#8710)
* Update known_chain_sizes test (#8714)
* Use less allocating .ToValueHash than .ToBigEndian (#8713)
* TxParser add chain id validation (#8709)
* Fix/disconnect without sending reason (#8712)
* Disconnect after hello by default
* Fix disconnecting without reason
* Cleanup
* Optimize JournalSet (#8716)
* Optimize JournalSet
* Don't repeat mistakes of the past
* debug
* build
* Also ChainLevelHelper
* SkipLocalsInit as create span
* Remove special case
* Fix exception on exit for incomplete nethermind startup. (#8717)
* Abstracted
* Service stopper code
* Setup
* All service with dependency injection
* Integrate dispose stack
* Slight comment
* Slight cleanup
* Remove disposable stack
* Whitespace
* Remove Nethermind.Tools.GasHistorian (#8720)
* Remove obsolete scripts (#8721)
* Feature/snapsync storage log (#8675)
* Remove TD based peer allocation strategy
* Remove `MergePeerAllocationStrategy`
* Better snap progress
* More accurate storage
* Sync dispatcher metric
* Fix large storage not showing up
* Slight cleanup
* Consistency
* Probably fix not showing up on mainnet
* Whitespace
* Ok, this should works.
* Minor cleanup
* Minor cleanup
* Configurable high storage queue threshold
* Switch to standard dictionary
* Nope, I was just lucky at that time
* Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs"
This reverts commit 2dc5c143c8192f307d47a39db5ea23a9c703dde4.
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Refactor/Consolidate ISealEngine. (#8705)
* Move some sealing components to DI
* Some fix
* Move to DI
* Some fix
* Fix aura
* Some low hanging fruit
* Remove unused imports
* Slight cleanup
* Slight cleanup
* Fix build
* Fix another test
* Fix test
* Slight cleanup
* Set to global seal engine
* Surface acceptTx on sync via config (#8728)
* Improve JumpDest analysis (#8725)
* Add Vector512 JumpDestAnalysis
* Also work on Arm
* Add Uniswap
* Enable all benchmarks
* Formatting
* Rename
* Cleanur/remove create heath hint service (#8727)
* Remove IHealthHintService from api
* Move healthcheck
* Slight cleanup
* Reduce unnecessary change
* Fix test
* Fix taiko
* Whitespace
* Update src/Nethermind/Nethermind.Api/NethermindApi.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix build
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix tx blob deserialization after PeerDAS (#8729)
* Added test for failed deserialization
* Try fix failing deserialization
* Simplify code
* Try another fix
* Simplify fix
* Move unit tests to use IWorldState instead of ITrieStore (#8724)
* Moved to use IWorldState instead
* Reduce unnecessary change
* Reduce usae again
* Reduce usae again
* Whitespace
* Fix benchmark build
* Fix build
* Support for eth/69 (#7052)
* Added eth/69 protocol handler
* Ignore NewBlock and NewBlockHashes messages
* [WIP] Make td in Status message optional
* Handle receipts messages
* Receipt message serialization tests
* Fixed Status message handling
* Disable sending Status, NewBlock and NewBlockHashes messages
* Updated naming
* Fixed Status serialization/deserialization
* Initial handler tests
* Rebase fix
* Updated handler tests
* Fix formatting
* Code cleanup
* Code cleanup
* Added more units tests
* Removed ignored unit tests
* PR fixes
* Tests code cleanup
* Implementation without adding new `RlpBehaviors`
* Code cleanup
* Code cleanup
* Fix messages disposing in tests
* Build fix
* Optimize to avoid creating `StatusMessage` copy
* Updated `StatusMessage` to the latest version
* Do not ignore `NewBlock` and `NewBlockHashes` messages
* Code cleanup
* Set `HeadNumber` on `Status` message
* Code cleanup
* Handling for `BlockRangeUpdate` message
* Potential fix for failing tests
* Enabled eth/69 where needed
* Fixed tests
* Revert removing new block notification
* Fix peers ordering, attempt #1
* Revert "Fix peers ordering, attempt #1"
This reverts commit a0aa23bc1c319b2e689b595b293f38894c24226b.
* Allow nullable TD in `IBetterPeerStrategy`
* [WIP] Fix peers ordering attempt #2
* Revert "[WIP] Fix peers ordering attempt #2"
This reverts commit c2b61cf90f7469e02f1e9e7feefb25ca671ee64d.
* Sending `BlockRangeUpdate`, version 1
* Build fix
* Send block update only for 32+ difference
* Tests update
* Another build fix
* Add eth/69 as part of Merge module
* Fixed missing serializer in test
* Try use `LastBlockBetterPeerStrategy`
* Adjust disconnection logic for no-TD peers
* TODO
* Fixed `BlockRangeUpdate` packet type
* Removed testing code and todo
* Select peers for syncing by last block instead of TD
* Formatting fix
* Fix eth/69 registration location
* Move eth/69 back to default capabilities
* Updated `P2PMessageKey`
* Remove unneeded TODO
* `ToString` override for BlockRangeUpdate
* Fixed adaptive id resolving when sending `BlockRangeUpdate`
* Add IPoSSwitcher.Transitioned event
* fix
* Improvements for BlockRangeUpdate handling
* [WIP] Update receipts encoding to latest spec
* Fixes and updates for receipts encoding
* Test for disconnection on invalid `BlockRangeUpdate`
* Try finalize nullable peer TD
* Code cleanup & build fix
* Code cleanup & build fix
* Fixed latest protocol version when capability is added dynamically
* Try to fix `Block.AccountChanges` not being disposed in case of error
* Fixed most tests
* Revert "Try to fix `Block.AccountChanges` not being disposed in case of error"
This reverts commit 4821110cad2611263dcdb097c32bdb49fc206a4d.
* Fixed `Block.AccountChanges` not being disposed in some cases
* Finalize peer strategy transitioning
* Fixed build and tests
* Another tests fix
* Unsubscribe `PoSSwitcher.Transitioned` after firing
* Build/merge fixes
* Removed new strategies
* Some docs for `IPoSSwitcher`
* ~ Test Hive when listening on 0.0.0.0
* ~ Test Hive when listening on 0.0.0.0
* Revert "~ Test Hive when listening on 0.0.0.0"
* PR feedback & build fix
* Test fix
* Build fix
* Log adding eth/69
* ~Log supported capabilities when no-match
* Remove testing code
* Refactor `BlockRangeUpdate` broadcast to avoid modifying existing code
* Fixes
* More fixes, including tests
* Cleanup & fixes
* Cleanup
* Test fix
* Naming
* Another test fix
* Cleanup
* Feedback
* Simplify update frequency limiter
* Try fix failing test via waiting
---------
Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com>
* Fix runner test (#8731)
* Fix runner test
* Fix runner test
* To interlocked
* Use semaphore
* Move wait to `RegisterPluginRpcModule`
* Increase Ethereum mainet gaslimit default to 60M (#8671)
* Refactor/use block producer env factory (#8730)
* Block producer env factory isolated
* Simplify block producer env factory
* Clique and nethdev
* Reduce code
* Fix test
* Remove a method
* Use in tests also
* Simplify
* Reduce parameter
* Better name
* Separate neth dev to another file
* Unnecessary comment
* Whhitespace
* Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Feature/Step dependents (#8734)
* Step dependents
* Rename initialize statedb to run verify trie
* Cleanup
* Remove filter bootnodes
* Remove InitCrypto
* Reduces some code
* Unit tests
* Use the same attribute
* Make run verify trie optional
* Fix test
* ExecutionEnvironment pass Uint256 as in (#8736)
* ExecutionEnvironment pass Uint256 as in
* more in
* Refactor/remove additional tx source param (#8735)
* Step dependents
* Rename initialize statedb to run verify trie
* Cleanup
* Remove filter bootnodes
* Remove InitCrypto
* Reduces some code
* Unit tests
* Block producer env factory isolated
* Simplify block producer env factory
* Clique and nethdev
* Reduce code
* Fix test
* Remove a method
* Use in tests also
* Simplify
* Reduce parameter
* Better name
* Separate neth dev to another file
* Unnecessary comment
* Whhitespace
* Remove additional tx source param
* Fix shutter
* Use the same attribute
* Make run verify trie optional
* Fix test
* Slight cleanup
* Remove some more code
* Move shutter initialization somewhere else
* Rename to RunshutterP2p
* Revert unnecessary change
* Fix shutter test
* Update src/Nethermind/Nethermind.Init/RunVerifyTrie.cs
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
* Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
* Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
---------
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
* Adjust block size to CL pessimistic block size (#8737)
* adjust block size to CL limit
* Update src/Nethermind/Nethermind.Config/BlocksConfig.cs
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Whitespace
---------
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
* Fix secp256r1 precompile test cases (#8738)
* Fixe secp256r1 test cases
* Get rid of nullability
* Replace expected `null` with empty array to all tests
* Improve performance of CALL opcodes (#8732)
* Clean up method params passing
* Benchmarks
* param
* Reduce changes
* Previous disown
* fix tests
* fix tests
* Increase changes
* Top level contexts
* Format
* compile
* Build
* build
* Local authority
* Clean up ordering
* Build
* tests
* tests
* test fix
* tests
* tests
* Disconnect when connected
* Revert "Disconnect when connected"
This reverts commit bb527029026bb1e69290aff8c7a6cfebccf71276.
* Add back other Memory Type
* Add min memory rent size (#8740)
* Add min memory rent size
* fix
* Make `StateProvider` hot code in the common path (#8744)
* Hotter code for StateProvider.Restore
* Hot code
* Hot code Restore
* Formatting
* Fix
* chore(evm): fix 7918 blob gas calculator (#8743)
* fix(formatting): from 4 to 2 spaces indent
---------
Co-authored-by: Amirul Ashraf <asdacap@gmail.com>
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com>
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
Co-authored-by: rubo <rubo@users.noreply.github.com>
Co-authored-by: Marc <Marchhill@users.noreply.github.com>
Co-authored-by: Nikita Mescheryakov <root@nikitam.io>
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
Co-authored-by: ak88 <anders@nethermind.io>
Co-authored-by: Alexey <me@flcl.me>
Co-authored-by: Franco Barpp Gomes <franco@nethermind.io>
Co-authored-by: kamilchodola <kamilchodola@users.noreply.github.com>
Co-authored-by: Pavlo Rytikov <pavlo@nethermind.io>
Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk>
Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com>
Co-authored-by: Ahmad Bitar <smartprogrammer@windowslive.comm>
Co-authored-by: Alex <alexb5dh@gmail.com>
Co-authored-by: Kamil Chodoła <43241881+kamilchodola@users.noreply.github.com>
Co-authored-by: Marek Moraczyński <marekm2504@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Marcin Sobczak <77129288+marcindsobczak@users.noreply.github.com>
Co-authored-by: Minhyuk Kim <kimminhyuk1004@gmail.com>
Co-authored-by: Marcin Sobczak <marcindsobczak@gmail.com>
Co-authored-by: yerke26 <160018032+yerke26@users.noreply.github.com>
Co-authored-by: Damian Orzechowski <114909782+damian-orzechowski@users.noreply.github.com>
Co-authored-by: spencer <spencer@spencertaylorbrown.uk>
* Sync with master (#8785)
* Pass PruningConfig to triestore (#8598)
* Move some method to pruning trie store
* Remove set
* Use raw trie store
* Snapsync to not use full trie store
* Further remove some code
* Create test
* Whitespace
* Update src/Nethermind/Nethermind.State.Test/PatriciaTreeTests.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Whitespace
* Use a single trie store for state
* Move to factory function
* More constructor to test function
* Rename to Build
* Overridable world state to not inherit trie store
* Make it official then
* Remove some parameters out of IPruningStrategy
* TrackedPastKeyCountMemoryRatio to TrackPastKeys
* Fix build
* Fix benchmark build
* Fix test build
* Fix build
* Moved test factory to core test
* Added comment and test
* Seal triestore
* Address comment
* Fix build
* Fix build
* Fix build again?
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Fix/parallel block downloader (#8587)
* Reapply "Perf/parallel block downloader" (#8574)
This reverts commit b9a2a9345d4e5bbe1583258fe6f9c1e1de5ffe72.
* Fix aura not thread safe
* Fix validate suggested block cannot run out of order
* Fix test
* Fix test
* Whitespace
* Some extra log
* Update src/Nethermind/Nethermind.Consensus/Validators/BlockValidator.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Make sure only one request at a time
* Fix build
* Remove comment
* Remove comment
* Check disposed
---------
Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com>
* Update OP Superchain chains (#8611)
Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com>
* Fix trie tests (#8614)
* Fix trie tests
* Fix build
* Whitespace
* Does this work?
* How about now?
* What if I copy it first
* Ok, how about nwo?
* Back to memory
* You know, if you could just reproduce locally, this would be faster.
* Screw it.
* Auto-update fast sync settings (#8612)
Co-authored-by: rubo <rubo@users.noreply.github.com>
* Refactor/Explicit message serializer registration (#8604)
* Remove `IMessageSerializationService.Register`
* Check banned registration
* Slight cleanup
* Fix build
* Whitespace
* Add more check
* Fix editorconfig not applied to C# file. (#8620)
Fix editorconfig not applied
* Update libp2p package (#8534)
* HealthChecks: Track CL calls from fcu & np methods (#8603)
* Track CL calls directly
* Fix tests
* Add test
* Fix suggestions
* Remove class
* Update src/Nethermind/Nethermind.HealthChecks/ClHealthRequestsTracker.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Update HealthChecksPlugin.cs
---------
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Cleanup/remove upgreadable peer allocation (#8572)
* Remove upgradeable allocation
* Remove unused method
* Remove allocate best peer
* Slight cleanup
* Safely cast Optimism subtypes (2) (#8619)
Replace cast with `as` operator
* Fix long running test fuzzing OOM (#8615)
* Use console over TestContext in EthereumTests as they can be run from Test.Runner and not flushed for a long time
* whitespace
* Feature/clef tx (#8609)
* Start
* support clef sign transaction in RPC
* fix
* also works with eth_sign
* format
* restore
* review comments
* eth_sign rpc bug fix
* fixed personal_sign
* fix
* revert
* sig fix
* format
* Optimism CL: Enable P2P (#8556)
* Enable p2p
* Improve startup logic
* PayloadByNumber protocol
* Peer manager
* Reverse peers
* Fix formatting
* Fix build
* Fix xml
* Move CL parameters to op config
* Use external ip
* Fix npe
* Lock in EL manager
* Fix formatting
* Simplify sync
* Small fixes
* Fix config description
* Add constants
* Update src/Nethermind/Nethermind.Optimism/IOptimismConfig.cs
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Add logging
* typo
* Fix return
* Remove return
* Update Libp2p
* Remove test feed
* Reuse sessions
* Improve logging
* Remove sessions
* Use LocalPeer sessions
* Shuffle peers
* Fix build
* Update parentHash
* Improve logging
* Log peer
* Update head while processing
* Fix missing payloads
* Head block
* Do not shuffle
* P2P Payload status
* Update libp2p
* Remove return
* Update src/Nethermind/Nethermind.Optimism/CL/ExecutionEngineManager.cs
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* Fix formatting
---------
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
Co-authored-by: Lautaro Emanuel <31224949+emlautarom1@users.noreply.github.com>
* OP CL L1 Validation on startup (#8610)
* Enable p2p
* Improve startup logic
* PayloadByNumber protocol
* Peer manager
* Reverse peers
* Fix formatting
* Fix build
* Fix xml
* Move CL parameters to op config
* Use external ip
* Fix npe
* Lock in EL manager
* Fix formatting
* Simplify sync
* Small fixes
* Fix config description
* Add constants
* Update src/Nethermind/Nethermind.Optimism/IOptimismConfig.cs
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Add logging
* typo
* Fix return
* Remove return
* Update Libp2p
* Remove test feed
* Reuse sessions
* Include L1 parameters for validation
* Add `eth_chainId`
* Initial `L1ConfigValidator`
* Validate L1 config on CL startup
* Rename parameters
* Fix license date
* Adjust interface summary
* Improve logging
* Remove sessions
* Add `ArgumentNullException.ThrowIfNull`
* Use LocalPeer sessions
* Shuffle peers
* Fix build
* Update parentHash
* Improve logging
* Log peer
* Update head while processing
* Run `superchain.py`
* Fix missing payloads
* Fix `eth_chainId` deserialization
* Only use `fullTxs = true`
* Empty commit
* Empty commit
---------
Co-authored-by: Nikita Meshcheriakov <root@nikitam.io>
Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com>
* Initialize kzg when used in runner too (#8623)
* Add Nethermind.Test.Runner Docker image (#8608)
* Fix hive (#8590)
* Report on issues with system contracts
* Externalise conditional logic; intrinsic gas = 0
* Handle deposit layout issues
* Fix more tests
* More tests
* Add system call
* More tests
* Tests
* Fix more
* Fix clique
* Fix more
* Add granular exceptions; separate type fo a system call
* Update tests
* Fix solution; remove redundant changes
* Use the same code
* Refactor/Move DiscoveryApp initialization to DI (#8624)
* Extract node record provider
* DiscV5 to DI
* DiscV4 to DI
* Consolidate the network storage initialization
* Allow more margin
* Override discovery db in test also
* Whitespace
* Add state availability checks before debug module tracing (#8621)
* Check if state is available in debug trace calls
* Add GetFailureResult methods
* Fix formatting
* Set block state as …
alexb5dh
added a commit
that referenced
this pull request
Feb 16, 2026
* Adjust `OnReceiptsInserted` logging * Naming * Normalize block number formatting # Conflicts: # src/Nethermind/Nethermind.Facade/Find/LogIndexService.cs * Build fix * Code cleanup * Use ancient receipts barrier for backwards sync target & include target values in RPC * Adjust logging and waiting times * Fresh start fix * Adjust min target block calculation * Fix repeated completion logging * Temporary more logging again * Try recover receipts * Optimize processing of no-tx blocks * Fir out-of-range error * Fix receipts deletion (#9231) * separate receipt deletion from receipt tx deletion * regression test * tidy test --------- Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com> * `logIndex_blockNumbers` RPC * Logging tweaks * [WIP] Support for topic index * Remove key size dependencies * Try compress key in both DBs * Separate merge operator per column family * Fixes * Remove possible collisions as causing invalid merge order * More fixes * Constant db key postfix size & fixes * Screw this, use separate DB per topic index * Get rid of generic iterator interface * Fixes for seeking, but getting block numbers is now much slower * Code cleanup * Do not remove leading zeroes & revert seeking * Fix filter matching * Tests fixes * Move filter tests to separate class & code formatting * Support for concurrent forward/backward sync & tests * Fixes for concurrent sync & more aggresive test * Code cleanup * Fix log index syncing blocking other tasks * Refactor syncing for better concurrency * Increase receipts cache size to 1024 * Log receipts loading time * Adjust parallelism values * Track backward/forward syncing stats separately * Revert "Increase receipts cache size to 1024" This reverts commit 18a13d5. * Set DB version * Option to delay compressor start * Include index version and reset data if version is invalid * Log index compaction RPC * todo * Add missing service registration * Remove "waiting for block" trace logging * Do start indexing before DB initialization * Code cleanup * Fix double DB initialization * Fix aggressive memory usage * Stop on error * todos * Formatting * Configuration for log-index & support for disabling/resetting index via config * Updates to logIndex_status, include status, last-update-data, and last-error * Replace last-update with `DateTimeOffset` * Typo fix * Syncing service small refactoring, fixes, and basic tests * Fix repeated completion logging * Adjust default `SyncFetchBatchParallelism` * TurboPFor updates to match package version * Build fix * Configurable compression algorithm, handle if unsupported * Support for `IWriteBatch` clearing * Remove `RequireCommitWriteBatch` * Throw if stopped * Simplify `GetDbSize` * Prevent DB corruption in case of mid-sync error & tests * Remove stopping on error for now * Updated compression-algo-change tests * Formatting * Small logging fix * ~Temporary log completion time * Configurable logging details * Fix for invalid ranges concatenation * Revert "~Temporary log completion time" This reverts commit f3f631f. * Additional check to prevent using block 0 as pivot * Flag to verify eth_getLogs responses from index * Build fix * Switch to nuget package for TurboPFor * Parallelize `LogIndexStorageFilterTests` * Formatting * Try fix `LogIndexServiceTests` * TurboPFor package update * Fix immediate backward sync completion * Tests for `LogFinder` index range calculation * Min number of blocks to use index * PR cleanup * Better handle write attempt during stopping * Temporary fix for missing Nuget dependency * PR cleanup * Revert attempt to use `OneTimeTearDown` * Optimize compressor memory usage * Fail log index on background job error * Dependency fix * Take in-progress into account when waiting for compression * Use array pool for compression * Adjust background exception handling * Adjust exception handling * Move registrations * Take sync direction from aggregation * Remove first-block-added notification * Remove testing methods * Remove unused code & PR cleanup * Formatting * PR cleanup * Namespace update * PR cleanup * Builder code cleanup * Config update * Remove RPC response verification * PR cleanup * Tests fix * Disable index by default * Tests fix * Fix compaction being disabled * Increase compaction logging level * Make compression optional * Remove completed TODO * Logging updates * Return RPC response verification flag with proper checks * Build fix * PR cleanup * Naming update to match existing signatures * Partial test run fix * Logging tweak * PR cleanup * PR cleanup * Move Merge to separate interface * PR feedback * Storage stability improvements & enable `OneTimeTearDown` in integration tests * Receipts events renaming * PR feedback * Formatting * Code cleanup * Code cleanup * Try make storage disposing thread-safe * Do not throw from merge operator * Disable `OneTimeTearDown` again * Fix missing DB config * Fix disposing in case of error in ctor * Use sorted view instead of iterator * Do not publicly expose iterator * Code cleanup * Revert changes to DB config reading * PR feedback * PR feedback * PR feedback * Build fix * Cherry-pick updates * Commit all columns via single batch, store metadata in separate table * Fix saving redundant data to range bound * DB config fix * Code formatting * Tests fix * [WIP] block number enumerator (nested) * [WIP] Fixing enumerator * [WIP] Fixing enumerator * Fixes, code cleanup & use array pool for enumerator value * Code cleanup * Visitor tests cleanup * Formatting * Simplify filter/expression updates * Code cleanup * Build fix * Tests fix * Code cleanup * Remove `AscListHelper` as not needed * Inline `UnionEnumerator`, v1 * Revert "Inline `UnionEnumerator`, v1" This reverts commit 5b72543. * More merge operator tests * Code cleanup * Update TurboPFor package * Simplify `LogFinder` * Build fix attempt * Make `LogIndexFilterVisitor` enumerators internal * Remove unused parameter * Code cleanup * Formatting * Spelling * Try make cspell happy * Try make cspell happy * Try make cspell happy * Try make cspell happy * PR fixes * Test build fix * PR fixes * Move log-index features to inherited `IndexedLogFinder` * Simplify `filter_all_logs_iteratively` test * Formatting * Simplify `StartLogIndex` step * Block numbers copying optimization (little-endian only) * Test fix * Detailed in-code docs * Doc tweaks * More doc tweaks * PR cleanup * Make `GetBlockReceipts` a bit more explicit * Build fix * Spelling * minor refactors * more minor refactors * minor refactor of Compressor - add alternative lookup to avoid allocation as long as possible in TryEnqueue * simplifications in LogIndexStorage * simplify semaphores * move to stackalloc in LogIndexStorage where possible * simplify merge operators to inline array * correctly dispose ArrayPoolList in Merge tests * more simple refactors * In LogIndexBuilder replace Dictionaries iwth Direction * Simplify UnionEnumerator * Removed linq from IndexedLogFinder * Code cleanup * Simplify DBs initialization * Code cleanup * PR feedback * Code cleanup * Remove `storage` parameter from `LogIndexEnumerator` * Add complex LogIndex integration tests (#10425) * Add complex LogIndex integration tests for reorgs, concurrency, and error propagation - Add Concurrent_ReorgAndBackwardSync_Get_Test: validates concurrent reorg and backward sync using different semaphores without deadlocks or data corruption - Add Set_ReorgOutOfOrder_Get_Test: documents that descending-order reorgs are unsupported (MergeOperator only applies first Reorg operand per key by write order) - Add Set_BackgroundJobFailure_SubsequentOps_Test: verifies MergeOperator errors propagate via OnBackgroundError and permanently fail all subsequent operations - Add BackgroundFailingLogIndexStorage test subclass that injects corrupt merge operands to trigger LogIndexStateException in MergeOperator - Remove resolved TODO comments Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * minor test refactors * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * Code cleanup * More code cleanup --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alex Bespalov <alexb5dh@gmail.com> * Simplify Compactor concurrency with Channel<T> (#10424) * Simplify Compactor concurrency with Channel<T> Replace AutoResetEvent/ManualResetEvent synchronization with a bounded Channel<TaskCompletionSource?>, reducing complexity and removing the WaitOneAsync extension dependency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix error propagation in Compactor catch block Use TrySetException(ex) for real exceptions so ForceAsync() callers observe the actual error. Keep TrySetCanceled() only for OperationCanceledException. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address PR review comments - Coalesce concurrent ForceAsync() calls into a single compaction via a shared TaskCompletionSource, preserving the old behavior. - Use TrySetException instead of TrySetCanceled for non-cancellation errors so callers observe the actual exception. - Add debug log for compaction loop cancellation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Make ForceAsync exclusive * whitespace * Add Compactor.Dispose * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Adjust ordering * Add comments and prepare `Compactor` for tests * Some `Compactor` tests * Spelling * Spelling dictionary update --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alex Bespalov <alexb5dh@gmail.com> * [WIP] use `PruningConfig.PruningBoundary` as default reorg depth * Use `PruningConfig.PruningBoundary` as default reorg depth * Take `PruningBoundary` before it's overwritten via `SnapServingMaxDepth` * Revert test change * Flaky test fix --------- Co-authored-by: Marc <Marchhill@users.noreply.github.com> Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com> Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
kamilchodola
added a commit
that referenced
this pull request
Feb 17, 2026
* Fixes 4 flaky test + refactors dbs (#10407) * Fix XDC flaky reward test with correct signature for transaction * Add Retry to LockFairnessTest * fix GetMemoryOwner for managed dbs + refactors * whitespace * Decrease Retain_Some_PersistedNodes threshold to resolve flakiness * fix review * tiny refactor * Parallelize Trie.Tests * Parallelize Nethermind.Blockchain.Test * Revert FilterManagerTests parall * Update Dockerfiles (#10409) Co-authored-by: rubo <rubo@users.noreply.github.com> * parallelize txpool test + fixes for parallel blockchain tests (#10418) * Fix XDC flaky reward test with correct signature for transaction * Add Retry to LockFairnessTest * fix GetMemoryOwner for managed dbs + refactors * whitespace * Decrease Retain_Some_PersistedNodes threshold to resolve flakiness * fix review * tiny refactor * Parallelize Trie.Tests * Parallelize Nethermind.Blockchain.Test * Revert FilterManagerTests parall * parallelize some TxPool tests * Try parallelize more tests * make TxPool tests more parallelizable * revert * fix * fix issues in Nethermind.Blockchain.Test * more fixes * more fixes * FilterManagerTests nonparallelizable * fix * fix flaky test * fix shutter test * Add retry to Fuzz_accounts_with_storage * retry flaky test * add [NonParallelizable] * XDC - Add custom state sync allocation strategy (#10399) add custom state sync allocation strategy for xdc * ProcessingStats Extensibility (#10420) * processing stats extensibility * improvement * build fix * fix * fix: correct Bytes.BytesComparer length comparison ordering (#10353) * fix: correct Bytes.BytesComparer length comparison ordering The BytesComparer had inverted length comparison logic: - null was considered greater than non-null (should be less) - shorter arrays with same prefix were considered greater than longer arrays (should be less) Fixed by inverting the return values for length-related comparisons: - null < non-null - [] < [x, ...] (empty < non-empty) - [prefix] < [prefix, more] (shorter with same prefix < longer) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Switched to sequence compare to * Address comment * fix: handle null y in BytesComparer when x is non-null Null arrays implicitly convert to empty ReadOnlySpan<byte> in SequenceCompareTo, losing the null vs empty distinction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> * Use CodeInfo type instead of ICodeInfo (#10423) * Use CodeInfo type instead of ICodeInfo Replace the ICodeInfo abstraction with a concrete CodeInfo type and adapt related APIs and implementations. CodeInfo was extended to carry precompile info, provide Code/CodeSpan, Version, IsPrecompile/IsEmpty semantics and background analysis. EofCodeInfo now derives from CodeInfo and provides EOF-specific data and versioning. PrecompileInfo was removed and precompiles are represented as CodeInfo (wrapping CachedPrecompile when needed). API changes: ICodeInfoRepository, IOverridableCodeInfoRepository and IPrecompileProvider signatures and caches now use CodeInfo; CodeInfoFactory and CodeLruCache updated accordingly. Call sites across the VM, instruction implementations, tracers, transaction processing, repositories and tests were updated to use CodeInfo directly and to perform EOF checks using 'is EofCodeInfo' where appropriate. JumpDestinationAnalyzer.MachineCode was made accessible for CodeInfo.Code. Overall this unifies EOF and precompile handling under a single CodeInfo model and simplifies caching and execution logic. * Feedback * Update CI workflows for Taiko/Surge integration tests (#10419) * Add CI workflow for Surge integration tests and update workflow for Taiko * Update CI workflow to reference the correct surge configuration file * Update CI workflows to increase timeout for integration tests and adjust repository references * Resolve comments * Parallelizable does not work on all XDC tests (#10431) remove broken Parallelizable Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * Add JitAsm tool to be able to analyse the Jit output (#10432) * Add JitAsm tool to be able to analyse the Jit output * Spelling * Address AGENTS.md LINQ guideline feedback on JitAsm PR (#10433) * Initial plan * Strengthen AGENTS.md LINQ guideline with explicit examples Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com> * Spell * feedback * Feedback * Improve initialization --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com> * Update README with performance highlights of Nethermind (#10359) * Update README with performance highlights of Nethermind Revised description to emphasize performance metrics. * Update README.md Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * Update README.md Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com> * Update README with image sources and badges * Add 'srcset' to cspell.json dictionary * Remove cspell directives from README Removed cspell directives from README.md. --------- Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> Co-authored-by: Ruben Buniatyan <rubo@users.noreply.github.com> * Auto-update fast sync settings (#10449) Co-authored-by: rubo <rubo@users.noreply.github.com> * Update OP Superchain chains (#10448) Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com> * Fix flaky tests: timing and race condition (#10455) - PeerManagerTests: Increase After timeout from 1000ms to 3000ms in Will_not_stop_trying_on_rlpx_connection_failure to prevent false failures on loaded CI runners - SyncServerTests: Use Interlocked.Increment in Broadcast_NewBlock_on_arrival_to_sqrt_of_peers to fix race condition where concurrent SyncPeerMock background threads could lose count increments - Rename _travisDelay fields to _delay, _delayLong, _delayLonger Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * Metrics and BlockStatistics extension (#10429) * Metrics and BlockStatistics extension * extensibility fixes * AGENTS shouldn't be repetitive when adding code (#10460) * more Agents changes (#10461) * more Agents changes avoid var, use testcases * Revise testing guidelines and LINQ usage recommendations Updated guidelines for adding tests and using LINQ. * CodeInfo Extension (#10467) refactoring & codeinfo changes * fix: add missing yield break after shutdown response in `JsonRpcProcessor` (#10462) * fix: add missing yield break after shutdown response * Add test * ensure pipereader is completed on shutdown early-exit * cover pipereader completion when shutdown is requested --------- Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * Fix fuzz issue (#10459) * Fix flaky network test (#10463) * Update packages (#10421) * Remove redundant allocation in Rlp.Encode<T> when input is already Rlp (#10468) * Update Rlp.cs * Add regression test for Rlp.Encode<T> with Rlp input --------- Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk> * Add SeqlockCache (#10415) * Add SeqlockCache and use for Accounts and Values * Add tests * Spelling * By in * Feedback * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix * Feedback * Change to 2 way cache * 2-way skew-associative * Add prefetch for way 1 and hash-bit alternating eviction Prefetch way 1's cache line while checking way 0 to hide L2/L3 latency in the skew layout where ways are ~1MB apart. Use a hash bit to alternate eviction when both ways are live instead of always evicting way 0 — measured identical hit rates with zero extra memory. * Add Volatile.Read/Write for _hashes in BlockhashProvider Ensures cross-thread visibility of the prefetched hashes array on ARM's weak memory model. On x86 (TSO) these are no-ops. * Convert NodeStorageCache and PreBlockCaches.RlpCache to SeqlockCache * Inline Address comparison in StorageCell.Equals for SeqlockCache hot path Seal Address class and inline 20-byte comparison (Vector128 + uint) directly in StorageCell.Equals to eliminate Address.Equals calls that the JIT refuses to inline in deep chains. Adds ReferenceEquals fast-path. * Outline cold paths in SeqlockCache and fix IsPersisted delegate allocation Extract GetOrAddMiss as NoInlining to keep GetOrAdd hit path lean (2122 -> 748 bytes). Change WriteEntry to NoInlining and collapse eviction tree to single call site. Reuse cached _tryLoadRlp delegate in PreCachedTrieStore.IsPersisted. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add ability to override block fields in debug_ calls (#10405) * Align tx sending error code (#10464) * Optimize transaction processing via encoded-tx trie root and fast block re-encode (#10435) * Add encoded-tx root calc and trie decode perf Allow computing the transactions trie root directly from RLP-encoded transactions and update callers to use it. ExecutionPayload.TryGetBlock now passes the encoded Transactions to TxTrie.CalculateRoot. Implement TxTrie.CalculateRoot(ReadOnlySpan<byte[]>) and InitializeFromEncodedTransactions to populate the trie from encoded payloads and compute RootHash; use a TrackingCappedArrayPool and UpdateRootHash. Add a unit test to assert encoded and decoded transaction paths produce the same root. Also refine trie node RLP encoding parallelization: UseParallel now checks the node's non-null child count (only parallelize when >= 4 children and multiple CPU cores) to avoid parallel overhead on small branches. * Fast block re-encode * Feedback * chore: Update .NET packages (#10482) Update .NET packages * Move tx block-format wrapping logic from BlockDecoder to TxDecoder (#10476) * Move tx block-format wrapping logic from BlockDecoder to TxDecoder Extract the legacy-vs-typed tx wrapping knowledge into static helpers on TxDecoder (GetBlockFormatLength, WriteBlockFormat) so BlockDecoder no longer directly checks TxType.Legacy for encoding decisions. * Feedback * Update Dockerfiles (#10485) Co-authored-by: rubo <rubo@users.noreply.github.com> * fix: clear reference-type elements in Truncate to prevent pool memory leak (#10472) * fix: clear reference-type elements in Truncate to prevent pool memory leak * add helper --------- Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * Remove Vault and NDM remnants (#5462) (#10478) - Remove Vault from ModuleType and spaceneth configs - Remove NDM from Protocol, ProtocolParser, and tests - Remove unused NDM timeout constants from Timeouts - Update AddCapabilityMessageSerializer comment Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * Faster FastHash (#10410) * Faster FastHash * Feedback * Split FastHash into dispatcher + dedicated AES/CRC methods Split monolithic FastHash into thin dispatcher + FastHashAesX64, FastHashAesArm, and FastHashCrc. Eliminates XMM saves from CRC path, removes ARM ternaries from x64 codegen, replaces MEMCPY tail with CRC scalar processing, and simplifies 4-lane fold to 3 XOR + 1 AES. AesX64 codegen: 294 bytes (was 564), CRC: no XMM registers at all. AES/CRC ratio: 1.75x at 256B, 2x at 1024B. * Optimize JSON-RPC request parsing and processing (#10453) * Add encoded-tx root calc and trie decode perf Allow computing the transactions trie root directly from RLP-encoded transactions and update callers to use it. ExecutionPayload.TryGetBlock now passes the encoded Transactions to TxTrie.CalculateRoot. Implement TxTrie.CalculateRoot(ReadOnlySpan<byte[]>) and InitializeFromEncodedTransactions to populate the trie from encoded payloads and compute RootHash; use a TrackingCappedArrayPool and UpdateRootHash. Add a unit test to assert encoded and decoded transaction paths produce the same root. Also refine trie node RLP encoding parallelization: UseParallel now checks the node's non-null child count (only parallelize when >= 4 children and multiple CPU cores) to avoid parallel overhead on small branches. * Fast block re-encode * Feedback * Cache TokenValidationParameters as readonly field Move TokenValidationParameters construction from per-request AuthenticateCore to the constructor, eliminating repeated allocation on cache-miss auth path. * Implement manual HS256 JWT fast validator with library fallback Add zero-allocation manual JWT validation for known HS256 header formats. Uses HMACSHA256.HashData (static) and CryptographicOperations.FixedTimeEquals for signature verification. Handles iat and exp claims. Falls back to Microsoft.IdentityModel for unrecognized header formats. * Refactor ByteArrayConverter write path Replace WriteRawValue with WriteStringValue(ReadOnlySpan<byte>) on the main value-write path, eliminating manual quote handling. Raise stackalloc threshold to 256 bytes. Use "0x0"u8 literal for zero-value fast path. Delegate-based overload retained for property name writes. * Add fixed-size fast path for 32-byte hash converters Hash256Converter and ValueHash256Converter now use a dedicated 66-byte stackalloc path (0x + 64 hex chars) that skips CountLeadingNibbleZeros, ArrayPool, and the generic ByteArrayConverter write path. * Direct numeric-to-hex for Long, ULong, UInt256 converters Use BitOperations.LeadingZeroCount and nibble-extraction loop to write hex directly without byte array intermediary. UInt256 uses LZCNT on limbs. All paths use WriteStringValue instead of WriteRawValue. Zero values use "0x0"u8 literal. ZeroPaddedHex uses fixed 66-byte stackalloc path. * Replace ForcedNumberConversion AsyncLocal with ThreadStatic cache GetFinalConversion() now reads from a ThreadStatic cache instead of AsyncLocal on every call. The ThreadAwareAsyncLocal wrapper updates both the AsyncLocal and ThreadStatic when Value is set, maintaining backward compatibility with tracing/debug converters. * Pool CancellationTokenSource with TryReset BuildTimeoutCancellationToken now rents from a ConcurrentBag pool. TryReset() returns CTS to pool on completion. Debugger-attached path skips pooling. Eliminates per-request CTS allocation on hot path. * Increase StreamPipeWriter minimumBufferSize from 4KB to 16KB Reduces Grow calls during serialization of typical Engine API responses (~5-20KB). Tradeoff: slightly higher per-connection memory baseline. * Bypass BufferResponses for Engine API + call StartAsync before body Authenticated single responses (Engine API) skip RecyclableStream double-copy. Call StartAsync() before serialization to flush headers early and avoid PinnedBlockMemoryPool.Rent allocations. * Replace JsonRpcContext.Current AsyncLocal with ThreadStatic Replace AsyncLocal<JsonRpcContext?> with [ThreadStatic] field and a ThreadStaticAccessor wrapper that preserves the .Value API shape. This eliminates the ExecutionContext capture cost on every JSON-RPC request. * Use synchronous JsonSerializer.Serialize for PipeWriter path Replace JsonSerializer.SerializeAsync(PipeWriter, ...) with synchronous Utf8JsonWriter + JsonSerializer.Serialize. This eliminates the async state machine allocation since PipeWriter implements IBufferWriter<byte> and data is flushed by the caller's CompleteAsync(). * Eliminate CTS for Engine API path Skip per-request CancellationTokenSource allocation for authenticated Engine API requests. They use CancellationToken.None since they are from trusted consensus clients and must complete for consensus. Connection drops are handled by the PipeReader. Non-engine paths still use the pooled CTS from T08. * Engine API terminal middleware before routing/CORS Add an early-pipeline middleware that intercepts authenticated engine port POST requests before routing, CORS, response compression, and WebSocket middleware. Engine API requests are handled directly, writing to the response body without buffering. Non-engine requests pass through to the standard middleware pipeline. * Skip CountingPipeReader when Content-Length is known In the engine API fast lane, use ctx.Request.BodyReader directly and Content-Length for metrics, eliminating CountingPipeReader overhead. In the standard handler, skip CountingPipeReader when Content-Length is available and fall back to it only for chunked requests. * Seal hot classes and capture concrete types Seal EthereumJsonSerializer, JsonRpcProcessor, and JsonRpcService (no subclasses exist). In Startup.cs, cast DI-resolved interfaces to their concrete types and use those in middleware closures, enabling JIT devirtualization of hot-path method calls. * Micro-optimizations in request processing - Replace LINQ Select in batch deserialization with explicit loop - Use TryGetDecimal instead of GetRawText for numeric JSON-RPC id parsing - Replace ElementAtOrDefault with bounds-checked indexed access in LogRequest - Intern known engine method names via ValueEquals to avoid string allocation - Remove unused System.Linq using from JsonRpcProcessor * Startup warmup for serializer metadata Add EthereumJsonSerializer.WarmupSerializer() that pre-serializes instances to populate System.Text.Json metadata caches. Call it at startup with JsonRpcSuccessResponse and JsonRpcErrorResponse to eliminate cold-start serialization overhead on first engine request. * Move log interpolation to NoInlining local/static functions Keep string interpolation out of hot paths by moving log bodies to [MethodImpl(MethodImplOptions.NoInlining)] functions so the JIT does not inline the interpolation into callers. * STJ source generation for engine, eth, debug, and trace API types Add source-generated JsonSerializerContext instances for all major RPC type families to eliminate reflection-based metadata lookup on hot paths. - EngineApiJsonContext: 19 engine API types (payloads, forkchoice, blobs) - FacadeJsonContext: BlockForRpc, TransactionForRpc, FilterLog, SyncingResult - EthRpcJsonContext: receipts, fee history, account proofs, plus debug/trace types (GethLikeTxTrace, ParityTxTraceFromStore, ChainLevelForRpc, etc.) - JsonRpcResponseJsonContext: success/error response envelope types Infrastructure changes: - AddTypeInfoResolver() on EthereumJsonSerializer with version-tracked propagation to all existing serializer instances - Cache JsonTypeInfo on ExpectedParameter for typed deserialization - WriteJsonRpcResponse() in Startup.cs for typed response serialization - Add [JsonIgnore] to Span properties on Hash256, Bloom, Signature to prevent SYSLIB1225 source generator errors * Optimize JwtAuthentication * Optimize ByteArrayConverter * Test fix * Spelling * Optimize LongConverter * Spell * Optimize Hash256Converter * Optimize UInt256Converter * Fix tests * Spelling * Feedback * Optimize * Optimize * Spell * Also Avx512 * Formatting * Spell * Drop the weird pattern matching * Use concurrentqueue instead * Stream blobs directly Before (3 copies of hex data): 1. ByteArrayConverter → hex-encode into rented ArrayPool<byte> buffer (262KB) 2. Utf8JsonWriter.WriteRawValue → memcpy into Utf8JsonWriter's internal buffer (262KB) 3. Utf8JsonWriter flush → memcpy into PipeWriter/Kestrel send buffer (262KB) After (1 copy): 1. OutputBytesToByteHex → hex-encode directly into writer.GetSpan() (Kestrel's send buffer) So copies 2 and 3 are eliminated. Copy 1 (the binary→hex transform) remains * formatting * Spell * Tidy up * tidy up * Feeedback * Feedback * Reduce contention in trie root hashing Replace lock+List in TrackingCappedArrayPool with ConcurrentQueue for parallel paths and bare List for sequential paths. Skip parallel root hashing for small tries (<=64 items) to avoid scheduling overhead. Fix race condition where ReceiptTrie and TxTrie called UpdateRootHash without propagating canBeParallel, causing concurrent List.Add on a non-thread-safe collection. * Feedback * Run newPayload inline (#10479) * Skip response compression for Engine API requests * Optimize engine_getBlobsV2 with fused batch lookup and zero-copy proofs Replace N+1 lock acquisitions with a single fused TryGetBlobsAndProofsV1 that atomically counts and extracts blobs under one lock. Use ReadOnlyMemory<byte[]> to window into wrapper.Proofs arrays instead of copying via Slice+spread, eliminating ~0.4MB of proof allocations per request. Replace ArrayPoolList with parallel arrays, removing the pool rent/return overhead. * Split blob lookups into two phases to reduce lock hold time (#10173) Add ITxStorage.TryGetMany for batched RocksDB MultiGet and override TryGetBlobsAndProofsV1 in PersistentBlobTxDistinctSortedPool with a two-phase approach: fast in-memory + cache lookups under lock, then a single batched DB read outside the lock. This avoids holding the pool's McsLock during potentially slow I/O for up to 128 blobs per request. Co-Authored-By: Lukasz Rozmej <lukasz@nethermind.io> * Remove dead GetBlobCounts method (#10159) No longer called after getBlobsV2 switched to batched TryGetBlobsAndProofsV1. Co-Authored-By: Marcin Sobczak <77129288+marcindsobczak@users.noreply.github.com> * Feedback * Spelling * Add some const to JwtAuthentication to understand the code better * Consolidate duplicated JSON-RPC request processing pipelines in Startup Extract shared ProcessJsonRpcRequestCoreAsync and PushErrorResponseAsync instance methods from the engine API fast lane and standard handler, eliminating ~100 lines of duplicated processing logic. Unify status code constants, auth error handling, and add streamable response support to the standard path. * Make BlobsV2DirectResponse enumerator explicit; pool byte[64] keys in BlobTxStorage - Convert GetEnumerator to explicit interface implementation since it is only used by tests via IEnumerable<T> cast - Add ConcurrentQueue-based pool for exact-size byte[64] DB lookup keys in TryGetMany to avoid per-call allocations --------- Co-authored-by: Lukasz Rozmej <lukasz@nethermind.io> Co-authored-by: Marcin Sobczak <77129288+marcindsobczak@users.noreply.github.com> Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com> * Fix BackgroundTaskScheduler queue overflow during block processing (#10488) * Initial plan * Fix BackgroundTaskScheduler queue overflow by removing signal wait from scheduler threads During block processing, ManualResetEventSlim blocked all scheduler threads in BelowNormalPriorityTaskScheduler, preventing StartChannel from draining expired tasks. New tasks (P2P transaction messages) continued arriving, filling the queue beyond capacity (1024) and triggering task drops. Fix: Remove the ManualResetEventSlim signal entirely. The existing cancellation token mechanism in StartChannel already handles block processing correctly — expired tasks get drained with cancelled tokens (fast return), while non-expired tasks are re-queued with a 1ms throttle until their deadline passes or block processing ends. Co-authored-by: kamilchodola <43241881+kamilchodola@users.noreply.github.com> * Replace blocking ManualResetEventSlim with async TaskCompletionSource signal; add high-capacity stress test The original ManualResetEventSlim blocked scheduler threads in ProcessBackgroundTasks(), preventing StartChannel from draining expired tasks during block processing. Replace with TaskCompletionSource-based async signal awaited in StartChannel's Throttle path. Add comprehensive stress test that fills a 1024-capacity queue across multiple block processing cycles, verifying: - Tasks are dropped when queue exceeds capacity - Expired tasks drain with cancelled tokens during block processing - Queue recovers and accepts new tasks after draining - Mixed short/long-lived tasks behave correctly across cycles - Queue remains fully operational after repeated block processing Co-authored-by: kamilchodola <43241881+kamilchodola@users.noreply.github.com> * Double BackgroundTaskMaxNumber default from 1024 to 2048 Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com> * Add BenchmarkDotNet benchmark for BackgroundTaskScheduler throughput Adds BackgroundTaskSchedulerBenchmarks with two scenarios: - ScheduleAndDrainDuringBlockProcessing: simulates real-world scenario with periodic block-processing pauses (5 cycles, 50ms each) - ScheduleAndDrainWithoutBlockProcessing: baseline without interruptions Parameters: capacity (1024/2048), concurrency (2), block processing duration (50ms), cycles (5). Also fixes flaky over-capacity assertion in stress test that raced with the async task draining. Co-authored-by: kamilchodola <43241881+kamilchodola@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: kamilchodola <43241881+kamilchodola@users.noreply.github.com> Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com> * Update Dockerfiles (#10493) Co-authored-by: rubo <rubo@users.noreply.github.com> * fix: unsubscribe from BlocksProcessing in Dispose (#10499) Signed-off-by: Olexandr88 <radole1203@gmail.com> * Fix Kute Windows performance: disable proxy detection, fix file check (#10491) * Fix Kute Windows performance: disable proxy detection, fix file check - Disable WPAD proxy auto-detection in HttpClient by using SocketsHttpHandler with UseProxy=false. On Windows, the default HttpClient triggers a WPAD lookup (~2s timeout) on every fresh process, inflating measured NP times by ~2000ms. - Fix FileMessageProvider to use pathInfo.Exists instead of HasFlag(FileAttributes.Normal). On Windows, files have Archive attribute, not Normal, causing all file reads to fail. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Update comment to remove 'WPAD' reference --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore: Remove unused code across multiple modules (#10440) * claude experiments * reverted changes * Remove unused code * fix: restore _logger field in TdxsClient to prevent CS9113 build error The logManager parameter is DI-injected and cannot be removed, so the field must remain to consume it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove unused EVM exception classes BadInstructionException, InvalidCodeException, and TransactionCollisionException are never instantiated anywhere in the codebase. The EVM uses EvmExceptionType enums and CallResult directly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: remove unused code (Phase 1) - Delete 5 empty (0-byte) files in TxPool and Consensus - Remove 7 unused private methods: - TrieStore.IsStillNeeded() - PatriciaTree.ThrowInvalidDataException/ThrowMissingChildException/ThrowMissingPrefixException - EthereumRunner.Stop() - EthereumL1Bridge.LogReorg() - Ssz.DecodeDynamicOffset() (moved VarOffsetSize to BasicTypes.cs) - Remove 7 unused private/static fields: - TrieNode._nodeDecoder - PatriciaTree._singleByteKeys - PersistentStorageProvider._loadFromTreeStorageFunc - SmallTrieVisitContext._branchChildIndex - TdxsClient._logger - InitializeBlockchain._logManager - SyncProgressResolver._logger - Remove 6 dead NDM/LES timeout constants from Timeouts.cs - Remove 11 unused/duplicate ErrorCodes constants - Remove 3 unused L1 epoch constants from EthereumL1Bridge - Clean up unused using directives (System.IO, System) * fix: remove unused logManager parameter from TdxsClient Removes unused ILogManager parameter that was causing CI build failure. The parameter was not used anywhere in the class after previous cleanup. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * refactor: remove unused types (Phase 2) Delete 15 unreferenced type files identified through codebase-wide static analysis: Synchronization (5): - AllocationChangeEventArgs - StaticStrategy, NullStrategy, ClientTypeStrategy - StrategySelectionType enum Core (5): - CompositePublisher, SortedRealList, ConcurrentWriteBatcher - CappedArrayMemoryManager, ISpanCache Serialization/Network/RPC (5): - LogPublisher, CountingTextWriter, CountingTextReader - IDiscoveryMsgSerializersProvider, IJsonRpcResult Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove unused logManager parameter from SyncProgressResolver constructor (#10452) * Initial plan * refactor: remove unused logManager parameter from SyncProgressResolver 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> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: smartprogrammer93 <smartprogrammer93@users.noreply.github.com> Co-authored-by: smartprogrammer93 <smartprogrammer@windowslive.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: MarekM25 <9356351+MarekM25@users.noreply.github.com> * fix(network): use TrySetResult in MessageQueue.Handle to prevent race condition (#10486) * fix(network): use TrySetResult in MessageQueue.Handle to prevent race condition * add tests * Fixes --------- Co-authored-by: Ben Adams <thundercat@illyriad.co.uk> * fix: fix operator precedence bug in VoteDecoder.GetContentLength (#10383) Update VoteDecoder.cs Co-authored-by: ak88 <anders@nethermind.io> * ci: add automatic PR labeling workflow (#10512) * ci: add PR auto-labeler workflow Automatically labels PRs based on: - Template checkbox selections (bugfix, feature, breaking, etc.) - Conventional commit title prefixes (fix:, feat:, perf:, etc.) - Changed file paths (evm, network, optimism, taiko, xdc, etc.) - EIP mentions in title - Dockerfile changes, chain configs, test-only PRs, removal-only PRs * docs: require PR template usage in AGENTS.md Clarify that PRs must follow the template format and tick the type-of-change checkboxes, which drive automatic labeling. * ci: use pull_request_target for PR labeler to support fork PRs * ci: add DbModule.cs path rule for database label * ci: add trie and state+storage path rules for PR labeler * ci: match slash separator in title prefix (e.g. Perf/xdc) * ci: add sync, snap sync path rules for PR labeler * Remove redundant null check and duplicate array in Program.cs (#10506) Update Program.cs Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * Use copy-on-write snapshots in MetricsController (#10501) * fix(monitoring): use copy-on-write snapshots in MetricsController to prevent concurrent modification Replace List<Action> and Dictionary iteration with volatile array snapshots to prevent InvalidOperationException when RegisterMetrics or AddMetricsUpdateAction races with the timer-driven UpdateAllMetrics. * fix(monitoring): use copy-on-write snapshots in MetricsController to prevent concurrent modification Replace List<Action> and Dictionary iteration with volatile array snapshots to prevent InvalidOperationException when RegisterMetrics or AddMetricsUpdateAction races with the timer-driven UpdateAllMetrics. * chore: remove redundant AddDatabase for BlobTransactions (#10510) Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> * perf: reduce block processing overhead via journal bypass and commit elimination - Eliminate pre-execution Commit in TransactionProcessor for non-tracing, non-restore paths - Add read-cache separation for StateProvider (bypass journal for pure reads) - Add read-cache separation for PersistentStorageProvider (bypass journal for SLOAD) - Reduce block-level commits from 4 to 3 (beacon root/blockhash accumulate with tx changes) - Preserve full tracing correctness with fallback paths for Before values and storage reads Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * SyncInfo decoder for XDC p2p (#10509) syncinfo decoder * Revert "Merge branch 'master' of https://github.com/NethermindEth/nethermind into perf/block-processing-pipeline-v1" This reverts commit 1d7dede, reversing changes made to 46ae4aa. * ci: add JsonRpc path pattern to PR labeler (#10526) ci: add JsonRpc path pattern to PR labeler for automatic rpc label Adds src/Nethermind/Nethermind.JsonRpc to the pathToLabel array so PRs modifying JsonRpc files get automatically labeled with 'rpc'. Co-authored-by: smartprogrammer93 <smartprogrammer93@users.noreply.github.com> * Log index (#8464) * Adjust `OnReceiptsInserted` logging * Naming * Normalize block number formatting # Conflicts: # src/Nethermind/Nethermind.Facade/Find/LogIndexService.cs * Build fix * Code cleanup * Use ancient receipts barrier for backwards sync target & include target values in RPC * Adjust logging and waiting times * Fresh start fix * Adjust min target block calculation * Fix repeated completion logging * Temporary more logging again * Try recover receipts * Optimize processing of no-tx blocks * Fir out-of-range error * Fix receipts deletion (#9231) * separate receipt deletion from receipt tx deletion * regression test * tidy test --------- Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com> * `logIndex_blockNumbers` RPC * Logging tweaks * [WIP] Support for topic index * Remove key size dependencies * Try compress key in both DBs * Separate merge operator per column family * Fixes * Remove possible collisions as causing invalid merge order * More fixes * Constant db key postfix size & fixes * Screw this, use separate DB per topic index * Get rid of generic iterator interface * Fixes for seeking, but getting block numbers is now much slower * Code cleanup * Do not remove leading zeroes & revert seeking * Fix filter matching * Tests fixes * Move filter tests to separate class & code formatting * Support for concurrent forward/backward sync & tests * Fixes for concurrent sync & more aggresive test * Code cleanup * Fix log index syncing blocking other tasks * Refactor syncing for better concurrency * Increase receipts cache size to 1024 * Log receipts loading time * Adjust parallelism values * Track backward/forward syncing stats separately * Revert "Increase receipts cache size to 1024" This reverts commit 18a13d5. * Set DB version * Option to delay compressor start * Include index version and reset data if version is invalid * Log index compaction RPC * todo * Add missing service registration * Remove "waiting for block" trace logging * Do start indexing before DB initialization * Code cleanup * Fix double DB initialization * Fix aggressive memory usage * Stop on error * todos * Formatting * Configuration for log-index & support for disabling/resetting index via config * Updates to logIndex_status, include status, last-update-data, and last-error * Replace last-update with `DateTimeOffset` * Typo fix * Syncing service small refactoring, fixes, and basic tests * Fix repeated completion logging * Adjust default `SyncFetchBatchParallelism` * TurboPFor updates to match package version * Build fix * Configurable compression algorithm, handle if unsupported * Support for `IWriteBatch` clearing * Remove `RequireCommitWriteBatch` * Throw if stopped * Simplify `GetDbSize` * Prevent DB corruption in case of mid-sync error & tests * Remove stopping on error for now * Updated compression-algo-change tests * Formatting * Small logging fix * ~Temporary log completion time * Configurable logging details * Fix for invalid ranges concatenation * Revert "~Temporary log completion time" This reverts commit f3f631f. * Additional check to prevent using block 0 as pivot * Flag to verify eth_getLogs responses from index * Build fix * Switch to nuget package for TurboPFor * Parallelize `LogIndexStorageFilterTests` * Formatting * Try fix `LogIndexServiceTests` * TurboPFor package update * Fix immediate backward sync completion * Tests for `LogFinder` index range calculation * Min number of blocks to use index * PR cleanup * Better handle write attempt during stopping * Temporary fix for missing Nuget dependency * PR cleanup * Revert attempt to use `OneTimeTearDown` * Optimize compressor memory usage * Fail log index on background job error * Dependency fix * Take in-progress into account when waiting for compression * Use array pool for compression * Adjust background exception handling * Adjust exception handling * Move registrations * Take sync direction from aggregation * Remove first-block-added notification * Remove testing methods * Remove unused code & PR cleanup * Formatting * PR cleanup * Namespace update * PR cleanup * Builder code cleanup * Config update * Remove RPC response verification * PR cleanup * Tests fix * Disable index by default * Tests fix * Fix compaction being disabled * Increase compaction logging level * Make compression optional * Remove completed TODO * Logging updates * Return RPC response verification flag with proper checks * Build fix * PR cleanup * Naming update to match existing signatures * Partial test run fix * Logging tweak * PR cleanup * PR cleanup * Move Merge to separate interface * PR feedback * Storage stability improvements & enable `OneTimeTearDown` in integration tests * Receipts events renaming * PR feedback * Formatting * Code cleanup * Code cleanup * Try make storage disposing thread-safe * Do not throw from merge operator * Disable `OneTimeTearDown` again * Fix missing DB config * Fix disposing in case of error in ctor * Use sorted view instead of iterator * Do not publicly expose iterator * Code cleanup * Revert changes to DB config reading * PR feedback * PR feedback * PR feedback * Build fix * Cherry-pick updates * Commit all columns via single batch, store metadata in separate table * Fix saving redundant data to range bound * DB config fix * Code formatting * Tests fix * [WIP] block number enumerator (nested) * [WIP] Fixing enumerator * [WIP] Fixing enumerator * Fixes, code cleanup & use array pool for enumerator value * Code cleanup * Visitor tests cleanup * Formatting * Simplify filter/expression updates * Code cleanup * Build fix * Tests fix * Code cleanup * Remove `AscListHelper` as not needed * Inline `UnionEnumerator`, v1 * Revert "Inline `UnionEnumerator`, v1" This reverts commit 5b72543. * More merge operator tests * Code cleanup * Update TurboPFor package * Simplify `LogFinder` * Build fix attempt * Make `LogIndexFilterVisitor` enumerators internal * Remove unused parameter * Code cleanup * Formatting * Spelling * Try make cspell happy * Try make cspell happy * Try make cspell happy * Try make cspell happy * PR fixes * Test build fix * PR fixes * Move log-index features to inherited `IndexedLogFinder` * Simplify `filter_all_logs_iteratively` test * Formatting * Simplify `StartLogIndex` step * Block numbers copying optimization (little-endian only) * Test fix * Detailed in-code docs * Doc tweaks * More doc tweaks * PR cleanup * Make `GetBlockReceipts` a bit more explicit * Build fix * Spelling * minor refactors * more minor refactors * minor refactor of Compressor - add alternative lookup to avoid allocation as long as possible in TryEnqueue * simplifications in LogIndexStorage * simplify semaphores * move to stackalloc in LogIndexStorage where possible * simplify merge operators to inline array * correctly dispose ArrayPoolList in Merge tests * more simple refactors * In LogIndexBuilder replace Dictionaries iwth Direction * Simplify UnionEnumerator * Removed linq from IndexedLogFinder * Code cleanup * Simplify DBs initialization * Code cleanup * PR feedback * Code cleanup * Remove `storage` parameter from `LogIndexEnumerator` * Add complex LogIndex integration tests (#10425) * Add complex LogIndex integration tests for reorgs, concurrency, and error propagation - Add Concurrent_ReorgAndBackwardSync_Get_Test: validates concurrent reorg and backward sync using different semaphores without deadlocks or data corruption - Add Set_ReorgOutOfOrder_Get_Test: documents that descending-order reorgs are unsupported (MergeOperator only applies first Reorg operand per key by write order) - Add Set_BackgroundJobFailure_SubsequentOps_Test: verifies MergeOperator errors propagate via OnBackgroundError and permanently fail all subsequent operations - Add BackgroundFailingLogIndexStorage test subclass that injects corrupt merge operands to trigger LogIndexStateException in MergeOperator - Remove resolved TODO comments Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * minor test refactors * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix * Code cleanup * More code cleanup --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alex Bespalov <alexb5dh@gmail.com> * Simplify Compactor concurrency with Channel<T> (#10424) * Simplify Compactor concurrency with Channel<T> Replace AutoResetEvent/ManualResetEvent synchronization with a bounded Channel<TaskCompletionSource?>, reducing complexity and removing the WaitOneAsync extension dependency. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix error propagation in Compactor catch block Use TrySetException(ex) for real exceptions so ForceAsync() callers observe the actual error. Keep TrySetCanceled() only for OperationCanceledException. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address PR review comments - Coalesce concurrent ForceAsync() calls into a single compaction via a shared TaskCompletionSource, preserving the old behavior. - Use TrySetException instead of TrySetCanceled for non-cancellation errors so callers observe the actual exception. - Add debug log for compaction loop cancellation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Make ForceAsync exclusive * whitespace * Add Compactor.Dispose * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Adjust ordering * Add comments and prepare `Compactor` for tests * Some `Compactor` tests * Spelling * Spelling dictionary update --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alex Bespalov <alexb5dh@gmail.com> * [WIP] use `PruningConfig.PruningBoundary` as default reorg depth * Use `PruningConfig.PruningBoundary` as default reorg depth * Take `PruningBoundary` before it's overwritten via `SnapServingMaxDepth` * Revert test change * Flaky test fix --------- Co-authored-by: Marc <Marchhill@users.noreply.github.com> Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com> Co-authored-by: lukasz.rozmej <lukasz.rozmej@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Auto-update fast sync settings (#10535) Co-authored-by: rubo <rubo@users.noreply.github.com> * Update OP Superchain chains (#10536) Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com> * fix: fix malformed RLP encoding in L1OriginDecoder (#10525) * Update L1OriginDecoder.cs * Update L1OriginStoreTests.cs * Update SurgeGasPriceOracle for Surge Shasta (#10290) * SurgeGasPriceOracle updates for Shasta * minor fixes * more minor fixes * Resolve comments --------- Co-authored-by: Nurbakyt Madibek <jmadibekov@gmail.com> * Estimate Gas fix (#10559) * Estimate Gas fix * format * format * test fix * Update src/Nethermind/Nethermind.Blockchain.Test/TransactionProcessorTests.cs * Update src/Nethermind/Nethermind.Evm.Test/Tracing/GasEstimationTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix shared method --------- Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * test(evm): add extcode cache regressions for in-block code changes --------- Signed-off-by: Olexandr88 <radole1203@gmail.com> Co-authored-by: Lukasz Rozmej <lukasz.rozmej@gmail.com> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: rubo <rubo@users.noreply.github.com> Co-authored-by: Carmen Irene Cabrera Rodríguez <49727740+cicr99@users.noreply.github.com> Co-authored-by: Stavros Vlachakis <89769224+svlachakis@users.noreply.github.com> Co-authored-by: Amirul Ashraf <asdacap@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Ben {chmark} Adams <thundercat@illyriad.co.uk> Co-authored-by: Nurbakyt Madibek <jmadibekov@gmail.com> Co-authored-by: ak88 <anders@nethermind.io> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com> Co-authored-by: Marek Moraczyński <marekm2504@gmail.com> Co-authored-by: emlautarom1 <emlautarom1@users.noreply.github.com> Co-authored-by: VolodymyrBg <aqdrgg19@gmail.com> Co-authored-by: splinter <futons_blare_7s@icloud.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Alexey Osipov <me@flcl.me> Co-authored-by: phrwlk <phrwlk7@gmail.com> Co-authored-by: Nova ✰⋆⁺ <novaheidt@gmail.com> Co-authored-by: Lukasz Rozmej <lukasz@nethermind.io> Co-authored-by: Marcin Sobczak <77129288+marcindsobczak@users.noreply.github.com> Co-authored-by: Olexandr88 <radole1203@gmail.com> Co-authored-by: smartprogrammer93 <smartprogrammer93@users.noreply.github.com> Co-authored-by: smartprogrammer93 <smartprogrammer@windowslive.com> Co-authored-by: MarekM25 <9356351+MarekM25@users.noreply.github.com> Co-authored-by: andrewshab <152420261+andrewshab3@users.noreply.github.com> Co-authored-by: 0xFloki <signal-rooms-7n@icloud.com> Co-authored-by: Forostovec <ilonaforostovec22@gmail.com> Co-authored-by: Ahmad Bitar <33181301+smartprogrammer93@users.noreply.github.com> Co-authored-by: Alex <alexb5dh@gmail.com> Co-authored-by: Marc <Marchhill@users.noreply.github.com> Co-authored-by: Marc Harvey-Hill <10379486+Marchhill@users.noreply.github.com> Co-authored-by: bobtajson <152420524+bobtajson@users.noreply.github.com> Co-authored-by: Diptanshu Kakwani <dipkakwani@gmail.com>
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
Types of changes
What types of changes does your code introduce?
Testing
Requires testing
If yes, did you write tests?
Documentation
Requires documentation update
Requires explanation in Release Notes