Description
Release v1.1.12 is a performance release. the following two features are introduced in this release.
Separate Processing and State Verification.
Pruning AncientDB inline at runtime.
Fast Node
Fast Node is introduced in #926, it is a new syncing protocol to lower the hardware requirement and improve the syncing efficiency.
This release introduces two types of nodes to make full use of different storage, one is called fast node, and the other is called verify node. The fast node will do block processing with a flattened key-value DB, it will do all verification against blocks except the state root. The verify node receives diffhash
from the fast node and then responds MPT root to assist with the state root verification. If you want to learn more about this feature, please refer to the docs.
It turns out that the fast node can slow down the storage growth by 60%~90% according to different settings and increase the syncing efficiency by about 30%. We encourage node operators who do not care about 100% state consistency to enable fast nodes by appending --tries-verify-mode none
to the node command.
Note: fast node can never revert to full node.
Pruning AncientDB inline at runtime
A new flag is introduced to prune ancient undesired block data at runtime, it will discard block
, receipt
, header
in the ancient DB to save space.
Example: geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 --syncmode full --pruneancient
.
Note:
- once turned on, the ancient data will not be recovered again
- only under ‘--syncmode full’ mode supports --pruneancient flag
Command Changes
After merging the Go-Ethereum v1.10.15, some Flag parameters have changed, please refer to the following list.
Removed
--yolov3
--vm.ewasm
--vm.evm
--rpc
(use --http)--rpcaddr
(use --http.addr)--rpccorsdomain
(use --http.port)--rpcvhosts
(use --http.corsdomain)--rpcapi
(use --http.vhosts)
Added
--dev.gaslimit
Initial block gas limit--sepolia
Sepolia network: pre-configured proof-of-work test network--override.arrowglacier
Manually specify Arrow Glacier fork-block, overriding the bundled setting--override.terminaltotaldifficulty
Manually specify TerminalTotalDifficulty, overriding the bundled setting--rpc.evmtimeout
Sets a timeout used for eth_call (0=infinite)--gpo.ignoreprice
Gas price below which gpo will ignore transactions--metrics.influxdbv2
Enable metrics export/push to an external InfluxDB v2 database--metrics.influxdb.token
Token to authorize access to the database (v2 only)--metrics.influxdb.bucket
InfluxDB bucket name to push reported metrics to (v2 only)--metrics.influxdb.organization
InfluxDB organization name (v2 only)
Changed
--syncemode
removed thefast
mode
Changelog
FEATURE
IMPROVEMENT
- #816 merge go-ethereum v1.10.15
- #950 code optimizations for state prefetcher
- #972 redesign triePrefetcher to make it thread safe
- #998 update dockerfile with a few enhancement
- #1015 disable noisy logs since system transaction will cause gas capping
BUGFIX
- #932 fix account root was not set correctly when committing mpt during pipeline commit
- #953 correct logic for eip check of NewEVMInterpreter
- #958 define DiscReason as uint8
- #959 update some packages' version
- #983 fix nil pointer issue when stopping mining new block
- #1002 Fix pipecommit active statedb
- #1005 freezer batch compatible offline prunblock command
- #1007 missing contract upgrades and incorrect behavior when miners enable pipecommit
- #1009 resolve the concurrent cache read and write issue for fast node
- #1011 Incorrect merkle root issue when enabling pipecommit with miner
- #1013 tools broken because of writting metadata when open a readyonly db
- #1014 fast node can not recover from force kill or panic
- #1019 memory leak issue with diff protocol
- #1020 remove diffhash patch introduced from separate node
- #1024 verify node is not treated as verify node
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 6dd6976b9c8d407e95ed99cd46f7badfa410f3f374ea3e360defab0f63fa3ed2 |
testnet.zip | c9c20ceb98911cc3fa7ceda3e5efbf17a3791fdc46f2f6ab13af7ac77f1a65eb |
geth_linux | 4811b0959a1bbd87b97b2d894550561f4296c29630c1d6213398f6955ea0a6e5 |
geth_mac | 15d0c3c94c2ab085f241c8c50b40d786f8f8e63f9307e7e7b1985c97729fb360 |
geth_windows | 74d605f96cba651a272384440128746efc87c341b4c220db00563fa0f2da5964 |