Skip to content

Releases: bnb-chain/bsc

v1.6.6

14 Jan 07:56

Choose a tag to compare

This release ports critical security fixes from go-ethereum v1.16.8, resolving two P2P vulnerabilities.

We have already deployed this version to our internal RPC nodes for verification. We expect to complete the final stability checks and issue a formal community-wide upgrade notification this coming Monday(Jan. 19th).

Upgrade Instructions

From v1.6.x: A simple binary replacement is sufficient.
From v1.5.x: Please refer to the v1.6.5 Release Announcement for specific migration steps.

Changelog

BUGFIX

core/txpool: drop peers on invalid KZG proofs
crypto/ecies: use aes blocksize

Assets

Assets Sha256 Checksum
mainnet.zip 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7
testnet.zip 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7
geth_linux fbdb8ef71be5cb392e689a8d54dea10667feaaa03d2889173263a0dd209877e0
geth_mac 50c1144d2d48c20c5f3f2896e7f4878ef6df26e41910248684de1a6a1b9f8fd7
geth_windows 31f620d87d02d167ae443387ccc92b8c8995786116d4573c50080012d46adf4d
geth_linux_arm64 6ebd4b8fcfc6fe0a141df8d445fccdc2d5b25ea321763cfd59f06a5597ce7105

v1.6.5

19 Dec 02:45
f828b30

Choose a tag to compare

v1.6.5 is a maintenance release that introduces an optional gas limit cap for transactions.

Changelog

FEATURE

#3488 miner: optional transaction gas limit cap

IMPROVEMENT

#3483 feat: remove the handshake from the bsc protocol
#3486 feat: update filtermaps checkpoints

Notice regarding upgrade from v1.5.x to v1.6.5

Snapshot Regeneration

The upgrade will trigger snapshot regeneration. Please expect reduced node performance until this process finishes. On our reference hardware (8-core AMD EPYC 7R13, 32GB RAM, SSD), regeneration took approximately 5 hours.

Log Indexing

v1.6.x introduces a new log indexing mechanism. For v1.6.5, the index is constructed starting from block 71,126,721. This operation consumes significant CPU resources, and the node may appear unresponsive during startup. If you do not need the full index, add the flag --history.logs 576000 to limit indexing to the last 3 days, or disable it entirely using --history.logs.disable.

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7
geth_linux f2ede52daf7a011494d28ff24bfa4c96c8b74e52239a0d1f024190ce9c666f18
geth_mac a3f5c75c29e39e320d46be3be2cf19b85b1b82f333eef8c3ac0f4fdf23c62230
geth_windows 088ecd85fcacd613856d312286f80a7eec359fc25528af558381d4de5bf10fa7
geth_linux_arm64 269af3615bfd0d499d0d4cc52a1834402bd8d0f3d203db8990249c6872b820a7

v1.6.4-feature-BAL7928

18 Dec 02:46

Choose a tag to compare

Pre-release

Description

This is an experimental feature release based on v1.6.4, with binary version: v1.6.102.

This feature release implemented the none consensus based Block-Access-List. It is based on EIP-7928 and using the non-consensus method, which similar to BEP-592
Deviations from EIP-7928:

  • Consensus-level changes were removed, include BAL hash in block header.
  • BALs now transfer only via the block propagation payload (ETH/BSC P2P messages) to help peers import blocks faster.
  • If the BAL-driven parallel execution path fails (missing data, validation mismatch, etc.), the importer falls back to the legacy serial execution pipeline to guarantee correctness, so enabling BAL never jeopardizes block processing.

The feature is disabled by default, to try it, you may add this flag: --experimental.bal.

Kindly note that our current implementation shows an approximate 18.6% performance improvement in average mgas/s within our local test environment. However, the actual benefits are contingent upon the complete upgrade of the entire network to support BAL; otherwise, your node will not receive blocks with BAL, resulting in no performance gain. We believe there is significant potential to further enhance this feature and achieve even greater performance improvements in the future. For more information, pls refer: https://www.bnbchain.org/en/blog/boosting-bnb-smart-chain-performance-with-block-access-list

Change Log

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7
geth_linux 54168bee96720ab3f2db6d3c48485af351220b73944e9f5dc6ffd2e6fe0c5683
geth_mac a3962e6911657488d60724274708fafac2b3deaa5d185663d0326c3109ee664e
geth_windows 30fc067e5e9fddf66a846f2a9ebbf969479e03bf20376aec432c0a532cd49db1
geth_linux_arm64 e8e2e32fb040a7eef1e3fadf5f12e708f354f399f24999a706aff3e013eacb73

v1.6.4

05 Dec 01:52
0f7131f

Choose a tag to compare

v1.6.4 is the release for the BSC Mainnet Fermi hard fork, which is expected to be activated at 2026-01-14 02:30:00 AM UTC. All BSC Mainnet nodes must upgrade to v1.6.4 before the hard fork time. Upgrading from v1.6.3 only requires a binary replacement.

v1.6.4 includes two BEPs, primarily aimed at reducing the block interval from 0.75 seconds to 0.45 seconds:

In addition to the block interval reduction, several other key parameters will be updated.
Please refer to BEP-619: Parameter Changes for details.

Beyond the hard-fork-related changes, this release also includes multiple improvements and bug fixes.
For the full list, please refer to the changelog below.

Changelog

FEATURE

  • #3466 config: update BSC Mainnet hard fork time: Fermi
  • #3454 eth: support fetching commit ID information from extra data

BUGFIX

  • #3448 TxPool: revert transaction lifetime back to 3 hours
  • #3457 cmd/geth: remove support for the multidatabase flag
  • #3467 go.mod: downgrade bls-eth-go-binary to restore Windows compatibility

IMPROVEMENT

  • #3445 eth: improve prefetching by using cached reader
  • #3459 feat: implement auto-unsubscribe for transactionReceipts
  • #3468 metric: add metric for vote count

Notice regarding upgrade from v1.5.x to v1.6.4

Snapshot Regeneration

The upgrade will trigger snapshot regeneration. Please expect reduced node performance until this process finishes. On our reference hardware (8-core AMD EPYC 7R13, 32GB RAM, SSD), regeneration took approximately 5 hours.

Log Indexing

v1.6.x introduces a new log indexing mechanism. For v1.6.4, the index is constructed starting from block 59,484,738. This operation consumes significant CPU resources, and the node may appear unresponsive during startup. If you do not need the full index, add the flag --history.logs 345600 to limit indexing to the last 3 days, or disable it entirely using --history.logs.disable.

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7
geth_linux c02e80e483c73d1e805856f72205a777c03699e4ecb8b1b87c72586d309c4fb6
geth_mac daf11f9591ab6b4666b1b0be8041bfde0c26f2b1cf4aba83f0c9589a197b1fef
geth_windows 4e2f2633c632df9c8d4e90263da331f067b45646f8c98a4f5c364626228a87a5
geth_linux_arm64 45234dca7c564c1b40ef09c4a9321a4eca6d3a98273438cc9c5ed64a14c8bb8b

v1.6.3

06 Nov 09:30
90d4e8e

Choose a tag to compare

Description

v1.6.3 is a maintenance release, which fixes 2 RPC issues and with several enhancements, pls refer change log for detail.

ChangeLog

FEATURE

NA

BUGFIX

#3429 build(deps): bump github.com/consensys/gnark-crypto
#3433 internal/ethapi: fix eth_simulateV1
#3431 eth/tracers: fix crasher in TraceCall with BlockOverrides

IMPROVEMENT

#3436 revert: revert the nano check in parlia
#3435 eth: fix stuck when handleBlockBroadcast

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7
geth_linux 25abae5a3ca0804fb153a2eeaac30fb9dd4713dd5310e4d4f3b023fa2d41fc3a
geth_mac 12a82a56cc4dfb67ba0bbb78af7e3e4a6248f71b5bc3d4b7bb655e04d22723df
geth_windows 3fe0727c6ec217cebbfcb77cbe075454f1251cc62424d26589ff1e0a4ff6f4d7
geth_linux_arm64 df6cbc552a6432ecf3733ba6c38c1d0e7d0856f552ad020be86c9309c217bc17

v1.6.2

31 Oct 06:31
d7e572d

Choose a tag to compare

Description

v1.6.2 is for BSC testnet Fermi hardfork: Fermi. Fermi hard fork is a critical upgrade to further reduce block interval from 750ms to 450ms, so users will have even better experience. Here is the list of Fermi BEPs:

Here is the timeline of BSC Fermi hard fork

  • Testnet: 2025-11-10 02:25:00 AM UTC
  • Mainnet: TBD

Besides the BEPs, v1.6.2 also include several improvements for miner, MEV and performance, and also includes two new features. Here is the description of the two new features:

  • new websocket RPC filter API for transaction receipts. (#3363)
  • new configuration "ProxyedNodeIds" to improve block propagation efficiency.(#3417)

Compatibility

  • flag --light.** was removed, include: --light.egress, --light.ingress, --light.maxpeers, --light.nopruning, --light.nosyncserve, --light.serve

ChangeLog

FEATURE

#3363 websocket: add transactionReceipts for receipts notification
#3367 BEP-619: Short Block Interval Phase Three: 0.45 Seconds
#3368 BEP-590: Extended Voting Rules for Fast Finality Stability
#3374 Implement BEP-592: Non-Consensus Based Block-Level Access List
#3372 core/systemcontracts: define fermiUpgrade
#3390 feat: implement incremental snapshot
#3395 feat: EVM execution opcode level optimization
#3400 consensus/parlia: set kAncestorGenerationDepth to 3 in BEP-590
#3397 consensus/parlia: fix updateAttestation&improve assembleVoteAttestation
#3417 p2p: define ProxyedNodeIds in Config

BUGFIX

#3373 ethapi: reject oversize storage keys before hex decode

IMPROVEMENT

#3388 miner/minerconfig: update config to adapt 100M gaslimit
#3404 miner: validator not inturn backoff before mining
#3407 fix: change lock to read lock in legacy pool
#3415 eth: broadcast votes to evn peers regardless of deltaTdThreshold
#3416 cmd/geth: improve config for sentry nodes when init network
#3419 miner: use latest block as pending block for simplicity
#3426 eth: increase the delta td threshold to broadcast votes

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c
geth_linux 4434ccec0cb7db38766fa240e595e9add00642b36b8bee16fe71e62e8066d209
geth_mac 938d85e262f1642b662874f3f195f2418f96dc43f5095890c01304846e8997b1
geth_windows a935ebdf79a3c51d54c16f43f89477a0b933fbac219be541cfeefc0ff178c0c8
geth_linux_arm64 f4efcdca6d988db53ecd8aab33fe70fc7786aefc80537ba2da4dfa6e767fd275

v1.6.1-beta-feature-ScalableDB

30 Sep 11:44

Choose a tag to compare

Pre-release

Description

This is an experimental feature release based on v1.6.1-beta, with binary version: v1.6.101.

v1.6.1-beta-feature-ScalableDB introduces a multi-database architecture (scalaledb) that divides chaindata into four separate stores which includes BlockDataBase(with meta), TrieDataBase, SnapDataBase and IndexDataBase according to data schema . Scalaledb provides stronger storage scalability. Different DBs can be allocated customized resources and tuned configurations. In particular, databases can compact independently, avoiding interference and improving read performance under heavy I/O.

Run
Run geth from genesis with "multidatabse" flag:
./geth --config config.toml --datadir data-seed init --multidatabase genesis.json

If you run geth from snapshot, you need to use migrate tool to convert an existing snapshot to the scalaledb layout with
./geth -datadir <your-data-dir> db migrate . You can directly start after migration , no additional flags are required if your snapshot has already been migrated.

Performance Test Results:
In large-scale simulated benchmarks, Multi-DB improves Geth block sync performance by ~3.8%. Starting from the same block height, after seven days of syncing, the Multi-DB node was ahead by ~200,000 blocks.

Change Log

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c
geth_linux 38199d57b22f5c87dcd974e9083f3457ff65ff2deb41625ce4fb14f86946effb
geth_mac 3f74cec7974d611266f69a71728f5e3e8727c8566237536cc154ef0a5fb1a363
geth_windows 9b5ee986e87eb9632fdbecb81fe968a3eb276c884e1c8b76d1b379ca1d94df81
geth_linux_arm64 0830d90c31678f6f4b351259c6bd76ea4c580fe8bacbda4988150bc92c9e1e3e

v1.6.1-beta-feature-BAL

25 Sep 05:31
f4467d1

Choose a tag to compare

Pre-release

Description

This is an experimental feature release based on v1.6.1-beta, with binary version: v1.6.100. The suffix "-BAL" stands for "Block Access List.".

v1.6.1-beta-feature-BAL implements BEP-592: Non-Consensus Based Block-Level Access List to enhance block execution performance. This implementation introduces a Block Access List (BAL) feature that tracks account and storage access during transaction execution, enabling efficient prefetching of state data.

Try BAL:
As an experimental feature, BAL is disabled by default. It can be enabled by running with the flag --enablebal, or by updating the config.toml file as follows:

...
[Node]
EnableBAL = true
...

Since validators produce the BAL, they need to be upgraded first. The connected full nodes can then retrieve the BAL data to accelerate their synchronization performance.

Performance Test Results:

  • Block import performance increased by approximately 15%, with potential improvements of nearly 20% for I/O-heavy blocks.
  • CPU usage reduced by ~30%, as Tx prefetch would be replaced BAL.
  • The size of the BAL is about 40% of the block size. For a block with a 75M GasLimit, the block could be around 270KB, while the BAL would be approximately 110KB.

Change Log

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c
geth_linux fd6a07786f0b85da3c74a2b9c30c6e34dc74dc54eaf8e1911eb1d66ad19e6d65
geth_mac e8215847b2895447c21422e2acc6bc4b4d65ba009c16cef92a5832b6afda04bb
geth_windows 7a5ec73a044675478668496ad64b087b112827cfe6aa13c1d459249e4c2a0335
geth_linux_arm64 a8d2687ba9cc9858ebad9f81f3112d535172a272e1ab7d1b4f82c35ebf27e7ea

v1.6.1-beta

23 Sep 07:50
91e0d26

Choose a tag to compare

v1.6.1-beta Pre-release
Pre-release

Description

v1.6.1-beta is a maintenance preview release, which fixes several issues of the v1.6.0-alpha, it is more reliable, so mark it as beta stage.

This release has no new feature, no breaking changes, only some bugfix and improvements, pls refer change log for detail.

ChangeLog

FEATURE

NA

BUGFIX

#3336 miner: avoid to commit a bid twice
#3347 fix: discovery AyncFilter deadlock on shutdown
#3340 core: rework fast node

IMPROVEMENT

#3337 eth/pebble: use NoSync as write mode
#3332 FilterMap: update bsc checkpoint file
#3324 eth/downloader: remove InsertHeaderChain to improve sync speed
#3319 core/rawdb: remove func AncientOffSet and ItemAmountInAncient
#3346 cmd/geth: remove subcmd hbss2pbss and insecure-prune-all
#3354 freezer: add debug log for out of bounds access
#3340 core: rework fast node
#3348 core/rawdb: align more code with upstream
#3361 cmd/utils: set journalfile default to true

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c
geth_linux 0df5780112028f18c50b9fc8d623b03d26d207ca86e3485f504b1367872a0a72
geth_mac 2630b7cd851de157bc1432ff99d6fb8786d49e6ea056110ee61cc5d4c64877c4
geth_windows e53fff9f2d60a66a58ff159c172e014757f7fdea8328f7f76d5e8d553755e823
geth_linux_arm64 7b6147f76c53bf3ddd28c9b12ea6b88df183d7ab7d2c056935af0a406d417fb6

v1.6.0-alpha-feature-incr-snapshot

01 Sep 03:21
94a6d7a

Choose a tag to compare

Pre-release

Description

This is an experimental feature release based on v1.6.0-alpha, the "-incr-snapshot" suffix stands for "incremental snapshot".
v1.6.0-alpha-feature-incr-snapshot implements BEP-593: Incremental Snapshot

Incremental Snapshot mechanism makes it easier for users to start and run BSC nodes with reduced data requirements. By implementing this feature, users will be able to bootstrap their nodes more efficiently while maintaining the necessary functionality for participating in the BSC network.

  • For enabling incremental snapshot generation:
geth --config config.toml --datadir ./data/ --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --syncmode full --db.engine=pebble --state.scheme=path --incr.enable --incr.block-interval=806400 --incr.datadir ./incr/ --incr.state-buffer=1073741824 --incr.kept-blocks=1024 --mainnet --history.blocks=360000
  • For downloading and merging incremental snapshot:
geth --config config.toml --datadir ./data/ --cache 8000 --rpc.allow-unprotected-txs --history.transactions 0 --syncmode full --db.engine=pebble --state.scheme=path --incr.use-remote --incr.remote-url https://download.snapshots.bnbchain.world/mainnet-geth-pbss-incr --incr.datadir ./store-incr/ --mainnet --history.blocks=360000

Changelog

Assets

Assets Sha256 Checksum
mainnet.zip ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744
testnet.zip 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c
geth_linux f49c6f5740c22dd86ab383acc2797e310915c8e389a78d14a9b6945e880d904a
geth_mac 03330426f8248caee08be5aa1b9d35b0051162743c7bb12e44a08fd942f40b55
geth_windows 38c15e0e8e979fa1ceb6fb8c1504ee79281dd3bde08860808deea65865228eef
geth_linux_arm64 03d0624499e95a2107433a40f82763c5cab9abb94f52ba2a0802ed881c485770