github NethermindEth/nethermind 1.19.0
v1.19.0

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

Release notes

Major highlights

  • Significant storage reduction

    ⚠️
    Downgrading from this version to an earlier one is not possible because of the new database format.
    Resync is not required to update to this version. However, you will get the full benefits of disk space optimization only after fresh sync.

  • Faster sync due to the new auto-pivot approach

Details

  • Storage reduction

    v1.18.0 v1.19.0
    Ancient barriers Ancient barriers
    State 166 GB 170 GB 161 GB 161 GB
    Receipts 477 GB 269 GB 152 GB 104 GB
    Blocks 334 GB 222 GB 334 GB 222 GB
    Other ... ... ... ...
    Total 965 GB 678 GB 662 GB 504 GB
  • Receipts DB size reduction

    • Significantly reduced database size by using a different encoding.
      You can’t downgrade from this version without a full db drop and resync. To get the full benefit of the DB size reduction a resync is needed as it will only apply to new receipts. A node will still work fine on 1.19 version without resyncing.
      You can also call the RPC method debug_migrateReceipts(20000000) to rewrite receipts but it only reduces receipt size partially and a resync tends to be faster.
    • Significantly reduced receipt database size by limiting transaction lookup via transaction hash to past year only (similar to Geth). If you need an older lookup, you may keep the old transaction hash index via --Receipts.TxLookupLimit 0.
  • Reduced state DB size by about 5% by not storing commonly occurring patterns.

  • Lowered memory consumption. On the Mainnet, reduces memory usage was reduced by about 1 GB after resync or full pruning.

  • Faster sync due to auto-pivot

    From initialization to snap sync
    v1.17.4 1h 7m 30s
    v1.18.0 28m 22s
    v1.19.0 without auto-pivot 1m 30s
    v1.19.0 with auto-pivot 10s

    State sync will start almost immediately after starting Nethermind. The pivot block will be updated to the one close to the chain head based on the message from the consensus layer. Thus, there’s no need to download a significant amount of the newest blocks before starting state sync.
    By default, auto-pivot functionality in this version will wait for ~15 minutes for CL to send us FCU based on which Pivot will be selected (in the future will be extended). If for any reason FCU will not arrive at Nethermind in that time(no checkpoint sync on the CL side, issue with CL configuration, etc.) you can increase this value by adding the flag --Sync.MaxAttemptsToUpdatePivot=1800 (900 is the default value - 1 attempt = ~1 second, so for 1800 it will try to update the pivot for a total of 30 minutes).

Changelog

Cancun

  • Add JSON-RPC endpoints for EIP-4844, needed to exchange blobs with the consensus layer by @flcl42 in #5558
  • Refactor transaction broadcasting for a needs of EIP-4844 by @marcindsobczak in #5485 #5619
  • Change blob transaction type value to 3 by @flcl42 in #5597

Metrics

Bug fixes and stability

  • Health Checks now will give more useful information about the current syncing status, possible problems during the sync process, and better recognition if a node is healthy by @deffrian in #5630
  • Allow specifying concurrent new connection count and connect timeout by @asdacap in #5676
  • Fix/transactionhash not threadsafe by @asdacap in #5634
  • Use Environment.TickCount64 rather than StopWatch.GetTimestamp by @benaadams in #5575
  • Zero total difficulty in FindBlock by @deffrian in #5581
  • Modernise C# by @benaadams in #5607
  • Set pivot to null if snap and fast sync are disabled by @deffrian in #5454
  • Fix negative blockNumber exception by @deffrian in #5609
  • Shouldn't Wait() on timer threads by @benaadams in #5497
  • Allow specifying local ip. And use any by default instead of loopback. by @asdacap in #5635
  • Add config for eth_getLogs max block depth by @asdacap in #5652
  • Fix eth capabilities for archive nodes by @marcindsobczak in #5655
  • Fix misplaced arguments by @deffrian in #5668

Logging

Performance

Other changes

New Contributors

Full Changelog: 1.18.0...1.19.0-rc

Don't miss a new nethermind release

NewReleases is sending notifications on new releases.