github bnb-chain/bsc v1.1.12

latest releases: v1.4.15, v1.4.14, v1.4.13...
2 years ago

Description

Release v1.1.12 is a performance release. the following two features are introduced in this release.

  1. Separate Processing and State Verification.
  2. 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

  1. --yolov3
  2. --vm.ewasm
  3. --vm.evm
  4. --rpc (use --http)
  5. --rpcaddr (use --http.addr)
  6. --rpccorsdomain (use --http.port)
  7. --rpcvhosts(use --http.corsdomain)
  8. --rpcapi (use --http.vhosts)

Added

  1. --dev.gaslimit Initial block gas limit
  2. --sepolia Sepolia network: pre-configured proof-of-work test network
  3. --override.arrowglacier Manually specify Arrow Glacier fork-block, overriding the bundled setting
  4. --override.terminaltotaldifficulty Manually specify TerminalTotalDifficulty, overriding the bundled setting
  5. --rpc.evmtimeout Sets a timeout used for eth_call (0=infinite)
  6. --gpo.ignoreprice Gas price below which gpo will ignore transactions
  7. --metrics.influxdbv2 Enable metrics export/push to an external InfluxDB v2 database
  8. --metrics.influxdb.token Token to authorize access to the database (v2 only)
  9. --metrics.influxdb.bucket InfluxDB bucket name to push reported metrics to (v2 only)
  10. --metrics.influxdb.organization InfluxDB organization name (v2 only)

Changed

  1. --syncemode removed the fast mode

Changelog

FEATURE

  • #862 Pruning AncientDB inline at runtime
  • #926 Separate Processing and State Verification on BSC

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

Docker Images

Assets Sha256 Checksum
mainnet.zip 6dd6976b9c8d407e95ed99cd46f7badfa410f3f374ea3e360defab0f63fa3ed2
testnet.zip c9c20ceb98911cc3fa7ceda3e5efbf17a3791fdc46f2f6ab13af7ac77f1a65eb
geth_linux 4811b0959a1bbd87b97b2d894550561f4296c29630c1d6213398f6955ea0a6e5
geth_mac 15d0c3c94c2ab085f241c8c50b40d786f8f8e63f9307e7e7b1985c97729fb360
geth_windows 74d605f96cba651a272384440128746efc87c341b4c220db00563fa0f2da5964

Don't miss a new bsc release

NewReleases is sending notifications on new releases.