v1.3.1-beta
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 |