Skip to content

Commit 20ce96b

Browse files
hudem1asdacapLukaszRozmejcore-repository-dispatch-app[bot]emlautarom1
authored
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 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]>
1 parent 380aa47 commit 20ce96b

File tree

1,059 files changed

+17899
-11033
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,059 files changed

+17899
-11033
lines changed

.dockerignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@
55
**/bin/
66
**/obj/
77

8-
src/Nethermind/*.Test/

.editorconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ trim_trailing_whitespace = true
1111

1212
file_header_template = SPDX-FileCopyrightText: 2025 Demerzel Solutions Limited\nSPDX-License-Identifier: LGPL-3.0-only
1313

14-
[*.cs]
15-
indent_size = 4
1614
[*.py]
1715
indent_size = 4
16+
[*.cs]
17+
indent_size = 4
1818

1919
#### Naming styles ####
2020

.github/workflows/build-nethermind-packages.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,25 @@ jobs:
1111
PACKAGE_DIR: pkg
1212
PACKAGE_RETENTION: 7
1313
PUB_DIR: pub
14+
SCRIPTS_PATH: ${{ github.workspace }}/scripts/build
1415
steps:
1516
- name: Check out repository
1617
uses: actions/checkout@v4
1718
- name: Set up .NET
1819
uses: actions/setup-dotnet@v4
1920
- name: Build Nethermind.Runner
20-
id: build-runner
21+
id: build
2122
run: |
2223
build_timestamp=$(date '+%s')
2324
echo "build-timestamp=$build_timestamp" >> $GITHUB_OUTPUT
2425
echo "commit-hash=${GITHUB_SHA:0:8}" >> $GITHUB_OUTPUT
25-
scripts/deployment/build-runner.sh $GITHUB_SHA $build_timestamp
26+
$SCRIPTS_PATH/build.sh $GITHUB_SHA $build_timestamp
2627
- name: Archive packages
2728
env:
28-
PACKAGE_PREFIX: nethermind-preview-${{ steps.build-runner.outputs.commit-hash }}
29+
PACKAGE_PREFIX: nethermind-preview-${{ steps.build.outputs.commit-hash }}
2930
run: |
3031
echo "PACKAGE_PREFIX=$PACKAGE_PREFIX" >> $GITHUB_ENV
31-
scripts/deployment/archive-packages.sh
32+
$SCRIPTS_PATH/archive.sh
3233
- name: Upload Nethermind Linux x64 package
3334
uses: actions/upload-artifact@v4
3435
with:

.github/workflows/hive-consensus-tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ jobs:
105105
REPO_NAME: ${{ env.REPO_NAME }}
106106
REF: ${{ github.ref }}
107107
run: |
108-
chmod +x scripts/wait-for-workflow-completed.sh
109-
./scripts/wait-for-workflow-completed.sh
108+
chmod +x scripts/wait-for-workflow.sh
109+
./scripts/wait-for-workflow.sh
110110
working-directory: ${{ github.workspace }}
111111

112112
generate_hive_consensus_tests:

.github/workflows/nethermind-tests.yml

Lines changed: 35 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@ on:
1919
env:
2020
COLLECT_COVERAGE: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' || github.event.inputs.coverage }}
2121
DOTNET_SYSTEM_CONSOLE_ALLOW_ANSI_COLOR_REDIRECTION: 1
22-
RETENTION: 1
2322
TERM: xterm
2423

2524
jobs:
26-
nethermind-tests:
25+
tests:
2726
name: Run ${{ matrix.project }}
2827
runs-on: ubuntu-latest
2928
continue-on-error: true
@@ -32,6 +31,23 @@ jobs:
3231
strategy:
3332
matrix:
3433
project:
34+
- Ethereum.Abi.Test
35+
- Ethereum.Basic.Test
36+
- Ethereum.Blockchain.Block.Legacy.Test
37+
- Ethereum.Blockchain.Block.Test
38+
- Ethereum.Blockchain.Legacy.Test
39+
- Ethereum.Blockchain.Pyspec.Test
40+
- Ethereum.Blockchain.Test
41+
- Ethereum.Difficulty.Test
42+
- Ethereum.HexPrefix.Test
43+
- Ethereum.KeyAddress.Test
44+
- Ethereum.KeyStore.Test
45+
- Ethereum.PoW.Test
46+
- Ethereum.Rlp.Test
47+
- Ethereum.Transaction.Test
48+
- Ethereum.Transition.Test
49+
- Ethereum.Trie.Test
50+
- Ethereum.VM.Test
3551
- Nethermind.Abi.Test
3652
- Nethermind.Api.Test
3753
- Nethermind.AuRa.Test
@@ -61,7 +77,7 @@ jobs:
6177
- Nethermind.Network.Enr.Test
6278
- Nethermind.Network.Test
6379
- Nethermind.Optimism.Test
64-
- Nethermind.Overseer.Test
80+
# - Nethermind.Overseer.Test
6581
- Nethermind.Runner.Test
6682
- Nethermind.Serialization.Ssz.Test
6783
- Nethermind.Shutter.Test
@@ -75,123 +91,59 @@ jobs:
7591
- Nethermind.TxPool.Test
7692
- Nethermind.Wallet.Test
7793
steps:
78-
- name: Check out repository
79-
uses: actions/checkout@v4
80-
- name: Set up .NET
81-
uses: actions/setup-dotnet@v4
82-
- name: ${{ matrix.project }}
83-
id: test
84-
run: |
85-
dotnet test src/Nethermind/${{ matrix.project }} -c release \
86-
${{ env.COLLECT_COVERAGE == 'true' && '--collect:"XPlat Code Coverage"' || '' }}
87-
- name: Save test outcome
88-
if: success() || failure()
89-
run: echo "${{ steps.test.outcome == 'success' }}," >> nethermind.outcome
90-
- name: Upload test outcome
91-
if: success() || failure()
92-
uses: actions/upload-artifact@v4
93-
with:
94-
name: ${{ matrix.project }}-outcome
95-
path: nethermind.outcome
96-
retention-days: ${{ env.RETENTION }}
97-
- name: Upload coverage report
98-
if: env.COLLECT_COVERAGE == 'true'
99-
uses: actions/upload-artifact@v4
100-
with:
101-
name: ${{ matrix.project }}-coverage
102-
path: src/Nethermind/${{ matrix.project }}/TestResults/**/coverage.cobertura.xml
103-
retention-days: ${{ env.RETENTION }}
104-
105-
nethermind-tests-status:
106-
name: Nethermind tests
107-
needs: nethermind-tests
108-
runs-on: ubuntu-latest
109-
steps:
110-
- name: Download test outcomes
111-
uses: actions/download-artifact@v4
112-
- name: Ensure tests passed
113-
run: |
114-
data=$(cat **/nethermind.outcome) && data=${data%?}
115-
passed=$(echo "[$data]" | jq -r 'all')
116-
[ $passed = 'true' ] && exit 0 || exit 1
117-
118-
ethereum-tests:
119-
name: Run ${{ matrix.project }}
120-
runs-on: ubuntu-latest
121-
continue-on-error: true
122-
strategy:
123-
matrix:
124-
project:
125-
- Ethereum.Abi.Test
126-
- Ethereum.Basic.Test
127-
- Ethereum.Blockchain.Block.Legacy.Test
128-
- Ethereum.Blockchain.Block.Test
129-
- Ethereum.Blockchain.Legacy.Test
130-
- Ethereum.Blockchain.Pyspec.Test
131-
- Ethereum.Blockchain.Test
132-
- Ethereum.Difficulty.Test
133-
- Ethereum.HexPrefix.Test
134-
- Ethereum.KeyAddress.Test
135-
- Ethereum.KeyStore.Test
136-
- Ethereum.PoW.Test
137-
- Ethereum.Rlp.Test
138-
- Ethereum.Transaction.Test
139-
- Ethereum.Transition.Test
140-
- Ethereum.Trie.Test
141-
- Ethereum.VM.Test
142-
steps:
14394
- name: Check out repository
14495
uses: actions/checkout@v4
14596
with:
146-
submodules: recursive
97+
submodules: ${{ startsWith(matrix.project, 'Ethereum.') && 'recursive' || 'false' }}
14798
- name: Set up .NET
14899
uses: actions/setup-dotnet@v4
149100
- name: ${{ matrix.project }}
150101
id: test
151102
run: |
152-
dotnet test src/Nethermind/${{ matrix.project }} -c release \
153-
${{ env.COLLECT_COVERAGE == 'true' && '--collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Exclude=[Nethermind.Core.Test]*,[Nethermind.Blockchain.Test]*,[Ethereum.Test.Base]*' || '' }}
103+
dotnet run --project src/Nethermind/${{ matrix.project }} -c release \
104+
${{ env.COLLECT_COVERAGE == 'true' && '--coverage --coverage-output-format cobertura --coverage-settings $GITHUB_WORKSPACE/src/Nethermind/codecoverage.config' || '' }}
154105
- name: Save test outcome
155106
if: success() || failure()
156-
run: echo "${{ steps.test.outcome == 'success' }}," >> ethereum.outcome
107+
run: echo "${{ steps.test.outcome == 'success' }}," >> test.outcome
157108
- name: Upload test outcome
158109
if: success() || failure()
159110
uses: actions/upload-artifact@v4
160111
with:
161112
name: ${{ matrix.project }}-outcome
162-
path: ethereum.outcome
163-
retention-days: ${{ env.RETENTION }}
113+
path: test.outcome
114+
retention-days: 1
164115
- name: Upload coverage report
165116
if: env.COLLECT_COVERAGE == 'true'
166117
uses: actions/upload-artifact@v4
167118
with:
168119
name: ${{ matrix.project }}-coverage
169-
path: src/Nethermind/${{ matrix.project }}/TestResults/**/coverage.cobertura.xml
170-
retention-days: ${{ env.RETENTION }}
120+
path: src/Nethermind/artifacts/bin/${{ matrix.project }}/release/TestResults/*.cobertura.xml
121+
retention-days: 1
171122

172-
ethereum-tests-status:
173-
name: Ethereum tests
174-
needs: ethereum-tests
123+
tests-summary:
124+
name: Tests summary
125+
needs: tests
175126
runs-on: ubuntu-latest
176127
steps:
177128
- name: Download test outcomes
178129
uses: actions/download-artifact@v4
179-
- name: Ensure tests passed
130+
- name: Ensure all tests passed
180131
run: |
181-
data=$(cat **/ethereum.outcome) && data=${data%?}
132+
data=$(cat **/test.outcome) && data=${data%?}
182133
passed=$(echo "[$data]" | jq -r 'all')
183134
[ $passed = 'true' ] && exit 0 || exit 1
184135
185136
codecov-upload:
186137
name: Upload Codecov reports
187-
needs: [nethermind-tests-status, ethereum-tests-status]
188-
if: needs.nethermind-tests.outputs.collect_coverage == 'true'
138+
needs: [tests-summary]
139+
if: needs.tests.outputs.collect_coverage == 'true'
189140
runs-on: ubuntu-latest
190141
steps:
191142
- name: Download coverage reports
192143
uses: actions/download-artifact@v4
193144
with:
194145
path: .coverage
146+
pattern: '*-coverage'
195147
- name: Upload coverage reports to Codecov
196148
uses: codecov/codecov-action@v3
197149
with:

.github/workflows/publish-packages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Submit package
3131
env:
3232
PPA_GPG_KEYID: ${{ secrets.PPA_GPG_KEYID }}
33-
working-directory: scripts/deployment/ppa
33+
working-directory: scripts/build/ppa
3434
run: |
3535
version=${{ github.event.release.tag_name }}
3636
json=$(curl -sL ${{ github.event.release.assets_url }})

.github/workflows/release.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,36 @@ env:
1616
PACKAGE_DIR: pkg
1717
PACKAGE_RETENTION: 7
1818
PUB_DIR: pub
19-
SCRIPTS_PATH: ${{ github.workspace }}/scripts/deployment
19+
SCRIPTS_PATH: ${{ github.workspace }}/scripts/build
2020

2121
jobs:
2222
build:
2323
name: Build Nethermind packages
2424
runs-on: ubuntu-latest
2525
outputs:
26-
build-timestamp: ${{ steps.build-runner.outputs.build-timestamp }}
26+
build-timestamp: ${{ steps.build.outputs.build-timestamp }}
2727
package-prefix: ${{ steps.archive.outputs.package-prefix }}
28-
prerelease: ${{ steps.build-runner.outputs.prerelease }}
28+
prerelease: ${{ steps.build.outputs.prerelease }}
2929
steps:
3030
- name: Check out repository
3131
uses: actions/checkout@v4
3232
- name: Set up .NET
3333
uses: actions/setup-dotnet@v4
3434
- name: Build Nethermind.Runner
35-
id: build-runner
35+
id: build
3636
run: |
3737
build_timestamp=$(date '+%s')
3838
echo "build-timestamp=$build_timestamp" >> $GITHUB_OUTPUT
3939
echo "commit-hash=${GITHUB_SHA:0:8}" >> $GITHUB_OUTPUT
4040
echo "prerelease=${{ contains(github.event.inputs.tag, '-') }}" >> $GITHUB_OUTPUT
41-
$SCRIPTS_PATH/build-runner.sh $GITHUB_SHA $build_timestamp
41+
$SCRIPTS_PATH/build.sh $GITHUB_SHA $build_timestamp
4242
- name: Archive packages
4343
id: archive
4444
env:
45-
PACKAGE_PREFIX: nethermind-${{ github.event.inputs.tag }}-${{ steps.build-runner.outputs.commit-hash }}
45+
PACKAGE_PREFIX: nethermind-${{ github.event.inputs.tag }}-${{ steps.build.outputs.commit-hash }}
4646
run: |
4747
echo "package-prefix=$PACKAGE_PREFIX" >> $GITHUB_OUTPUT
48-
$SCRIPTS_PATH/archive-packages.sh
48+
$SCRIPTS_PATH/archive.sh
4949
- name: Upload Nethermind Linux x64 package
5050
uses: actions/upload-artifact@v4
5151
with:

.github/workflows/run-a-single-node-from-branch.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,8 @@ jobs:
250250
REPO_NAME: ${{ env.REPO_NAME }}
251251
REF: ${{ inputs.nethermind_repo_ref || github.ref }}
252252
run: |
253-
chmod +x scripts/wait-for-workflow-completed.sh
254-
./scripts/wait-for-workflow-completed.sh
253+
chmod +x scripts/wait-for-workflow.sh
254+
./scripts/wait-for-workflow.sh
255255
working-directory: ${{ github.workspace }}
256256

257257
trigger_node_and_vm_creation:
@@ -325,8 +325,8 @@ jobs:
325325
NAME_FILTER: ${{ env.BASE_TAG }}
326326
REF: "main"
327327
run: |
328-
chmod +x scripts/wait-for-workflow-completed.sh
329-
./scripts/wait-for-workflow-completed.sh | tee script-output.txt
328+
chmod +x scripts/wait-for-workflow.sh
329+
./scripts/wait-for-workflow.sh | tee script-output.txt
330330
run_id=$(grep -oP 'Run ID: \K\d+' script-output.txt)
331331
echo "Run ID extracted is: $run_id"
332332
echo "RUN_ID=$run_id" >> $GITHUB_ENV

.github/workflows/sync-supported-chains.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
- name: Set Matrix
4040
id: set-matrix
4141
run: |
42-
matrix=$(cat nethermind/scripts/workflow_config/sync_testnets_matrix.json)
42+
matrix=$(cat nethermind/scripts/config/testnet-matrix.json)
4343
4444
if [ -n "${{ github.event.inputs.network_filter }}" ]; then
4545
matrix=$(echo "$matrix" | jq --arg filter "${{ github.event.inputs.network_filter }}" '[.[] | select(.network | contains($filter))]')
@@ -269,7 +269,7 @@ jobs:
269269
env:
270270
NETWORK: ${{ matrix.config.network }}
271271
run: |
272-
python scripts/waitForSync.py
272+
python scripts/wait-for-sync.py
273273
274274
- name: Get Nethermind Debug Logs
275275
if: ${{ failure() || cancelled() }}

.github/workflows/test-assertoor.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,23 +99,23 @@ jobs:
9999
REPO_NAME: ${{ env.REPO_NAME }}
100100
REF: ${{ github.ref }}
101101
run: |
102-
chmod +x main-repo/scripts/wait-for-workflow-completed.sh
103-
./main-repo/scripts/wait-for-workflow-completed.sh
102+
chmod +x main-repo/scripts/wait-for-workflow.sh
103+
./main-repo/scripts/wait-for-workflow.sh
104104
working-directory: ${{ github.workspace }}
105105

106106
- name: Replace Placeholders in YAML
107107
run: |
108108
assertoor_params=$(cat ${{ env.ASSERTOOR_PARAMS_FILE}})
109-
sed -i "s|<DOCKER_IMAGE_PLACEHOLDER>|nethermindeth/nethermind:${{ env.CLEAN_REF }}|g" main-repo/.github/tests/assertor.yaml
109+
sed -i "s|<DOCKER_IMAGE_PLACEHOLDER>|nethermindeth/nethermind:${{ env.CLEAN_REF }}|g" main-repo/scripts/config/assertoor.yml
110110
sed -i "/<ASSERTOOR_PARAMS_PLACEHOLDER>/ {
111111
r /tmp/output.txt
112112
d
113-
}" main-repo/.github/tests/assertor.yaml
114-
cat main-repo/.github/tests/assertor.yaml
113+
}" main-repo/scripts/config/assertoor.yml
114+
cat main-repo/scripts/config/assertoor.yml
115115
116116
- name: Kurtosis Assertoor GitHub Action
117117
uses: ethpandaops/kurtosis-assertoor-github-action@v1
118118
with:
119119
ethereum_package_url: "github.com/ethpandaops/ethereum-package"
120120
ethereum_package_branch: ""
121-
ethereum_package_args: main-repo/.github/tests/assertor.yaml
121+
ethereum_package_args: main-repo/scripts/config/assertoor.yml

0 commit comments

Comments
 (0)