Skip to content

v1.28.0

Compare
Choose a tag to compare
@kamilchodola kamilchodola released this 15 Aug 13:38

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

Full Changelog: 1.27.1...1.28.0