-
Notifications
You must be signed in to change notification settings - Fork 586
GetStorageRange fix for no storage slots found #8538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
84da9bd to
d2c8fc4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes the issue where GetStorageRangeRequest returns no storage nodes by instead returning a proof of absence for the key along the lower limit path.
- Introduces a new test (TestGetStorageRange_NoSlotsForAccount) in SnapServerTest.cs to validate the absence proof scenario.
- Updates SnapServer.cs to return the proof of absence when no storage slots are found.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/Nethermind/Nethermind.Synchronization.Test/SnapSync/SnapServerTest.cs | Adds a new test validating that no storage slots results in a valid proof response. |
| src/Nethermind/Nethermind.State/SnapServer/SnapServer.cs | Modifies control flow to return the response and proofs when no storage slots are found. |
| if (pathWithStorageCollector.Slots.Count == 0) | ||
| { | ||
| break; | ||
| //return proof of absence |
Copilot
AI
May 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider adding a clarifying comment that returning immediately is an intentional design to provide a proof of absence when no storage slots are found (referencing Bug #8537).
| //return proof of absence | |
| // Returning immediately is an intentional design choice to provide a proof of absence | |
| // when no storage slots are found. This behavior is linked to Bug #8537. |
|
|
||
| ValueHash256 lastStorageHash = TestItem.Tree.SlotsWithPaths[^1].Path; | ||
| var asInt = lastStorageHash.ToUInt256(); | ||
| ValueHash256 beyondLast = new ValueHash256((++asInt).ToBigEndian()); |
Copilot
AI
May 19, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Review the logic of incrementing 'asInt' inline to create 'beyondLast'; consider separating the increment into its own statement for improved clarity.
| ValueHash256 beyondLast = new ValueHash256((++asInt).ToBigEndian()); | |
| asInt++; | |
| ValueHash256 beyondLast = new ValueHash256(asInt.ToBigEndian()); |
|
Build issue
|
* 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 <[email protected]>
* 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Fix/parallel block downloader (#8587) * Reapply "Perf/parallel block downloader" (#8574) This reverts commit b9a2a93. * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Warm up evm instructions (#8699) * Warm up evm instructions * mods * Use SpecProvider * Revert "Use SpecProvider" This reverts commit 189ef1d. * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c14. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 a0aa23b. * Allow nullable TD in `IBetterPeerStrategy` * [WIP] Fix peers ordering attempt #2 * Revert "[WIP] Fix peers ordering attempt #2" This reverts commit c2b61cf. * 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 4821110. * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 bb52702. * 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 <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Pavlo Rytikov <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]>
* 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Fix/parallel block downloader (#8587) * Reapply "Perf/parallel block downloader" (#8574) This reverts commit b9a2a93. * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Warm up evm instructions (#8699) * Warm up evm instructions * mods * Use SpecProvider * Revert "Use SpecProvider" This reverts commit 189ef1d. * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c14. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 a0aa23b. * Allow nullable TD in `IBetterPeerStrategy` * [WIP] Fix peers ordering attempt #2 * Revert "[WIP] Fix peers ordering attempt #2" This reverts commit c2b61cf. * 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 4821110. * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 bb52702. * 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) * Auto-update fast sync settings (#8745) Co-authored-by: rubo <[email protected]> * Add boundary tests for EIP-7918 (#8748) add boundary tests for 7918 Co-authored-by: Marc Harvey-Hill <[email protected]> * Update EIP-7883: Assume minimal base/mod length of 32 (#8749) * changes to modexp gas-pricing * whitespace * tidy --------- Co-authored-by: Marc Harvey-Hill <[email protected]> * Fix/CL health checks (#8755) CL is ok if we get NP or FCU * Activate devnet-1 in Osaka (#8733) * Cleanup * Fix typo * SpanSource for TrieNode rlp (#8719) * initial * benchmarks * minor changes to sequence equal * creation * span source introduced * trie node uses SpanSource * always arrays * only SpanValue * amendents * amendments * tests amended * benchmarks, fixing * fixing sync * fixups to match byte[] and capped * TrieNode.ToString * TxTrieTests use the pool in the same way execution does * Receipt Trie tests * formatting * cleanup * Update src/Nethermind/Nethermind.Serialization.Rlp/RlpDecoderExtensions.cs Co-authored-by: Copilot <[email protected]> * Update src/Nethermind/Nethermind.Core/Buffers/ISpanSourcePool.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Tweaks * Too far * removal of the unaccess paths * SpanSource uses is instead of UnsafeAs --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Add max blobs per tx limit taken from blob schedule (#8754) * Add maxPerTx setting * Rename * Add tests * Clean up * Fix spaces * Fix punctuation * EIP-7939 CLZ (#8759) * EIP-7939 CLZ * whitespace * fix release spec * fix * Update src/Nethermind/Nethermind.Core/Specs/IReleaseSpec.cs Co-authored-by: Marc <[email protected]> * generate tests for every bit * eip 7939 count leading zeros optimization (#8765) * Optimize with vector * Update src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.Math1Param.cs * increase delay in flaky test Test_task_that_is_scheduled_during_block_processing_will_continue_after * add in --------- Co-authored-by: Marc <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> * Dispose EvmState on warmup (#8771) * Include debug symbols in distribution packages (#8773) * Include Debug Symbols * Embed debug symbols into distribution package --------- Co-authored-by: Ruben Buniatyan <[email protected]> * optimize some precompiles (#8770) * optimize some precompiles * fix * fix * fix recovery id * fix clearing first 12 bytes of ecrecover result * optimize stack * move EthereumEcdsa to static * Remove txPool contention from block validation (#8779) * Remove txPool contention from block validation * Benchmarks * Junky test * Recover signer direct from keccak without intermediary array (#8781) * Recover signer direct from keccak without intermediary array * Skip hash via byte array * Fix merge issues --------- Co-authored-by: Amirul Ashraf <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Szymon Kulec <[email protected]>
* 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c143c8192f307d47a39db5ea23a9c703dde4. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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) * Auto-update fast sync settings (#8745) Co-authored-by: rubo <[email protected]> * Add boundary tests for EIP-7918 (#8748) add boundary tests for 7918 Co-authored-by: Marc Harvey-Hill <[email protected]> * Update EIP-7883: Assume minimal base/mod length of 32 (#8749) * changes to modexp gas-pricing * whitespace * tidy --------- Co-authored-by: Marc Harvey-Hill <[email protected]> * Fix/CL health checks (#8755) CL is ok if we get NP or FCU * Activate devnet-1 in Osaka (#8733) * Cleanup * Fix typo * SpanSource for TrieNode rlp (#8719) * initial * benchmarks * minor changes to sequence equal * creation * span source introduced * trie node uses SpanSource * always arrays * only SpanValue * amendents * amendments * tests amended * benchmarks, fixing * fixing sync * fixups to match byte[] and capped * TrieNode.ToString * TxTrieTests use the pool in the same way execution does * Receipt Trie tests * formatting * cleanup * Update src/Nethermind/Nethermind.Serialization.Rlp/RlpDecoderExtensions.cs Co-authored-by: Copilot <[email protected]> * Update src/Nethermind/Nethermind.Core/Buffers/ISpanSourcePool.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Tweaks * Too far * removal of the unaccess paths * SpanSource uses is instead of UnsafeAs --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Add max blobs per tx limit taken from blob schedule (#8754) * Add maxPerTx setting * Rename * Add tests * Clean up * Fix spaces * Fix punctuation * EIP-7939 CLZ (#8759) * EIP-7939 CLZ * whitespace * fix release spec * fix * Update src/Nethermind/Nethermind.Core/Specs/IReleaseSpec.cs Co-authored-by: Marc <[email protected]> * generate tests for every bit * eip 7939 count leading zeros optimization (#8765) * Optimize with vector * Update src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.Math1Param.cs * increase delay in flaky test Test_task_that_is_scheduled_during_block_processing_will_continue_after * add in --------- Co-authored-by: Marc <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> * Dispose EvmState on warmup (#8771) * Include debug symbols in distribution packages (#8773) * Include Debug Symbols * Embed debug symbols into distribution package --------- Co-authored-by: Ruben Buniatyan <[email protected]> * optimize some precompiles (#8770) * optimize some precompiles * fix * fix * fix recovery id * fix clearing first 12 bytes of ecrecover result * optimize stack * move EthereumEcdsa to static * Remove txPool contention from block validation (#8779) * Remove txPool contention from block validation * Benchmarks * Junky test * Recover signer direct from keccak without intermediary array (#8781) * Recover signer direct from keccak without intermediary array * Skip hash via byte array * Fix merge issues * Refactor/taiko extended eth module (#8769) * Split taiko extended rpc to another class * Remove unneccessary change * Add unit test * Whitespace * Cleanup/make transaction executor always take adapter (#8750) * Block validation and production * Block production transactions execcutor * Remove some class * Fix test * Fix build * Auto-update fast sync settings (#8788) Co-authored-by: rubo <[email protected]> * Fix/era import (#8774) * Fix error import era * Fix not thread safe * Whitespace * Fix build * Increase setup timeout (#8790) * Change Ethereum mainet gaslimit default to 45M (#8793) * Base prewarming on logical cores (#8796) * Base prewarming on logical cores * Max at 16 * Add tx payload form bytes only (#8777) * PatriciaTree remove unused field (#8800) * PatriciaTree remove unused field * ReceiptTrie to non-generic * build * build * Perf/allow archive node to use prune cache (#8655) * Allow archive node to use prune cache * Fix did not save everything * Persistence interval only apply to archive node * Fixed some test * More attempt to fix test * Ability for strategy to check more information * Min and Max unpersisted block * Just a little bit more * Attempt to fix full pruner test * Fix test * Whitespace * Add comment * Rename and move to test * Remove unnecessary change * Remove unnecessary change * Remove unnecessary change * Revert unnecessary change * Fix full pruning * Trying to make test use world state * Missed a file * Add test for strategy * Reduce change * Fix proof rpc * Fix test * Update src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build * Fix test * Address comment * Fix test --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix validation when protocols are added concurrently (#8798) * Ignore `Celo` in Superchain Registry (#8804) Ignore `Celo` * Skip recovery queue when no blocks queued (#8801) * Skip recovery queue when no items queued * Don't pass through synchnronously * tweak * Atomic block * Fix timeout * Fix adaptive code resolver (#8797) * fix msg resolver * Fix nullability warning * Simplify resolver key * Improve error message * Test fix * Atomic add * format --------- Co-authored-by: Alex Bespalov <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Refactor/Deduplicate Proof, Trace, Debug, BlockchainBridge RPC (#8741) * Deduplicate proof rpc module * Just a bit more * Almost! * Cleanup * Slight cleanup, fixed some test * More cleanup * Remove unnecessary code * Clear env * Slight cleanup first * Block validation and production * Block production transactions execcutor * Remove some class * Fix test * Progressing * Fix build * Fix test * Fix aura build * Aura * Extra comment * Simulate slight cleanup * Blockchain bridge * Slight code clarity * Remove overridable tx processing env * Fix test * Missed a few override scope * Fix test * Cleanup * Whitespace * Cleanup * Cleanup * Cleanup * Try to reorder for clarity * Reduce code * Slight comment cleanup * Fix build * Remove taiko rpc modules * Fix build * Address optimism * Address comment * Add flag for persistent broadcast (#8752) * add flag for persistent broadcast * fix * Lighter Memory.Save (#8808) Ligher Memory.Save * Fix aura wrong reward components (#8805) * Fix wrong reward componets * Slight cleanup * Fix merge seal validator * Use GetOrAdd for DirtyNodeCache (#8812) * Update packages (#8811) * Cleanup/Deduplicate aura block processor. (#8814) * Remove read only chain processing env * Deduplicate block processor construction * Fix error on block production * Fix wrong sealer * Add withdrawal processor to unit test * Use proper aura tx filter * Cleanup * Rename RIP-7212 to EIP-7951 & enable in Osaka (#8753) * add to specs * remove rip7212 name * enable in Osaka * Ingore `rehearsal` chain * Run `superchain.py` --------- Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Drop pre-merge history for Ethereum Mainnet (#8764) * Drop pre-merge history * fix test --------- Co-authored-by: Kamil Chodoła <[email protected]> * Single line [DoesNotReturn, StackTraceHidden] (#8821) * Allocate 96 bytes less per tx sender recovery (#8824) * Less allocating tx sender recovery * Even less allocations * Less allocations * build * Changed return types * Param type * Update OP Superchain chains (#8827) Co-authored-by: emlautarom1 <[email protected]> * Faster generic logger lookup (#8822) * TransactionSubstate to readonly ref struct (#8825) * TransactionSubstate to readonly struct * destory list * ref struct * Apply suggestions from code review Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Only notify about main BlockchainProcessor shutdown (#8819) * Adjusted CL Block size - EIP 7934 (#8807) * Adjusted CL Block size - EIP 7934 Adjusted CL Block size - EIP 7934 https://eips.ethereum.org/EIPS/eip-7934 * Update BlocksConfig.cs * Remove AncientReceiptsBarrier and AncientBodiesBarrier from sepolia_archive.json (#8834) * Initial plan for issue * Remove AncientReceiptsBarrier and AncientBodiesBarrier from sepolia_archive.json and update test Co-authored-by: MarekM25 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: MarekM25 <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * Warmump evm (#8836) * warmup evm * Improve * Format * Update Sepolia AncientBarriers to 1450409 per EIP-3675 for pre-merge PoW history expiry (#8835) * Initial plan for issue * Initial plan for issue Co-authored-by: MarekM25 <[email protected]> * Update Sepolia AncientBarriers to 1450409 per EIP-3675 and update tests Co-authored-by: MarekM25 <[email protected]> * Remove unrelated dotnet-install.sh file Co-authored-by: MarekM25 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: MarekM25 <[email protected]> * Implement Eip7907: Meter Contract Code Size And Increase Limit (#8845) * Add Eip7907 params * Add constants * Gas metering * Set params * Formatting * Fix * Format * Osaka activation * revert * Try enabling tests * Based on address * Remove EvmState from interface * Rename code sizes * Move Div32Ceiling * Remove codehash return * Reduce changes * Reduce changes * Empty jumpdst * Split SSTORE to two Opcodes (#8853) * Split SSTORE to two Opcodes * Move trace out * Fix yparity issue in RPC setcode tx (#8809) * set V minus offset * refactor auth list rpc * Test for setcode RPC * Refactor/Move the rest of built in rpc modules to DI (#8844) * Remove RegisterEthRpcModule * Remove more code * Slight cleanup * To primary constructor * Add test * Peerpool and subscription factory out of nethermind api * Filter store and filter manager * Slight cleanup * Remove unnecessary code * Make sure context aware rpc is not singleton * Whitespace * Fix test * Feature/lazy rpc module factory (#8846) * Fix test * Fix on actual run * Remove the test rpc module provider * Whitespace * Fix ParityStyleTracerTests in debug mode (#8857) * Fix parity style tracer test in debug mode * Whitespace * Fix arraypool dispose * Test for success * Dont change unnecessary code * Remove INethermindPlugin.GetSteps (#8858) * Remove INethermindPlugin.GetSteps * Whitespace * Fix parallelization config * Update VirtualMachineBase to compatible with the relevant VirtualMachine * Fix the use of VirtualMachineBase in EvmInstructions according to 8756 * Fix formatting --------- Co-authored-by: Amirul Ashraf <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Szymon Kulec <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: MarekM25 <[email protected]>
* 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c143c8192f307d47a39db5ea23a9c703dde4. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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) * Auto-update fast sync settings (#8745) Co-authored-by: rubo <[email protected]> * Add boundary tests for EIP-7918 (#8748) add boundary tests for 7918 Co-authored-by: Marc Harvey-Hill <[email protected]> * Update EIP-7883: Assume minimal base/mod length of 32 (#8749) * changes to modexp gas-pricing * whitespace * tidy --------- Co-authored-by: Marc Harvey-Hill <[email protected]> * Fix/CL health checks (#8755) CL is ok if we get NP or FCU * Activate devnet-1 in Osaka (#8733) * Cleanup * Fix typo * SpanSource for TrieNode rlp (#8719) * initial * benchmarks * minor changes to sequence equal * creation * span source introduced * trie node uses SpanSource * always arrays * only SpanValue * amendents * amendments * tests amended * benchmarks, fixing * fixing sync * fixups to match byte[] and capped * TrieNode.ToString * TxTrieTests use the pool in the same way execution does * Receipt Trie tests * formatting * cleanup * Update src/Nethermind/Nethermind.Serialization.Rlp/RlpDecoderExtensions.cs Co-authored-by: Copilot <[email protected]> * Update src/Nethermind/Nethermind.Core/Buffers/ISpanSourcePool.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Tweaks * Too far * removal of the unaccess paths * SpanSource uses is instead of UnsafeAs --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Add max blobs per tx limit taken from blob schedule (#8754) * Add maxPerTx setting * Rename * Add tests * Clean up * Fix spaces * Fix punctuation * EIP-7939 CLZ (#8759) * EIP-7939 CLZ * whitespace * fix release spec * fix * Update src/Nethermind/Nethermind.Core/Specs/IReleaseSpec.cs Co-authored-by: Marc <[email protected]> * generate tests for every bit * eip 7939 count leading zeros optimization (#8765) * Optimize with vector * Update src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.Math1Param.cs * increase delay in flaky test Test_task_that_is_scheduled_during_block_processing_will_continue_after * add in --------- Co-authored-by: Marc <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> * Dispose EvmState on warmup (#8771) * Include debug symbols in distribution packages (#8773) * Include Debug Symbols * Embed debug symbols into distribution package --------- Co-authored-by: Ruben Buniatyan <[email protected]> * optimize some precompiles (#8770) * optimize some precompiles * fix * fix * fix recovery id * fix clearing first 12 bytes of ecrecover result * optimize stack * move EthereumEcdsa to static * Remove txPool contention from block validation (#8779) * Remove txPool contention from block validation * Benchmarks * Junky test * Recover signer direct from keccak without intermediary array (#8781) * Recover signer direct from keccak without intermediary array * Skip hash via byte array * Fix merge issues * Refactor/taiko extended eth module (#8769) * Split taiko extended rpc to another class * Remove unneccessary change * Add unit test * Whitespace * Cleanup/make transaction executor always take adapter (#8750) * Block validation and production * Block production transactions execcutor * Remove some class * Fix test * Fix build * Auto-update fast sync settings (#8788) Co-authored-by: rubo <[email protected]> * Fix/era import (#8774) * Fix error import era * Fix not thread safe * Whitespace * Fix build * Increase setup timeout (#8790) * Change Ethereum mainet gaslimit default to 45M (#8793) * Base prewarming on logical cores (#8796) * Base prewarming on logical cores * Max at 16 * Add tx payload form bytes only (#8777) * PatriciaTree remove unused field (#8800) * PatriciaTree remove unused field * ReceiptTrie to non-generic * build * build * Perf/allow archive node to use prune cache (#8655) * Allow archive node to use prune cache * Fix did not save everything * Persistence interval only apply to archive node * Fixed some test * More attempt to fix test * Ability for strategy to check more information * Min and Max unpersisted block * Just a little bit more * Attempt to fix full pruner test * Fix test * Whitespace * Add comment * Rename and move to test * Remove unnecessary change * Remove unnecessary change * Remove unnecessary change * Revert unnecessary change * Fix full pruning * Trying to make test use world state * Missed a file * Add test for strategy * Reduce change * Fix proof rpc * Fix test * Update src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build * Fix test * Address comment * Fix test --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix validation when protocols are added concurrently (#8798) * Ignore `Celo` in Superchain Registry (#8804) Ignore `Celo` * Skip recovery queue when no blocks queued (#8801) * Skip recovery queue when no items queued * Don't pass through synchnronously * tweak * Atomic block * Fix timeout * Fix adaptive code resolver (#8797) * fix msg resolver * Fix nullability warning * Simplify resolver key * Improve error message * Test fix * Atomic add * format --------- Co-authored-by: Alex Bespalov <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Refactor/Deduplicate Proof, Trace, Debug, BlockchainBridge RPC (#8741) * Deduplicate proof rpc module * Just a bit more * Almost! * Cleanup * Slight cleanup, fixed some test * More cleanup * Remove unnecessary code * Clear env * Slight cleanup first * Block validation and production * Block production transactions execcutor * Remove some class * Fix test * Progressing * Fix build * Fix test * Fix aura build * Aura * Extra comment * Simulate slight cleanup * Blockchain bridge * Slight code clarity * Remove overridable tx processing env * Fix test * Missed a few override scope * Fix test * Cleanup * Whitespace * Cleanup * Cleanup * Cleanup * Try to reorder for clarity * Reduce code * Slight comment cleanup * Fix build * Remove taiko rpc modules * Fix build * Address optimism * Address comment * Add flag for persistent broadcast (#8752) * add flag for persistent broadcast * fix * Lighter Memory.Save (#8808) Ligher Memory.Save * Fix aura wrong reward components (#8805) * Fix wrong reward componets * Slight cleanup * Fix merge seal validator * Use GetOrAdd for DirtyNodeCache (#8812) * Update packages (#8811) * Cleanup/Deduplicate aura block processor. (#8814) * Remove read only chain processing env * Deduplicate block processor construction * Fix error on block production * Fix wrong sealer * Add withdrawal processor to unit test * Use proper aura tx filter * Cleanup * Rename RIP-7212 to EIP-7951 & enable in Osaka (#8753) * add to specs * remove rip7212 name * enable in Osaka * Ingore `rehearsal` chain * Run `superchain.py` --------- Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Drop pre-merge history for Ethereum Mainnet (#8764) * Drop pre-merge history * fix test --------- Co-authored-by: Kamil Chodoła <[email protected]> * Single line [DoesNotReturn, StackTraceHidden] (#8821) * Allocate 96 bytes less per tx sender recovery (#8824) * Less allocating tx sender recovery * Even less allocations * Less allocations * build * Changed return types * Param type * Update OP Superchain chains (#8827) Co-authored-by: emlautarom1 <[email protected]> * Faster generic logger lookup (#8822) * TransactionSubstate to readonly ref struct (#8825) * TransactionSubstate to readonly struct * destory list * ref struct * Apply suggestions from code review Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Only notify about main BlockchainProcessor shutdown (#8819) * Adjusted CL Block size - EIP 7934 (#8807) * Adjusted CL Block size - EIP 7934 Adjusted CL Block size - EIP 7934 https://eips.ethereum.org/EIPS/eip-7934 * Update BlocksConfig.cs * Remove AncientReceiptsBarrier and AncientBodiesBarrier from sepolia_archive.json (#8834) * Initial plan for issue * Remove AncientReceiptsBarrier and AncientBodiesBarrier from sepolia_archive.json and update test Co-authored-by: MarekM25 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: MarekM25 <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * Warmump evm (#8836) * warmup evm * Improve * Format * Update Sepolia AncientBarriers to 1450409 per EIP-3675 for pre-merge PoW history expiry (#8835) * Initial plan for issue * Initial plan for issue Co-authored-by: MarekM25 <[email protected]> * Update Sepolia AncientBarriers to 1450409 per EIP-3675 and update tests Co-authored-by: MarekM25 <[email protected]> * Remove unrelated dotnet-install.sh file Co-authored-by: MarekM25 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: MarekM25 <[email protected]> * Implement Eip7907: Meter Contract Code Size And Increase Limit (#8845) * Add Eip7907 params * Add constants * Gas metering * Set params * Formatting * Fix * Format * Osaka activation * revert * Try enabling tests * Based on address * Remove EvmState from interface * Rename code sizes * Move Div32Ceiling * Remove codehash return * Reduce changes * Reduce changes * Empty jumpdst * Split SSTORE to two Opcodes (#8853) * Split SSTORE to two Opcodes * Move trace out * Fix yparity issue in RPC setcode tx (#8809) * set V minus offset * refactor auth list rpc * Test for setcode RPC * Refactor/Move the rest of built in rpc modules to DI (#8844) * Remove RegisterEthRpcModule * Remove more code * Slight cleanup * To primary constructor * Add test * Peerpool and subscription factory out of nethermind api * Filter store and filter manager * Slight cleanup * Remove unnecessary code * Make sure context aware rpc is not singleton * Whitespace * Fix test * Feature/lazy rpc module factory (#8846) * Fix test * Fix on actual run * Remove the test rpc module provider * Whitespace * Fix ParityStyleTracerTests in debug mode (#8857) * Fix parity style tracer test in debug mode * Whitespace * Fix arraypool dispose * Test for success * Dont change unnecessary code * Remove INethermindPlugin.GetSteps (#8858) * Remove INethermindPlugin.GetSteps * Whitespace * Fix parallelization config * Update VirtualMachineBase to compatible with the relevant VirtualMachine * Don't broadcast txs while processing a block (#8820) * Add Surge Custom Pricing RPC (#8662) * intial code for surge pricing * fix minor formatting issue * add L1 RPC calls * refactor and optimise number of RPC calls * address review comments * compute L2 gas usage with moving averages * [WIP] use Taiko L1 contract to fetch batch info * [wip] add new test for moving average computation * fix test failures & improve logging * fix build issues with latest master * address comments * TaikoInboxAddress is set to null by default * fix * address comments * minor format fix * filter poolContent by basefee * make live test as explicit * remove redundant taiko inbox address * add sharing percentage adjustment to base fee --------- Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> * Fix the use of VirtualMachineBase in EvmInstructions according to 8756 * Fix formatting * Only create Spec once per block (#8855) * Only create Spec once per block * Update spec * better spec setting * spec * Use spec * mocks * mocks * mocks * Less spec * Less spec * Tidy up * Less conversions * Go through cache * Less conversions * readonly struct * Less spec in receipts * Spec routing * Allow spec override for Aura * Less calls * Don't create different system spec if nothing changes * Remove lookup in prewarmer * Skip spec lookup for BlockHash * Pass spec to receipts * Prewarming * Set default pruning boundary to 128 (#8863) * Set default pruning boundary to 128 * Update values * Optimize opcodes (#8864) * Optimize InstructionDup * Optimize stack opcodes * Test fix * Code size * Rename to code * Refactor/Slight reduction in duplicated block producer code (#8865) * Unified header generation * Use flags * Remove prepare empty block * Fix test * Slight cleanup * Slight cleanup * Try to reduce change * None flags * Whitespace * Remove comment * Validate parenthash is same as given parent (#8840) Take into account disconnected beacon chain * Configure Volta Zurich hard fork (#8851) * Replace Nethermind.Gmp with Nethermind.GmpBindings (#8799) * Add BuilderNet to highlighted log brands (#8870) * Json serializing doubles - decimal part optional for round numbers (#8873) * When json serializing doubles make decimal part optional for round numbers * adjust tests * Optimise OpOrigin (#8867) * Optimize JwtAuthentication.Authenticate (#8875) * Optimize JwtAuthentication.Authenticate * Feedback * Reduce log noise: Move high volume logs from Debug to Trace (#8789) * Move high volume logs from Debug to Trace * Apply suggestions from code review Co-authored-by: Lukasz Rozmej <[email protected]> * Switch some back to debug --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Add taikoAuth_setHeadL1Origin, taikoAuth_updateL1Origin, BuildPayloadArgsId (#8874) * Add taikoAuth_setHeadL1Origin, taikoAuth_updateL1Origin, BuildPayloadArgsId * Fix formatting * Fix tests compilation * Fix encoding * Update Nethermind.GmpBindings package (#8876) * Refactor/deduplicate block producer env (#8871) * To IBlockProducerEnv * Fix aura * Optimism * Fix test * Rename back to block producer env * Fix build * Slight cleanup * Remove unused class * Whitespace * Update src/Nethermind/Nethermind.Merge.Plugin.Test/BaseEngineModuleTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Reduce use of InitializeNetworkProtocol and review step dependencies (#8859) * Add step * Nicer log * Minor tweak * Slight tweak * Analytics plugin * Hive * Slight cleanup * UPnP * Whitespace * Move analytics steps ahead * Move some more steps ahead * Move review blocktree ahead * Move start monitoring ahead * Era step and eth stats step * Fix build * Fix test * Remove unnecessary field * Update src/Nethermind/Nethermind.Init/Steps/EthereumStepsManager.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.UPnP.Plugin/UPnPStep.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Remove init * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Trim JsonRpc Webhost for lower latency (#8879) Trim JsonRpc Webhost Co-authored-by: Copilot <[email protected]> * Fix CPU compatibility issues (#8882) * Auto-update fast sync settings (#8881) Co-authored-by: rubo <[email protected]> * Log chainId disconnect as trace (#8877) * Test/Call block producer directly in test (#8885) * Call block producer directly * Reduce change * Further isolate overridable env (#8806) * Slightly more reliable test * Isolate overridable env even further * Unit test * Minor style change * Slightly reduce code * Whitespace * Slight cleanup * Fix build * Remove unnecessary code * Combine scope and component * Fix build * Optimize BlockForRpc for eth_getBlockByNumber (#8883) * Add Surge Hoodi Config in Runner (#8890) * add surge-hoodi config in Runner * Apply suggestions from code review The local git doesn't track the config files, need to change from GUI. Co-authored-by: Ahmad Bitar <[email protected]> --------- Co-authored-by: Ahmad Bitar <[email protected]> * Update Volta bootnode (#8888) * Fix Surge Hoodi Genesis Hash in Config (#8892) fix surge-hoodi genesis hash * Fix after merge --------- Co-authored-by: Amirul Ashraf <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Szymon Kulec <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: MarekM25 <[email protected]> Co-authored-by: Diptanshu Kakwani <[email protected]>
* 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c143c8192f307d47a39db5ea23a9c703dde4. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Pavlo Rytikov <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]…
* 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 <[email protected]> * Feedback * bleh * Feedback * Make combined method public --------- Co-authored-by: Copilot <[email protected]> * Auto-update fast sync settings (#9193) Co-authored-by: rubo <[email protected]> * Update OP Superchain chains (#9194) Co-authored-by: emlautarom1 <[email protected]> * Per contract state (#9088) * Per contract state * Update src/Nethermind/Nethermind.State/PersistentStorageProvider.cs Co-authored-by: Ben {chmark} Adams <[email protected]> * Fix randomly faailing test * Fix concurrent ensure storage tree --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * ffs copilot * Use switch expression * switch expression, improve comments * Improve param naming --------- Co-authored-by: Copilot <[email protected]> * Fix concurrent storage root issue (#9209) Co-authored-by: Kamil Chodoła <[email protected]> * Incorrect Gas Estimation & Refactoring (#9064) * Incorrect Gas Estimation Signed-off-by: stavrosvl7 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#9218) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Improvements Signed-off-by: stavrosvl7 <[email protected]> * Improvements Signed-off-by: stavrosvl7 <[email protected]> * Improvements Signed-off-by: stavrosvl7 <[email protected]> * Improvements Signed-off-by: stavrosvl7 <[email protected]> * Formatting Signed-off-by: stavrosvl7 <[email protected]> * Breaking Changes Signed-off-by: stavrosvl7 <[email protected]> * Test Improvements Signed-off-by: stavrosvl7 <[email protected]> * Remove Comment Signed-off-by: stavrosvl7 <[email protected]> * Comments Signed-off-by: stavrosvl7 <[email protected]> * Improvements Signed-off-by: stavrosvl7 <[email protected]> * PR Review Comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review Comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review Comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review Comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review Comments Signed-off-by: stavrosvl7 <[email protected]> * PR Review Comments Signed-off-by: stavrosvl7 <[email protected]> * Avoid string manipulation in NetworkInfoBuilder Signed-off-by: stavrosvl7 <[email protected]> * Avoid string manipulation in NetworkInfoBuilder Signed-off-by: stavrosvl7 <[email protected]> * Further improvement in string allocation at CapabilityConverter.cs Signed-off-by: stavrosvl7 <[email protected]> * Format Signed-off-by: stavrosvl7 <[email protected]> * Bit of refactors * Remove EnrExtractor and move comment to PeerInfo * Update comment with issue link --------- Signed-off-by: stavrosvl7 <[email protected]> Co-authored-by: lukasz.rozmej <[email protected]> * Fix receipts deletion (#9231) * separate receipt deletion from receipt tx deletion * regression test * tidy test --------- Co-authored-by: Marc Harvey-Hill <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#9218) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Amirul Ashraf <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: rubo <[email protected]> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: Stavros Vlachakis <[email protected]> Co-authored-by: Carlos Bermudez Porto <[email protected]> Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Prepare stable state * Remove is root * Whitespace --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core/Buffers/SpanSource.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Trie/PatriciaTree.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core/Buffers/SpanSource.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build * New read * Remove unused code --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Auto-update fast sync settings (#9252) Co-authored-by: rubo <[email protected]> * Update OP Superchain chains (#9253) Co-authored-by: emlautarom1 <[email protected]> * Bump up the version to 1.34.0-unstable (#9124) Co-authored-by: kamilchodola <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * 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 <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * 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 <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * 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 <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c143c8192f307d47a39db5ea23a9c703dde4. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * 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 <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * 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 <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Pavlo Rytikov <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * 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 …
Fixes #8537
Changes
GetStorageRangeRequestfor which no nodes are found, return proof of absence of the key (along lower limit path).Types of changes
What types of changes does your code introduce?
Testing
Requires testing
If yes, did you write tests?
Notes on testing
Optional. Remove if not applicable.
Documentation
Requires documentation update
Requires explanation in Release Notes