v1.1.2-rc.5
1.1.2-rc.5 is an optimization release. Improvements include batched genesis blocks processing, configurable DBs management, parallel EVM logs search and optimizations in p2p protocol.
Depending on hardware, it can achieve approximately ~1.3x improvement for events/blocks processing, ~3x improvement for genesis file processing (except for archive genesis files), ~5x improvement for logs search.
There are two migration options for upgrading to 1.1.2-rc.5:
- Preserving the existing legacy DBs layout:
--db.migration.mode reformat --db.preset legacy-ldb
. This option is instant but will leave out some of the performance improvements for blocks/events processing. - Rebuilding DBs according to a new layout:
--db.migration.mode rebuild --db.preset X
, where X is a selected DBs layout. Migration will take a lot of time - for an NVMe SSD drive, the number of hours would be roughlydatadir size in GB
divided by 50GB/hour
. If the remaining disk space is insufficient to store a copy of largest DB in datadir/chaindata, then the migration will take up to 3 times longer, depending on available disk space.
Flags --db.migration.mode
is required only if datadir isn't migrated yet.
There are 2 options for the new --db.preset
flag:
ldb-1
- fastest LevelDB layout (default option).pbl-1
- fastest Pebble layout.
Pebble offers slightly better performance and smaller IO utilization on average, especially with extended cache.
We don't recommend using Pebble presets for validators nor other mission-critical nodes yet.
Patch notes
- Update license to LGPL-3 (#346)
- Logs search optimization (#336)
- Configurable DBs management based on routing rules (including Pebble as an option) (#343, #347, #357, #361)
- DBs batching for genesis processing (#343)
- Additional caches (#343)
- Stricter conditions for starting LLR and txpool syncing (#343)
- Add flag for restricting p2p networking to given IPs and hiding private nodes from public network (#340)
- Fix block processing metrics, remove unused metrics (#348)
- Desyncronize DBs flushes (#350)
- Forbid unlocking accounts with enabled external RPC (#338)
- Incremental genesis (#389)
- Improve DB compaction (#384, #401)
- Add support for
--rpc.evmtimeout
flag (#393)