v1.16.0
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 ofeth_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 thegnosis.cfg
. For example,<datadir>/nethermind_db/xdai
should be moved to<datadir>/nethermind_db/gnosis
.
Same procedure applies for archive nodes, usinggnosis_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.