Skip to content

v1.16.0

Compare
Choose a tag to compare
@github-actions github-actions released this 19 Jan 21:01

⚠️ WARNING ⚠️
We found out that default value for --JsonRpc.MaxBatchSize was too low, so we decided to release a new version 1.16.1.
Please use fixed version for Your nodes.

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 100.
    • --JsonRpc.MaxBatchResponseBodySize - Limits max response body size when using batch requests. Subsequent requests are trimmed with an error response. The default value is 30MB.
  • 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.