github NethermindEth/nethermind 1.16.1
v1.16.1

latest releases: 1.29.1, 1.29.0, 1.29.0-rc...
22 months ago

Release notes

This release brings important stability fixes and performance improvements, including:

  • Background pruning: Reduces node latency spikes when processing blocks, leading to better attestation performance on Validator nodes
  • Health check: Users will now be notified about low disk space
  • Memory and performance: Performance boost and memory consumption reduction due to upgrade runtime and database engine

JSON-RPC

  • Improved JsonRPC batch calls. Batch results will now be streamed. This reduces memory usage during batched calls. [#5134]
    New flags are introduced to be able to limit batched calls on node:

    • --JsonRpc.MaxBatchSize - Limits batch size for batched JSON-RPC call. The default value is 1000.
    • --JsonRpc.MaxBatchResponseBodySize - Limits max response body size when using batch requests. Subsequent requests are trimmed
      with an error response. The default value is 30MB.
      ⚠️ IMPORTANT
      We noticed that this limit is enough for most of the CL clients but there are still some unexpected behaviors with Prysm client.
      Working together with Prysm Developers to fix this since issue needs to be fixed on both sides, but there is simple workaround for this problem.
      If you will notice in Your Prysm logs warning like:
      Unable to cache headers for execution client votes" error="json: cannot unmarshal object into Go value of type []rpc.jsonrpcMessage
      restart Nethermind node using --JsonRpc.MaxBatchSize with value set to 10000.
  • New engine_getPayloadBodiesByRange Engine API endpoint as a part of Shanghai hardfork. Consensus clients can use this endpoint for better performance instead of eth_getBlockByNumber [#4939]

  • Fixed logs ordering of eth_getLogs when blooms are disabled [#5033]

  • Fixed the trace_transaction not to contain precompile sub-traces [#4410]

Sync & Networking

  • Improved state sync performance with better parallelism. This results in performance improvement -- observed state sync executes a few times faster than before. [#4921]
  • Fixed issue causing a snap sync stage on Sepolia to hang on 0% for a long time [#5059]
  • Fixed edge case when sync is stuck and unable to proceed further until the node was restarted [#5055]

Pruning

  • In previous versions, pruning blocks block processing which can lead to increased latency from time to time on the block. In this version, pruning is moved to a background thread. This change should reduce block processing latency spikes leading to better attestation performance on Validator nodes. [#4626]

Gnosis

  • Renamed xDai to Gnosis. This includes existing chain specs and configuration files. For new nodes recommended option is now -c gnosis. Old -c xdai is still supported. [#5057]

⚠️
If you want to use an existing node with a new name, you need to move the database from the old directory to the one used in the gnosis.cfg. For example, <datadir>/nethermind_db/xdai should be moved to <datadir>/nethermind_db/gnosis.
Same procedure applies for archive nodes, using gnosis_archive.cfg config.

Runtime and database

  • Updated to .NET 7 [#4889]
  • Updated to RocksDB v7.7. Solves issues with syncing on specific ARM CPUs. [#5065]

Health check

Added free disk space checks for the drives configured as DB locations to prevent data corruption due to disks being full. Two configurable thresholds added [#4837]:

  • HealthChecks.LowStorageSpaceWarningThreshold: The percentage of free disk space below which a warning is added to the console as well as to the health checks. The default value is 5 (5% of free space).
  • HealthChecks.LowStorageSpaceShutdownThreshold: The percentage of free disk space below which the client shuts down. The default value is 1 (1% of free space)

Other changes

  • Added logging CPU type at startup [#5016]
  • Disabled color output for CLI [#4785]
  • Added Exosama network support [#5008]
  • Dropped support of obsolete configurations [#5064]
  • Various performance improvements (thank you @benaadams) [#5027] [#5009] [#5030] [#5079]

We'd love to hear from you, so if you encounter an issue or have any feedback, please open an issue or contact us on Discord.

Don't miss a new nethermind release

NewReleases is sending notifications on new releases.