Skip to content

Releases: NethermindEth/nethermind

v1.31.0

13 Feb 11:15
Compare
Choose a tag to compare

Release notes

Major highlights

Pectra hard fork for testnets

  • The hard fork of Holesky is scheduled on Monday, February 24, 2025, 9:55:12 PM UTC (epoch 115968)
  • The hard fork of Sepolia is scheduled on Wednesday, March 5, 2025 7:29:36 AM UTC (epoch 222464)

World Chain support

Nethermind now supports the World Chain. For more details, check out docs.

Era1 format import/export

As part of our work to reduce disk requirements for running a node (EIP-4444), we added Era1 import/export functionality that allows the import and export of historical data:

  • CLI:
    • --era-importdirectory path/to/dir --era-from 0 --era-to 0 --era-trustedaccumulatorfile path/to/file
      • --era-from--era-to, and --era-trustedaccumulatorfile are optional. Imports everything when the range is set to 0. Trusts the era directory if --era-trustedaccumulatorfile is not specified.
    • --era-exportdirectory path/to/dir --era-from 0 --era-to 0
      • --era-from and --era-to are optional. Exports everything when set to 0.
      • accumulators.txt and checksums.txt will be created.
  • RPC endpoints:
    • admin_importHistory and admin_exportHistory:

      curl localhost:8545 \
      -X POST \
      -H "Content-Type: application/json" \
      --data '{
      	"jsonrpc": "2.0",
      	"id": 0,
      	"method": "admin_importHistory",
      	"params": ["/data/era-import", 0, 0, "/data/era-import/accumulators.txt"]
      }'

For more, see #6547

Changelog

Features

Performance

Bug fixes and stability

Read more

v1.30.3

04 Jan 12:43
Compare
Choose a tag to compare

Release notes

⚠️

This release is a mandatory upgrade for all nodes operating on the OP Mainnet and Base Mainnet.
Please update your node to this version to ensure correct node functionality.

Major highlights

Holocene network upgrade

The Holocene hardfork on OP Mainnet and Base Mainnet is scheduled on Jan 9, 2025 at 18:00:01 UTC.
Please ensure to upgrade to Nethermind v1.30.3 and op-node v1.10.2.

Changelog

Optimism

Add Holocene timestamps for OP and Base by @emlautarom1 in #8002

Full Changelog: 1.30.2...1.30.3

v1.30.2

27 Dec 11:54
1e7cf00
Compare
Choose a tag to compare

Release Notes

⚠️ Important update for Optimism stack users

Major highlights

OP Holocene support

Fixed various issues in preparation for the Holocene hardfork in Optimism.

Full Changelog: 1.30.1...1.30.2

v1.30.1

12 Dec 10:15
Compare
Choose a tag to compare

Release Notes

⚠️ Important update for Linux systemd users

Major highlights

Startup logger fix

Fixed an issue when Nethermind crashes on startup if the Nethermind process doesn't have write access to its own directory.

Improved handling of JsonRpc.EnabledModules

Fixed an issue with trailing commas in JsonRpc.EnabledModules values. For instance, --JsonRpc.EnabledModules [eth,net,] that has been working previously, caused a failure because of the .NET 9 upgrade. To maintain compatibility and avoid disruption, adjustments have been made to continue supporting these cases, although it's highly recommended not adding trailing commas in array values.

Full Changelog: 1.30.0...1.30.1

v1.30.0

11 Dec 13:48
Compare
Choose a tag to compare

This release contains 235 improvements since the prior release 129.1

Release Notes

⚠️ We highly recommend using v1.30.1 instead

Major Highlights

Gas limit increase

The recent update increases the default gas limit from 30MGas to 36MGas, reflecting the current pre-Pectra safe limit; as identified by EF Research1 and tested on the Sepolia testnet, while ensuring compatibility with consensus layer clients. This adjustment is designed to improve transaction throughput and overall network efficiency.

To ensure the new default value is applied, do one of these:

  • Remove the Blocks.TargetBlockGasLimit configuration option if any
  • Explicitly set it to 36000000.

If maintaining the previous gas limit is necessary, you can override the default by setting the following configuration option:

--Blocks.TargetBlockGasLimit 30000000

This approach provides flexibility while optimizing for evolving network demands and the rising asset price for the gas token.

Gnosis shutterized transactions

Shutter, a cutting-edge privacy solution leveraging threshold cryptography, is now officially supported in Nethermind 1.30.0. Initially enabled for a selected group of validators, it is now available for everyone. Shutter encrypts transactions in the mempool, keeping transaction details private until finalized on-chain. This ensures protection against frontrunning and supports fair and secure transaction execution on the Gnosis Chain.

Enabling Shutter in Nethermind:

  1. Update to Nethermind 1.30.0

  2. Generate validator registration files by following the instructions in Shutter Validator Registration repository

  3. Configure Nethermind as follows:

    --Shutter.Enabled true
    --Shutter.ValidatorInfoFile /data/execution/validatorInfo.json
  4. Run Nethermind with the updated configuration to enable Shutter functionality.

Gigagas performance

image

We introduced several significant performance enhancements that substantially boosted tip-of-chain processing times. These improvements enabled us to achieve an impressive average processing throughput of 1 Gigagas/s, as recorded on the Base Mainnet chain.

One of the most impactful changes was optimizing and parallelizing in-memory pruning. This process is now significantly faster and no longer interferes with the block processing thread, reducing the likelihood of block processing spikes.

New supported chains

We added support for two new L2 networks: Taiko and Linea. To start with these networks, use the command below configurations:

  1. taiko-mainnet
  2. taiko-hekla
  3. linea-mainnet
  4. linea-sepolia

Additionally, as part of the preparation for Pectra hard-fork, we added support for the Mekong testnet. To run it, use -c mekong and ensure the respective consensus client version is running alongside.

Optimism improvements

For the Optimism implementation, we introduced support for the new hard-fork, Holocene, which took place on the Sepolia chains.

Additionally, we enabled our AutoPivot mechanism for new nodes starting synchronization. This significantly reduces the duration of the initial sync stage for OP and Base nodes, cutting the total sync time by approximately 30–60 minutes.

CLI updates

As a part of our efforts following Posix CLI conventions for our command line options, we introduced all lowercase dash-separated alternatives for all Nethermind command line options. For instance, --JsonRpc.JwtSecretFile can be spelled as --jsonrpc-jwtsecretfile or --Metrics.Enabled as --metrics-enabled.
Some option names have been deprecated (while still supported with a warning) in favor of new ones. For instance, -dd, --datadir is deprecated in favor of --data-dir.

Also, Nethermind configuration files now have a .json extension instead of the previous .cfg one. While this should not cause any issues for our users, we highly recommend not using extensions when specifying config names – always prefer -c mainnet over -c mainnet.json, or -c mainnet.cfg. Note that this does not apply to the cases when the -c option specifies a path, e.g. -c path/to/mainnet.json.

For more info, see configuration docs.

Changelog

New features

Pectra

New chains

Performance

4444

  • Receipts: Add option to not recover sender and write flags by @asdacap in #7680

Shutter

Optimism

Bug fixes and stab...

  1. Eth Research: On Increasing the Block Gas Limit: Technical Considerations & Path Forward

Read more

v1.29.1

16 Oct 14:03
Compare
Choose a tag to compare

Release Notes

⚠️ This is a mandatory upgrade for all validators.

Major Highlights

Improved memory usage on Linux

In this version, we fixed a regression issue that caused Linux machines to slowly consume more memory than expected.
In 95% of situations, it did not cause any OOMs; in some specific situations, it restarted a node periodically.

Fixed and improved OP Stack sync

This version also addresses problems with the OP Mainnet sync and makes it faster by removing the snapshot download capability and improving snap sync performance. Now, OP Stack networks are syncing well.
In the meantime, we discovered a few potential further optimizations that will be added to an upcoming release.

Fixed an edge-case block production issue

On the Gnosis chain, we discovered an edge-case scenario in which an incorrect block could be built due to a bug in handling certain rare combinations of transactions. The issue has been fixed, and we can confirm that everything is working well now.

Full Changelog: 1.29.0...1.29.1

v1.29.0

07 Oct 09:12
10412d1
Compare
Choose a tag to compare

Major Highlights

Breaking changes

Configuration flag Discovery.Discv5Enabled is replaced with a more generic flag: Discovery.DiscoveryVersion with V4 as a default value. To enable v5 discovery, use the following: --Discovery.DiscoveryVersion=V5 .

Heuristic transaction censorship detection

We have introduced heuristics-based censorship detection in the Nethermind client. Censorship is detected using two kinds of heuristics, namely, high-paying transaction censorship and address censorship.

In the former, a block is marked potentially censored if the highest non-blob transaction included in the block is worse than the best non-blob transaction available in the pool. The latter, which could also be opted out of, requires specifying a list of addresses that we want to track censorship for. We count the number of tracked addresses to which transactions better than the worst non-blob transaction in the block is sent. If the number of such addresses in the block is less than half the number of these addresses in the pool, we mark the block as potentially censored. If two consecutive blocks are flagged as potentially censored, regardless of the kind, we detect censorship.

Detection of censorship sets the ShouldOverrideBuilder flag to true which acts as a circuit-breaker and communicates to the beacon node that it should fall back to local execution instead of relying on the builder's block.

Performance improvements

On Windows block validation performance used to degrade over several hours due to the default native allocator used by RocksDB. In #7418 we changed this to use the newer SegmentHeap that was introduced in Windows 10 and you can see there is now no throughput degradation over-time and Nethermind maintains a very high tip of chain processing speed.
Ethereum-throughput

Base and Ethereum target MGas/s chain speed are added for reference above.

With this change, as well as 25 other performance improvements, Nethermind maintains a throughput an order of magnitude higher than even Base’s current gaslimit on a gaming or high end workstation PC (with locally PCIe attached Samsung 990 Pro NVMes).

This is also reflected in the end to end new payload processing; receiving and parsing the Json request from the consensus client to producing the validated Json response per block on average in under 20ms.

Slot time for mainnet is 12000ms, and ideally without ePBS the EL should complete in under 4000ms; with ePBS it has the full slot to complete. So Nethermind; on this setup, even at max time is completing the block with 98% of headroom remaining.

image (2)

  • Reduced memory during Archive, Full Sync and head catchup
  • Introduced idle memory cleanup if waiting for new blocks from consensus layer; which can happen during head catchup, depending on consensus peering
  • Introducing a new Macro Op: EXTCODESIZE+POP which was a common pattern during the Shanghai DoS attacks; however the opcode pair combination can also be evaluated to a NOP not requiring to access the account or code for the address referred to.
  • Non-allocating key generation for In64 keys; this becomes impactful as these sync modes process more than 3000 blocks per second.
  • Calculate all the receipts’ blooms together in parallel
  • Fast wait-free and lockless Keccak cache; applied in a targeted manner (as most Keccaks are random), where the same address or UInt256 is keccak’d multiple times.
  • Further improvements to data prewarming for the transaction pipeline processing.

Changelog

New features

Bug fixes and stability

Optimizations:

Other changes

Read more

v1.28.0

15 Aug 13:38
Compare
Choose a tag to compare

Release Notes

Major Highlights

eth_simulate

eth_simulate is a new JSON-RPC method that expands on eth_call ideas allowing simulation (mocking) of multiple blocks with multiple transactions. Also, it allows users to:

  • Define block variables
  • Replace code and balance of accounts
  • Override ecrecover precompile
  • Event logs and ETH transfer logs (traceTransfers = true/false)

See also eth_simulate in PEEPanEIP and ethereum/execution-apis#484.

Optimism adjustments and fixes

This release enhances Nethermind's support of Optimism with several key updates. JSON-RPC compatibility is improved, the API exposes Optimism-related fields in more places, and the OP transaction processor is now integrated into the trace namespace of JSON-RPC. Fork rules, RIP-7212, gas calculations, and receipt fields are aligned with Optimism's Fjord specifications.

Several fixes for block production, gas calculations, and other areas have been applied, along with numerous general performance improvements. The new discovery protocol (discv5) allows participation in the P2P network and quick node sync.

Additionally, Nethermind can now act as an Optimism Sequencer, increasing its utility within the ecosystem. These updates dramatically enhance Nethermind's reliability and functionality for Optimism.

To run a node, use existing configs like op-mainnet, base-mainnet, op-sepolia, base-sepolia, or assemble your own. Don't forget to enable discv5 and provide the sequencer URL as needed:

--Discovery.Discv5Enabled true --Optimism.SequencerUrl https://sepolia-sequencer.optimism.io

Gnosis and Chiado snap sync enabled by default

Starting from this release, the Gnosis and Chiado chains will be synced much faster from scratch thanks to the Nethermind snap serving feature, which has been active on Gnosis for the last few months. With plenty of nodes capable of serving these data, the team decided to switch on snap sync on both chains.

Below is a comparison of sync time before and after this change:

Gnosis Sync Time 1.27.1 1.28.0
Tip of chain 8 hours 20 minutes 25 minutes
Including historical data 13 hours 5 hours 45 minutes

Pruning.CacheMb values

We recently discovered that the Pruning.CacheMb option with values higher than the default ones is causing performance degradation.
This setting was commonly increased on the previous state DB schema (before v1.26.0) to slow down disk growth, but starting from the beforementioned version, this gives negligible improvements while causing significant performance degradation during in-memory pruning.
So, we recommend reducing it back to 1024 (max to 2048) if the validator connected to the node experiences some missed attestations.

Nethermind Launcher removal

Nethermind Launcher has been removed from distribution packages as obsolete. Nevertheless, it's still available to download from its repo.

Removal of unused plugins

In this version we removed several not used plugins and deprecated implementations to reduce complexity of code base.
Users which are using Nethermind package directly (not through Docker, PPA or other sources) will need to wipe the Nethermind directory except nethermind_db, logs and configs directories. Also any custom plugins in plugins directory should be kept - all others should be removed.

The error message user will face is:

 Failure System.TypeLoadException: Method 'Create' in type 'Nethermind.Mev.MevBlockProducerTransactionsExecutorFactory' from assembly 'Nethermind.Mev, Version=1.27.1.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

Changelog

New features

  • Add eth_simulate , support array of eth_call for simulation across multiple blocks by @OlegJakushkin in #5530
  • Implement debug_standardTraceBadBlockToFile method by @rubo in #7278

Verkle

  • remove backfill from eip 2935 and serve hashes from state when eip 7709 enabled by @yerke26 in #7140

Performance

Gnosis

Optimism

Bug fixes and stability

Other changes

New Contributors

Read more

v1.27.1

23 Jul 16:27
Compare
Choose a tag to compare

Release notes

⚠️
This release is a mandatory upgrade for all nodes operating on the Gnosis chain.
Please update your node to this version to ensure correct node functionality.

This release fixes improperly enabled pre-warming blocks on Aura and OP chains. In a very rare situation, this could cause an issue in block processing.

Full Changelog: 1.27.0...1.27.1

v1.27.0

21 Jun 14:49
Compare
Choose a tag to compare

Release notes

Nethermind EVM Throughout MGas/s

Major Highlights

This release brings 159 performance improvements and critical bug fixes to the Nethermind client, significantly enhancing its efficiency and reliability. It is a continuation of big block processing improvements:

  • v1.25.4 to v1.26.0: Improved block processing by about 70 to 80% (from 68 to 107 MGas/s)
  • v1.26.0 to v1.27.0: Improved block processing by about 150% (from 107 to 254 MGas/s)

We are already working on the next improvements, increasing MGas/s throughput even more.

Intra-block cache

One of the key advancements in this release is the implementation of an intra-block cache. This feature optimizes the processing of transactions within blocks. By leveraging caching mechanisms, the system can avoid recalculating the state for transactions within the same block. This not only reduces redundant computations but also accelerates block execution, leading to a notable boost in overall performance.

Building on this, the intra-block cache has been further enhanced with a pre-warming technique during block execution. This optimization pre-loads necessary state data into the cache ahead of time, minimizing delays caused by cache misses during transaction processing. The result is a smoother and more efficient block processing experience, with reduced latency and improved throughput.

Nethermind Mainnet Validator Logs

Changelog

New features

Pectra

Verkle

Optimism

Performance

Bug fixes and stability

Other changes

  • Add a more secure way of estimat...
Read more