github bnb-chain/bsc v1.3.1-beta

latest releases: v1.4.15, v1.4.14, v1.4.13...
10 months ago

We will use version control suffix like: "-alpha", "-beta" to show the status of the release.
For this release: v1.3.1-beta, it means this release is basically fine but validators or node operators would better use it cautiously.

Description

Release v1.3.1-beta is another maintenance release, it mainly has these changes:

  • 1.Support PBSS
  • 2.Performance Improvement, it reduced the validation cost dramatically.
  • 3.Dependency upgrade, especially upgrade Golang from v1.19 to v1.20 and several other dependencies.

About PBSS

PBSS stands for: Path-Based-Storage-Scheme, which is used to optimize the MPT trie tree access, to improve its efficiency and also brings the inline state prune. You could refer this post on how it works: Geth Path-Based Storage Model and Newly Inline State Prune

Currently, PBSS is disabled by default, use this new flag to enable it: --state.scheme path
Important
Before use PBSS, you need to make sure your MPT storage in levelDB are already in PBSS format. There are 2 options to get the PBSS storage:

  • 1.Full sync from genesis with the flag: --state.scheme path. // Not recommend, could take 3 months to catch up the latest block.
  • 2.Use the converting tool, refer: #1882. // Recommend, could take ~3 days to complete the MPT convert from HashBased to PBSS.

Another thing worth to note is that in the high-pressure situation of the BSC validator scenario, the nodebuffer disk writing of PBSS will become a performance bottleneck. We have optimized this and made the disk writing operation become asynchronous in the background by using asynnodebuffer.

Compatibility

PBSS will have a new MPT storage scheme, although it is still based the Key/Value database, like LevelDB. HashBased storage could not use PBSS and vice versa.

Changelog

FEATURE

  • #1881 feat: active pbss
  • #1882 cmd/geth: add hbss to pbss convert tool
  • #1916 feat: cherry-pick pbss patch commits from eth repo in v1.13.2
  • #1939 dependency: go version to 1.20 and some dependencies in go.mod
  • #1955 eth, trie/triedb/pathdb: pbss patches
  • #1962 cherry pick pbss patches from go-ethereum

BUGFIX

  • #1923 consensus/parlia: fix nextForkHash in Extra filed of block header
  • #1950 fix: 2 APIs of get receipt related
  • #1951 txpool: fix a potential crash issue in shutdown;
  • #1963 fix: revert trie commited flag after delete statedb mpt cache

IMPROVEMENT

  • #1948 performance: commitTire concurrently
  • #1949 code: remove accountTrieCache and storageTrieCache
  • #1954 trie: keep trie prefetch during validation phase

Assets

Assets Sha256 Checksum
mainnet.zip a7e17cbd8533a5735bca57a03fd7519687a6de6f7484e99bcbf1d50721200716
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux e946aba5a84351081c4c1bff25e374a5b17c89f1437383b0fe989f0498ba1c77
geth_mac 3b3f020716f9b2b2a1967a9e5f4a181ce79c2c5d7bebee08dcd0b0513d144de8
geth_windows 03ccd2728a1810e6e4fb1a4237d507ba622337b65d16414a1b4c504f328a9cf9
geth_linux_arm64 72f69b0e6b79cd5ca97d7b791dd985b2ee4f5db13b359360070649cfda998344

Don't miss a new bsc release

NewReleases is sending notifications on new releases.