Releases: bnb-chain/bsc
v1.3.8
Description
v1.3.8 is a maintenance release with several enhancements, here is the summary of these updates that may affect BSC users:
- Golang v1.21 will be needed to compile
- a new tool to inspect the trie storage
- some improvements on P2P module
- some fix ups of RPC, PBSS, PebbleDB, consensus
- improve UX, sync with BSC mainnet by default, no need to init genesis block any more
- LES protocol has been removed, since light node can not work right now.
- increase the SystemTxsGas reservation from 1,500,000 to 5,000,000
Changelog
FEATURE
- #2074 faucet: new faucet client
- #2082 cmd/dbcmd: add inspect trie tool
- #2140 eth/fetcher: allow underpriced transactions in after timeout
- #2115 p2p: no peer reconnect if explicitly disconnected
- #2128 go.mod: upgrade prysm to support built with [email protected]
- #2151 feat: enable NoDial should still dial static nodes
- #2144 p2p: reset disconnect set with magic enode ID
BUGFIX
- #2095 rpc: fix ns/µs mismatch in metrics
- #2083 triedb/pathdb: fix async node buffer diskroot mismatches when journaling
- #2120 ethdb/pebble: cap memory table size as maxMemTableSize-1
- #2107 cmd/geth: fix parse state scheme
- #2121 parlia: fix verifyVoteAttestation when verify a batch of headers
- #2132 core: fix systemcontracts.GenesisHash when run bsc firstly without init
- #2155 cmd, core: resolve scheme from a read-write database and refactor resolveChainFreezerDir func
IMPROVEMENT
- #2099 params/config: remove useless toml tag for hardforks
- #2100 core/genesis: support chapel to run without geth init
- #2101 core: add metrics for bad block
- #2109 cmd/geth: tidy flags for geth command
- #1953 build(deps): bump github.com/docker/docker
- #2086 build(deps): bump golang.org/x/crypto from 0.12.0 to 0.17.0
- #2106 params: use rialto to test builtin network logic
- #2098 cmd, les, tests: remove light client code
- #2114 p2p: add serve metrics
- #2123 p2p, eth: improve logs
- #2116 tests: revive evm test cases
- #2161 code: remove IsEuler check from worker.go
- #2167 improve: increase SystemTxsGas from 1,500,000 to 5,000,000
- #2172 improve: remove sharedpool from miner
- #1332 core/state: no need to prune block if the same
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | e41aea542b14076a491f6301b3eba8cf23d0212f75d860ba442bb83ee71bf066 |
geth_mac | 1fcd0a5ee0e47df7792b639bf876f294f98003bd75da97aea4c803d08f62ed05 |
geth_windows | 912820d83eee5bbdc7936b4db9c1571e44c181435449209e565e3c47d9648b64 |
geth_linux_arm64 | 3faf2832ec2d709d82c6501705ccc410cf613b7a0c9f6b3342d7fb9bcf499795 |
v1.3.7
Important:
For Kepler hard fork, pls use v1.3.7.
Description
Release v1.3.7 is another maintenance release, it mainly fixes an important ChainConfig issue and also provides the new RPC API: eth_getBlockReceipts
, which was supported on Ethereum since Sep 2023.
For detail, pls refer the following change log.
Changelog
FEATURE
- #2067 cmd/geth: add check func to validate state scheme
- #2068 internal/ethapi: implement eth_getBlockReceipts
BUGFIX
- #2035 all: pull snap sync PRs from upstream v1.13.5
- #2072 fix: fix the pebble config of level option
- #2078 core: LoadChainConfig return the predefined config for built-in networks firstly
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | a82951d91bc3ef901086d78ad13cfdfd04df25e88c1a899eb9c25c1608271e86 |
geth_mac | 4def1d34a6c372f10f22e550020bffc1cb9b3bd00e675b2d617b12581f1d7d0c |
geth_windows | c89ecced7331200c446fea01de0410efc4bb64d4d8bb91ea3223b5b2d442438d |
geth_linux_arm64 | 9bda37ff00921b56794f2d35a598b4c1ef31af3e26bf17e74faa3db2e8b8219d |
v1.3.6
Important:
Pls replace v1.3.5
with v1.3.6
for Kepler hard fork, otherwise your node will need to setup the Kepler hard fork timestamp in config.toml, which is inconvenient and not recommended.
Description
Release v1.3.6
is a maintenance release, it mainly solved the default Kepler hard fork timestamp issue(#2058). Its usage is same as v1.3.5
.
Besides this important fix up, there are several other improvement, such as:
- support to disable log rotate by hours
- enable Pebble on 32 bits and OpenBSD
- change default network to BSC
- provide 2 JS tools for simple chain status analyze
- delay FastFinality vote on node start up, to avoid voting again the rule when node switch.
- allow HTTPHost and WSHost flags precede
Changelog
FEATURE
- #2012 cmd, core, ethdb: enable Pebble on 32 bits and OpenBSD
- #2063 log: support to disable log rotate by hours
- #2064 log: limit rotateHours in range [0,23]
BUGFIX
- #2058 params: set default hardfork times
IMPROVEMENT
- #2015 cmd, core, eth: change default network from ETH to BSC
- #2036 cmd/jsutils: add 2 tools get validator version and block txs number
- #2037 core/txpool/legacypool: respect nolocals-setting
- #2042 core/systemcontracts: update CommitUrl for keplerUpgrade
- #2043 tests/truffle: adapt changes in bsc-genesis-contracts
- #2051 core/vote: wait some blocks before voting since mining begin
- #2060 cmd/utils: allow HTTPHost and WSHost flags precede
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | 7d0194cc39f9ba977fcb20f89bf8286bc4bd8cf8bd87405e3befc74c78560e8b |
geth_mac | e5034f92923e56bc4684b9bdcb6b245b22eb10a2bf4efcdbb9529de4c13ffc55 |
geth_windows | 2e8860fd16a782722d4dee04e42ec33f6ac1d83a13f029f8c35e00302382a5fe |
geth_linux_arm64 | f4e62812bcc8c0777a01f9cf4811a4bd7cf7f72f0eba8b43ed05396a6ca2031c |
v1.3.5
Notice
- BSC will gradually switch to PBSS + PebbleDB mode, for BSC node-operators, you will need to know what it is and how can it impact your business.
We created a FAQ on forum page, pls check and welcome to give us your feedback: https://forum.bnbchain.org/t/faq-pbss-pebbledb/2260 - v1.2.x don't support Kepler hard fork, pls rebase your code to v1.3.5 ASAP, we will only support v1.3.5 once Kepler is enabled.
Description
Release v1.3.5 is a hard fork release for BSC.
It will enable the Kepler(Shanghai) hard fork on BSC testnet and mainnet, for details of the hard fork, pls refer: BSC Kepler Hard Fork
The target Kepler/Shanghai hard fork time will be:
- Testnet: Tuesday, December 19, 2023 8:00:00 AM UTC
- Mainnet: Tuesday, January 23, 2024 8:00:00 AM UTC
Instead of block number, BSC hard fork will be based on unix timestamp since Kepler(Shanghai). All validators and full node operators on Testnet/Mainnet should update their node to v1.3.5 before the respective hard fork time.
Kepler BEPs
- BEP-319: Optimize the incentive mechanism of the Fast Finality feature
- Part of Shanghai Upgrade:
a.BEP-216: Implement EIP-3855 PUSH0 instruction
b.BEP-217: Implement EIP3860 Limit and meter initcode
c. BEP-311: Warm COINBASE
d.BEP-312: Announce EIP-6049 Deprecate SELFDESTRUCT
Changelog
FEATURE
BUGFIX
- #1964 consensus/parlia: hardfork block can be epoch block
- #1979 fix: upgrade pebble and improve config
- #1980 internal/ethapi: fix null effectiveGasPrice in GetTransactionReceipt
IMPROVEMENT
- #1977 doc: add instructions for starting fullnode with pbss
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | 7e1e16f2afbb038d28db407c098fe6fc60d651e1fb5829117896f2b342187f01 |
geth_mac | 01a7c3d8977831ed74143adf56d12d8d15a77d16d7fb6e7dc63fbde1ef18aa86 |
geth_windows | 05d3fe6ac6b4d66525781bcc77d9c0a5fd360394c4ad26d0d3a10c9827af5150 |
geth_linux_arm64 | 54067e5d224d0ac2d5cd7201e9e88d3b0addaae45cdde23c290f4c6e4ab3f0e7 |
v1.3.4
Attention
If your node meet the following 2 condition and it failed to sync after upgrade to v1.3.4 or v1.2.15, you may need to download the fastnode snapshot and sync again: https://github.com/48Club/bsc-snapshots.
- running fast node(--tries-verify-mode=none)
- did not upgrade to v1.3.4 or v1.2.15 before the Hertzfix hard fork, 07th Dec ~8am UTC
Refer: #2046
Description
This is a bugfix hard fork release named: Hertzfix
, check About The HertzFix
Hardfork will be enabled:
- Testnet: will be enabled at around 6am UTC, 05th Dec 2023.
https://testnet.bscscan.com/block/countdown/35682300 - Mainnet: will be enabled at around 8am UTC, 07th Dec 2023.
https://bscscan.com/block/countdown/34140700
All BSC node operators will be required to upgrade their node, depending on the current version that you are using:
- If you are using v1.2.x BSC, pls upgrade to v1.2.15
- If you are using v1.3.x BSC, pls upgrade to v1.3.4
Attention
Since v1.3.3, the flags --txlookuplimit
has been abandoned and replaced by --history.transactions
. Make sure you no longer use --txlookuplimit, otherwise the node will crash.
Changelog
BUGFIX
- fix: remove pipecommit in miner
- add a hard fork: Hertzfix
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | eca561863b1db895a7ccc7f041c19f98ac75aa16aeeafacffd738582d4bbc296 |
geth_mac | c29714a61eadbf98a93761707e56913cea3494e61c26b01bd08884e66e76d8c5 |
geth_windows | 03f67e8fb3fd504f34ac9f6a72d63a4788d31cd96b95a73e03c336bb40fd5ec7 |
geth_linux_arm64 | 6c13fb89bf9d2bb604c0c333e8c84e2e6e015a4aa1dd6e74942aca3e98996cd9 |
v1.2.15
Description
This is a bugfix hard fork release named: Hertzfix
, we will reveal more detail later.
Hardfork will be enabled:
- Testnet: will be enabled at around 6am UTC, 05th Dec 2023.
https://testnet.bscscan.com/block/countdown/35682300 - Mainnet: will be enabled at around 8am UTC, 07th Dec 2023.
https://bscscan.com/block/countdown/34140700
All BSC node operators will be required to upgrade their node, depending on the current version that you are using:
- If you are using v1.2.x BSC, pls upgrade to v1.2.15
- If you are using v1.3.x BSC, pls upgrade to v1.3.4
Changelog
BUGFIX
- fix: remove pipecommit in miner
- add a hard fork: Hertzfix
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | a0e2e4362506e7711a3de88ec65d5da9d64400af2b4cd9a2049d7acbebbf4edf |
geth_mac | 19e005f5743f60754c51b39d6b0fc3407cdbdaeb10909c816739233e9f24060c |
geth_windows | 8e6eb8d4c0454716ce6aaf4756b3a9b3c3f0e31b3fab202ec01b47d4ce4f6079 |
geth_linux_arm64 | 0048079319c9f8f9b1f6283579a6a6971978b7e9fcda20d4d99a7038aaa17083 |
v1.3.3(Deprecated)
Changelog
Notice:
We got feedback from community that they can not start their node with v1.3.2 based on the snapshot provided by 48Club, the issue was already solved and code has been merged to develop.
This release is mainly to make it easier for these 48Club snapshot users.
And also --txlookuplimit
was abandoned officially since v1.3.3, replaced by flag: --history.transactions
IMPROVEMENT
- #2000 cmd/utils: exit process if txlookuplimit flag is set
BUGFIX
- #1986 fix(cmd): check pruneancient when creating db
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | e41bcc41e49a9045f33c87784a7af7c256ef078dfb32c27aa9fa152e1ef18676 |
geth_mac | 3374039899e69da504eb37fa57b860b5bdddd5b302ef45e8bdb2b589cadb1b05 |
geth_windows | 54edb0c7377138a4be7d7975a3fa4e4446730da8c811f7923549b4aadeaad5ae |
geth_linux_arm64 | 4d701fe5e45aa0b781c130983e9c3217ec1592cdf63493bfb8f0d66f0e68d10b |
v1.3.2(Deprecated)
Changelog
Attention:
Since v1.3.1, the flags --txlookuplimit
has been replaced by --history.transactions
. Make sure you no longer use --txlookuplimit
, otherwise, could have performance issue.
BUGFIX
fix: remove sharedPool
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | cf2fd66751f1a5874cc3076410c6dc3bc2104c91da28011252fe971d3ef31f7b |
geth_mac | 6d66bca0d9ecc8d2caf5472566be712a8ab27114cc47ab9d2073120bdafb21be |
geth_windows | 8474972e577b2a4e1986f7f0e9a04a6665b2a4958980b2b64c261167c485393c |
geth_linux_arm64 | 141afece7bf045a35b2d7acbf48be93b0e146da1c54ef4c72e080ac86b7ba5fa |
v1.2.14(Deprecated)
Changelog
BUGFIX
fix: remove sharedPool
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | aeeae3392bd51af57fb1e2eddeefff7e84d58a37f87513495348d82deee5824f |
testnet.zip | bcb79b8731c50ddaa3a5a2e3e92afa4f04b0c04c72b6b37b8a69ecd776304f15 |
geth_linux | 5b06ded57f1bc033feedae8b07500c2c3b49f4f0e75688a1dca4638229ab63fb |
geth_mac | f58bcc3805728e9df3b2a9c89f403187da2c6e722d92a98125b1371fa8746783 |
geth_windows | 00b8d018aa681ad91795f0d5a13afd6bfac0b7adbb00872ea5fdf71b6b317fcb |
geth_linux_arm64 | c3a9cac849620cf59b91b257dd51651ed9d65360dd4baac1d97715a1173fa1ad |
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 |