Skip to content

Releases: bnb-chain/bsc

v1.3.1-beta

10 Nov 11:48
1dca486
Compare
Choose a tag to compare

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

v1.2.13

03 Nov 02:49
4f82f18
Compare
Choose a tag to compare

Release v1.2.13 is a maintenance release.
It is based on v1.2.12 with only 2 PRs: one is for performance enhancement, the other one is to fix 2 RPC APIs.
It does not contain the large code changes of v1.3.0, so it could be more reliable.

v1.2.13 has great performance improvement to calculate the root hash of some big contracts. Validator and full node operators are suggested to upgrade to this version.

Changelog

IMPROVEMENT

  • #1954 performance: keep trie prefetch during validation phase

BUGFIX

Assets

Assets Sha256 Checksum
mainnet.zip a7e17cbd8533a5735bca57a03fd7519687a6de6f7484e99bcbf1d50721200716
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux 25d8dc6a863409446f1183af18b337859976d6578f98354e3b81c2027fcd2b4d
geth_mac 311563a18be604187f94b993b3a6d7074eb4f9255739861148492fa494a8dd26
geth_windows d5a8fd49087701103d48a837dd23aea1d5d9e586788b9402c325bec20899053b
geth_linux_arm64 53c0c3e883b84619e9a87666587e023bbc0a8981c67c50e0e9ffd07bcb2d1b36

v1.3.0

12 Oct 03:06
b86459a
Compare
Choose a tag to compare
v1.3.0 Pre-release
Pre-release

Attention

Do not use this version on critical business!!!

This is a maintenance release with huge code changes for upstream catch up.
Although many tests have been done before release, there could still have many potential bugs and need more time to verify its reliability.
It's better to use this version cautiously and it is not recommended to use it on critical business. User can help try it out on some none critical environment and would be appreciated to report issues that you found.
We have already found some performance decline in this release and we will improve it in the following releases.

Usage Changes

** OptionUltraLightFraction & Noverify are no longer supported and should be removed from config.toml
** Options of [Eth.Ethash] are no longer supported and should be removed from config.toml
** Validators need to specify the etherbase address by add this argument on node start up: --miner.etherbase <your coinbase addr>

Changelog

RPC

Flag

GraphQL

Client

Tracer

Command

Read more

v1.2.12

11 Sep 09:57
bb6bdc0
Compare
Choose a tag to compare

Description

Release v1.2.12 is a maintenance release for BSC mainnet and testnet.
It mainly support BootNodes on BSC mainnet, it would be easier for user to sync with the BSC network. User no longer need to setup the StaticNodes in config.toml any more, just leave empty and make sure delete the BootstrapNodes field in config.toml, may check the mainnet.zip of this release.
And it also fixed three bugs to make the node more reliable, not critical bugs, pls check the change log for detail.

You may refer this post on how to use BootNodes: https://forum.bnbchain.org/t/try-bootnodes-after-bsc-release-v1-2-12/1998

Changelog

FEATURE

  • #1852 discov: add hardcoded bootnodes

BUGFIX

  • #1844 crypto: Update BLST to v0.3.11
  • #1854 fetcher: no import blocks before or equal to the finalized height
  • #1855 eth/tracers: trace system tx should add intrinsicGas

IMPROVEMENT

  • #1839 Update init-network command
  • #1858 vote: check consensus key match vote key before voting

Assets

Assets Sha256 Checksum
mainnet.zip 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux fc51b3c67893effa5236cf707495286257bdfa98a024b166c3c540d3b83bb0c7
geth_mac 2d6b016ee594a4b6b891821221ed4a117a95276fee50f9963862b6cf2728954f
geth_windows 07f32d1ef3e591273818eb129b4880a3769949dc323b2d43b852b4467e8f149b
geth_linux_arm64 870daa20e25c088748d6f290fb1244ae4bf0a86d9b22707507bf9f63cfd5e914

v1.2.11

23 Aug 03:42
7a19cd2
Compare
Choose a tag to compare

This is another maintenance release for BSC mainnet and testnet.
It mainly fixed a sync bug, for peers that are lagging behind too much blocks(>90,000), it may not be able to sync.

And it also provides a new option to disable attestation: --disablevoteattestation on some special cases and the option --disablebscprotocol was abandoned.

Changelog

FEATURE

  • #1797 client: add FinalizedHeader/Block to use the fast finality
  • #1805 vote: remove DisableBscProtocol and add flag to skip votes assmebling

BUGFIX

  • #1829 fix: lagging nodes failed to sync

Assets

Assets Sha256 Checksum
mainnet.zip 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux 5829efd0f866ec2726c260f4c840bcfecb9faff36257a0ff62b0f5a50346a75d
geth_mac 3f22170b5e2f3eefcea45f7709c800a291c294bd7e38656aac7254629db83cdb
geth_windows 480b7a3bc48712d34424cef8dddd1a95a0e16793fea762579b7fdb136cef3c53
geth_linux_arm64 714a0160dc17963343002eb9dfa8a3ea9b31db63aac534899d88deec3ad9c221

v1.2.10

03 Aug 04:11
2b83693
Compare
Choose a tag to compare

Description

Release v1.2.10 is a maintenance release for BSC mainnet and testnet.
It fixed one bug for bootnode and two bugs for FastFinality feature. And it did some enhancement to FastFinality feature, like less log, attestation check, new RPC API and a tool to decode the BlockHeader.extra.

Validators are encouraged to use this version, other full node operators can skip this version if they have already upgraded to v1.2.9

Changelog

FEATURE

  • #1780 log: reduce logs when receiving too much votes from a peer
  • #1788 metrics: add txpool config into metrics server
  • #1789 rpc: add GetFinalizedHeader/Block to simplify using the fast finality feature
  • #1791 finality: add more check to ensure result of assembleVoteAttestation
  • #1795 tool: add a tool extradump to parse extra data after luban

BUGFIX

  • #1773 discov: do not filter out bootnodes
  • #1778 vote: backup validator sync votes from corresponding mining validator
  • #1784 fix: exclude same votes when doing malicious voting check

Assets

Assets Sha256 Checksum
mainnet.zip 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux 01c226683d0aa6ff1523d159c4c7bc8edfa8b382b97d7cd9909ac82c5581fc3a
geth_mac b5432157db60a2360e1b5453c9c77a516ee484bca005ac02fa0fd4f05780a91f
geth_windows 2f7a011118c394079d1c389b50561c780eb876fafe3d6900d3b4cd4c7234bfdb
geth_linux_arm64 ab3a07fc9153116a26d802c63e411d58adc2b681d50069b854f89dc6b1088465

v1.2.9

21 Jul 09:51
34b065a
Compare
Choose a tag to compare

Attention

Important: For validators, please follow the steps to setup your vote key to enable fast finality: How To Set Up The Vote Key

Description

It is a hard-fork release for BSC mainnet.
It sets up the hard fork height for both Plato and Hertz(Berlin,London).
The two hard forks have been running on Testnet for a while and their hard fork height are close, so we decide to put them within a single release to save the upgrade effort.
For the detail changes of the two hard fork, pls refer: https://forum.bnbchain.org/t/bnb-chain-upgrades-mainnet/936

The validators and full node operators on mainnet should switch their software version to v1.2.9 before Aug-10th-2023.

Plato

The mainnet is expected to have a scheduled hardfork upgrade named Plato at block height 30,720,096. The current block generation speed forecasts this to occur around Aug-10th-2023.
The Plato hardfork includes 1 BEPs:

Hertz

The mainnet is expected to have 3 scheduled hardfork upgrades named (Hertz, London, Berlin) at same block height 31,302,048. The current block generation speed forecasts this to occur around Aug-30th-2023.

The Hertz hardfork will port some of London&Berlin upgrades from Ethereum to BSC for compatiblity. But due to the difference between the 2 networks, there would inevitably has difference in implementation, especially the difference in EIP-1559, the BaseFee will be zero on BSC, so this hard fork will neither introduce new burn mechanism nor the concept of GasTip. In short words, it only provides the interface, but actually no change to the current BSC Gas mechanism.

Here is the list of Hertz upgrade:

There are many changes with these BEPs, DApp developers & users needs to make sure they clearly understand these changes and the potential impact to their business.

  • New transaction types are supported, i.e. AccessList & DynamicFee(1559), by BEP-229, BEP-231, BEP-226
  • The gas metering mechanism has been changed, by BEP-225, BEP-230, BEP-212;
  • New EVM opcode(BASEFEE) is supported, by BEP-227
  • Prevent deploying contracts starting with 0xEF, by BEP-228

Change Log

FEATURE

  • #1735 log: added option to rotate logs based on number of hours with a maximum of 24
  • #1727 discov: increase bucket size for bootnodes
  • #1739 eth/tracers: add multiplexing tracer
  • #1775 upgrade: several hardfork block height on mainnet: Plato, Hertz(Berlin, London)

BUGFIX

  • #1741 fix: defend ddos voting attack with other mini fix according to audit

IMPROVEMENT

  • #1725 log: uncomment some trace log

Assets

Assets Sha256 Checksum
mainnet.zip 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux fbbf6e6f0abef96cd2cf230afaef1656929e2ee2b78adc901e0dfbecd254b0fc
geth_mac c8837921878b13efe933cf6033609da82f2bd3796cc613e005a2f50c7c9f1e47
geth_windows a19a6863b4158f1797a5eef24bc59f5b0cbe4943f7d35530c4b9b4c2bb187aa5
geth_linux_arm64 6eda77dc7422b79581d14d65e4647a1913818f919fd94dba9feffd5232f3df25

v1.2.8

27 Jun 07:02
fd58e6f
Compare
Choose a tag to compare

v1.2.8 is a maintenance release, it mainly fixes a potential deadlock on FastFinality VotePool and provides 2 other features(FastFinality & Web3 API related).

Changelog

FEATURE

  • #1626 eth/filters, ethclient/gethclient: add fullTx option to pending tx filter
  • #1726 feat: support password flag when handling bls keys

BUGFIX

  • #1734 fix: avoid to block the chain when failed to send votes

Assets

Assets Sha256 Checksum
mainnet.zip 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1
testnet.zip b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9
geth_linux 903f2dc9a4621de36c24eebdad0e152443dc01838c60b5fa0ce4160e0465ed2e
geth_mac 8d03b99de532359fe3d695eaa4b6fce3baa35ea158499e990a72e9480cde1164
geth_windows 51ce63c885452bf5899bcbaacd33437592a4dcd891d71da8bf665e7c37c453ad
geth_linux_arm64 4555afd19eb298d082859bd4c58caa4beedfa8b4f4ac6ac0fa27f8b4a23815e6

v1.2.7

20 Jun 12:17
9ed95d8
Compare
Choose a tag to compare

Attention

  • SELFDESTRUCT will no longer be refunded
  • There are 3 hard forks, node operators need to set them up at the same fork height, i.e. BerlinBlock = 31103030, LondonBlock = 31103030, HertzBlock = 31103030

Description

v1.2.7 is a hard-fork release for BSC testnet.

The testnet is expected to have 3 scheduled hardfork upgrades named Hertz, London, Berlin) at same block height 31,103,030. The current block generation speed forecasts this to occur around 29th Jun 2023.
The validators and full node operators on testnet should switch their software version to v1.2.7 before 29th Jun 2023.

The Hertz hardfork will port some of London&Berlin upgrades from Ethereum to BSC for compatiblity. But due to the difference between the 2 networks, there would inevitably has difference in implementation, especially the difference in EIP-1559, the BaseFee will be zero on BSC, so this hard fork will neither introduce new burn mechanism nor the concept of GasTip. In short words, it only provides the interface, but actually no change to the current BSC Gas mechanism.

Here is the list of Hertz upgrade:

There are many changes with these BEPs, DApp developers & users needs to make sure they clearly understand these changes and the potential impact to their business.

  • New transaction types are supported, i.e. AccessList & DynamicFee(1559), by BEP-229, BEP-231, BEP-226
  • The gas metering mechanism has been changed, by BEP-225, BEP-230, BEP-212;
  • New EVM opcode(BASEFEE) is supported, by BEP-227
  • Prevent deploying contracts starting with 0xEF, by BEP-228

Changelog

FEATURE

  • #1697 upgrade: block height of Hertz(London&Berlin) on testnet
  • #1686 eip3529tests: refactor tests
  • #1676 EIP-3529 (BEP-212) Unit tests for Parlia Config
  • #1660 feat: add a tool for submitting evidence of maliciousvoting
  • #1623 P2P: try to limit the connection number per IP address
  • #1608 feature: Enable Berlin EIPs
  • #1597 feature: add malicious vote monitor
  • #1422 core: port several London EIPs on BSC
  • #1717 feat: support creating a bls keystore from a specified private key
  • #1720 metrics: add counter for voting status of whole network

IMPROVEMENT

  • #1662 consensus, core/rawdb, miner: downgrade logs
  • #1654 config: use default fork config if not specified in config.toml
  • #1642 readme: update the disk requirement to 2.5TB
  • #1621 upgrade: avoid to modify RialtoGenesisHash when testing in rialtoNet

BUGFIX

  • #1682 fix: set the signer of parlia to the most permissive one
  • #1681 fix: not double GasLimit of block upon London upgrade
  • #1679 fix: check integer overflow when decode crosschain payload
  • #1671 fix: voting can only be enabled when mining
  • #1663 fix: ungraceful shutdown caused by malicious Vote Monitor
  • #1651 fix: remove naturally finality
  • #1641 fix: support getFilterChanges after NewFinalizedHeaderFilter
  • #1645 lightclient: fix validator set change

Assets

Assets Sha256 Checksum
mainnet.zip 13563cb06b18accd4b3b9df43ca94ffcef56992c56dc479c9bfe4a74ab72caba
testnet.zip 9a81824dfdfae976edceee646691fb8ed262f4d5adbff74f444770da5e2793e5
geth_linux 798ffe167895d2998e2e4a482a5c0364032fa917f53b6e8446f3f2ccad00ce4e
geth_mac bf0d477989790aa137155146e072c02e928bd1526ee1b5ed8721b10e9ed6f79e
geth_windows c2015fafbd83dc5b1c1374fce1b667bcb20c52aefea299c9ba2dcadde9d152b5
geth_linux_arm64 a7e3a7db7ffa4eb464ae850305ba9f5b9a44277ea34c1cefe33034c454332a29

v1.2.6

20 Jun 06:17
cf64a04
Compare
Choose a tag to compare
v1.2.6 Pre-release
Pre-release

Abandoned.
It will be replaced by v1.2.7, since it missed a desired change.