github NethermindEth/nethermind 1.20.0
v1.20.0

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

Release notes

Major highlights

  • Logs readability improvements. Now with color support, improved log organization, and the prominent display of vital information related to block production, it's easier than ever to have a comprehensive understanding of the current head of the chain and all necessary details:

    Break down of new logs:

    Untitled (8)

    • JsonRPC logs are turned off by default.
    • Users of older versions of Windows may need to set registry entry [HKEY_CURRENT_USER\Console\VirtualTerminalLevel] to DWORD 1 to enable colors if using cmd. If colors are too dark they can be adjusted in your terminal color settings.
  • Boosted block processing priority to improve attestation rates during sync

  • Improvements in sync (faster Snap Sync, Old Bodies and Old Receipts) + reduced SSD writes requirement

  • Full Pruning improvements (better threads management, free disk space check for full pruning, pruning time reduced etc).

  • This is the Shapella-ready release for the upcoming hard-fork on Gnosis!
    The Gnosis Shapella hard-fork is scheduled at 11:34:20 AM UTC on August 1, 2023.

Changelog

Gnosis

Cancun

Bug fixes and stability

  • Improve peer discovery and connectivity by @asdacap in #5846
  • Update DotNetty and RocksDB packages (fix issue with installation of Homebrew on MacOS AMD machines) by @rubo in #5883
  • Remove v of non-legacy tx signature from RPC response (#5927) by @rubo in #5927
  • Safety check for full pruning by @deffrian in #5550
    Example usage:
    Now the client will check available disk space to ensure that machine is capable to successfully execute full pruning. To disable this feature set --Pruning.AvailableSpaceCheckEnabled=false
  • Don’t hide precompile contract exception by @asdacap in #5679
  • Fixed pivot-related edge case that could lead to node corruption by @MarekM25 in #5724
  • Copy timestamp from json by @deffrian in #5731
  • Fix stuck state from period offline by @benaadams in #5710
  • Fix point evaluation precompile by @deffrian in #5739
  • Fixed eip2537 activation by @MarekM25 in #5824
  • Quick fix for FullPruner by @marcindsobczak in #5809
  • Bugfix - exchangeCapabilites based on ChainSpec by @MarekM25 in #5801
  • Fix estimate gas by @deffrian in #5800
  • Fix gas fees accounting in TransactionProcessor.Trace by @deffrian in #5743
  • Fix KeccaksIterator not working when some keccak zero prefix is not i… by @asdacap in #5780
  • Fixed fail on precompile dll import error by @Demuirgos in #5725.
  • MaxDegreeOfParallelism defaults for full pruning by @MarekM25 in #5662
    • Introduced few more logs to better navigate through Full pruning process.
    • Revised parameters for --Pruning.FullPruningMaxDegreeOfParallelism parameter
      • -1 - number of logical processors
      • 0 - (DEFAULT) 25% of logical processors. This would reduce overhead of hardware and will give better results of attestations during that process.
      • 1 - In this example, 1 logical processor will be used. Set any value higher than 0
    • Revised parameter --Pruning.FullPruningMemoryBudgetMb and changed the default to 4000 MB

Logging

Performance

  • Boost Block Processor priority to improve attestations during syncing by @benaadams in #5764
  • Apply cache miss hint which improves full pruning perf by @asdacap in #5723
  • Improve db priorities which improves snap sync perf by @asdacap in #5722
  • Apply auto tune to compressed db by @asdacap in #5771
  • Perf/valuekeccak snap code by @asdacap in #5689
  • Optimise Account access and contract detection patterns in Evm by @benaadams in #5646
  • Feature/disable WAL flag which will reduce SSD write requirements during SnapSync phase by @asdacap in #5702
  • Perf/keccak with valuekeccak which results with reduced memory and CPU usage by @asdacap in #5715
  • Perf/faster block load for receipt by @asdacap in #5708
  • Reduce exceptions in Evm by @benaadams in #5727
  • Keccaks: Skip unneeded array allocations by @benaadams in #5735
  • Less contention for OldReceipts and OldBodies by @benaadams in #5737
  • Add option to have multiple network processing thread by @asdacap in #5749
    Example usage:
    In case internet speed is higher than 500Mbps, there is option to set flag --Network.ProcessingThreadCount 32 which may reduce Old Bodies sync phase time
  • Less aggressive peer discovery by @benaadams in #5747
  • Reuse batch Dictionary and skip empty batches by @benaadams in #5802
  • Don't add Keccaks during cache pruning by @benaadams in #5781
  • Optimize Snap sync + Sort DB Batches by @benaadams in #5789
  • Old Bodies sync performance improvement with blobfiles by @asdacap in #5785
  • Add fast test for balance < tx.Value + gas by @benaadams in #5783
  • Remove from ConcurrentDict directly rather than building secondary list by @benaadams in #5779
  • Improve peering management strategy which results with faster sync time by @asdacap in #5772
  • Refactor/Split dispatcher and downloader by @asdacap in #5778
  • Reduce datetime calls in peer discovery by factor of 100 by @benaadams in #5751
  • More efficient EvmPooledMemory by @benaadams in #5752

Other changes

New Contributors

Full Changelog: 1.19.3...1.20.0

Don't miss a new nethermind release

NewReleases is sending notifications on new releases.