Chains
BNB Beacon Chain
BNB ecosystem’s staking & governance layer
Staking
Earn rewards by securing the network
Build
Explore
Accelerate
Connect
Careers🔥
Explore Opportunities on BNB Chain
Stay up to date with the latest BNB Chain releases, updates, and feature improvements. Discover performance upgrades, new tools, and developer enhancements.
v1.6.3
Nov 06, 2025
v1.6.3 is a maintenance release, which fixes 2 RPC issues and with several enhancements, pls refer change log for detail.
NA
#3429 build(deps): bump github.com/consensys/gnark-crypto
#3433 internal/ethapi: fix eth_simulateV1
#3431 eth/tracers: fix crasher in TraceCall with BlockOverrides
#3436 revert: revert the nano check in parlia
#3435 eth: fix stuck when handleBlockBroadcast
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 25abae5a3ca0804fb153a2eeaac30fb9dd4713dd5310e4d4f3b023fa2d41fc3a |
| geth_mac | 12a82a56cc4dfb67ba0bbb78af7e3e4a6248f71b5bc3d4b7bb655e04d22723df |
| geth_windows | 3fe0727c6ec217cebbfcb77cbe075454f1251cc62424d26589ff1e0a4ff6f4d7 |
| geth_linux_arm64 | df6cbc552a6432ecf3733ba6c38c1d0e7d0856f552ad020be86c9309c217bc17 |
v1.6.3 is a maintenance release, which fixes 2 RPC issues and with several enhancements, pls refer change log for detail.
NA
#3429 build(deps): bump github.com/consensys/gnark-crypto
#3433 internal/ethapi: fix eth_simulateV1
#3431 eth/tracers: fix crasher in TraceCall with BlockOverrides
#3436 revert: revert the nano check in parlia
#3435 eth: fix stuck when handleBlockBroadcast
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 25abae5a3ca0804fb153a2eeaac30fb9dd4713dd5310e4d4f3b023fa2d41fc3a |
| geth_mac | 12a82a56cc4dfb67ba0bbb78af7e3e4a6248f71b5bc3d4b7bb655e04d22723df |
| geth_windows | 3fe0727c6ec217cebbfcb77cbe075454f1251cc62424d26589ff1e0a4ff6f4d7 |
| geth_linux_arm64 | df6cbc552a6432ecf3733ba6c38c1d0e7d0856f552ad020be86c9309c217bc17 |
v1.6.2
Oct 31, 2025
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
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:
--light.** was removed, include: --light.egress, --light.ingress, --light.maxpeers, --light.nopruning, --light.nosyncserve, --light.serve#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
#3373 ethapi: reject oversize storage keys before hex decode
#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 | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 4434ccec0cb7db38766fa240e595e9add00642b36b8bee16fe71e62e8066d209 |
| geth_mac | 938d85e262f1642b662874f3f195f2418f96dc43f5095890c01304846e8997b1 |
| geth_windows | a935ebdf79a3c51d54c16f43f89477a0b933fbac219be541cfeefc0ff178c0c8 |
| geth_linux_arm64 | f4efcdca6d988db53ecd8aab33fe70fc7786aefc80537ba2da4dfa6e767fd275 |
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
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:
--light.** was removed, include: --light.egress, --light.ingress, --light.maxpeers, --light.nopruning, --light.nosyncserve, --light.serve#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
#3373 ethapi: reject oversize storage keys before hex decode
#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 | 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
Sep 30, 2025
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.
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 38199d57b22f5c87dcd974e9083f3457ff65ff2deb41625ce4fb14f86946effb |
| geth_mac | 3f74cec7974d611266f69a71728f5e3e8727c8566237536cc154ef0a5fb1a363 |
| geth_windows | 9b5ee986e87eb9632fdbecb81fe968a3eb276c884e1c8b76d1b379ca1d94df81 |
| geth_linux_arm64 | 0830d90c31678f6f4b351259c6bd76ea4c580fe8bacbda4988150bc92c9e1e3e |
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.
| 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
Sep 25, 2025
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:
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | fd6a07786f0b85da3c74a2b9c30c6e34dc74dc54eaf8e1911eb1d66ad19e6d65 |
| geth_mac | e8215847b2895447c21422e2acc6bc4b4d65ba009c16cef92a5832b6afda04bb |
| geth_windows | 7a5ec73a044675478668496ad64b087b112827cfe6aa13c1d459249e4c2a0335 |
| geth_linux_arm64 | a8d2687ba9cc9858ebad9f81f3112d535172a272e1ab7d1b4f82c35ebf27e7ea |
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:
| 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
Sep 23, 2025
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.
NA
#3336 miner: avoid to commit a bid twice
#3347 fix: discovery AyncFilter deadlock on shutdown
#3340 core: rework fast node
#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 | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 0df5780112028f18c50b9fc8d623b03d26d207ca86e3485f504b1367872a0a72 |
| geth_mac | 2630b7cd851de157bc1432ff99d6fb8786d49e6ea056110ee61cc5d4c64877c4 |
| geth_windows | e53fff9f2d60a66a58ff159c172e014757f7fdea8328f7f76d5e8d553755e823 |
| geth_linux_arm64 | 7b6147f76c53bf3ddd28c9b12ea6b88df183d7ab7d2c056935af0a406d417fb6 |
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.
NA
#3336 miner: avoid to commit a bid twice
#3347 fix: discovery AyncFilter deadlock on shutdown
#3340 core: rework fast node
#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 | 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
Sep 01, 2025
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.
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
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
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | f49c6f5740c22dd86ab383acc2797e310915c8e389a78d14a9b6945e880d904a |
| geth_mac | 03330426f8248caee08be5aa1b9d35b0051162743c7bb12e44a08fd942f40b55 |
| geth_windows | 38c15e0e8e979fa1ceb6fb8c1504ee79281dd3bde08860808deea65865228eef |
| geth_linux_arm64 | 03d0624499e95a2107433a40f82763c5cab9abb94f52ba2a0802ed881c485770 |
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.
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
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
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | f49c6f5740c22dd86ab383acc2797e310915c8e389a78d14a9b6945e880d904a |
| geth_mac | 03330426f8248caee08be5aa1b9d35b0051162743c7bb12e44a08fd942f40b55 |
| geth_windows | 38c15e0e8e979fa1ceb6fb8c1504ee79281dd3bde08860808deea65865228eef |
| geth_linux_arm64 | 03d0624499e95a2107433a40f82763c5cab9abb94f52ba2a0802ed881c485770 |
v1.6.0
Alpha
Aug 29, 2025
v1.6.0-alpha is a preview release for upstream code sync, it catches up with go-ethereum release [v1.16.1] and also includes several bug fix.
Notice:
a.upgrade to v1.6.0-alpha from v1.5.x would trigger snapshot regeneration, which would downgrade your node's performance until the regeneration process complete. The regeneration cost ~5 hours on our node with8 core AMD EPYC 7R13, 32GB, SSD, but it could be different in your node.b.for FastNode(
--tries-verify-mode none), pls don't upgrade to v1.6.0-alpha, there is a data compatible issue.
Key changes from the code sync include:
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 2c2f8f4e2c9fc9c6e5ee74380c95fda0d017cc782db4d39519385701fb231753 |
| geth_mac | 8846b35a013d9b6f9aac39e569bf30ba754a819665a2461bbd467e021ff48092 |
| geth_windows | a7a2ad5d6900957beec8ea44952d3cd854f1f742ecb869d085212365c3b586f5 |
| geth_linux_arm64 | cb7074cd783e85732490133d591fe26e33071c65a4643057b74b71ec0c6eb44e |
v1.6.0-alpha is a preview release for upstream code sync, it catches up with go-ethereum release [v1.16.1] and also includes several bug fix.
Notice:
a.upgrade to v1.6.0-alpha from v1.5.x would trigger snapshot regeneration, which would downgrade your node's performance until the regeneration process complete. The regeneration cost ~5 hours on our node with8 core AMD EPYC 7R13, 32GB, SSD, but it could be different in your node.b.for FastNode(
--tries-verify-mode none), pls don't upgrade to v1.6.0-alpha, there is a data compatible issue.
Key changes from the code sync include:
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 2c2f8f4e2c9fc9c6e5ee74380c95fda0d017cc782db4d39519385701fb231753 |
| geth_mac | 8846b35a013d9b6f9aac39e569bf30ba754a819665a2461bbd467e021ff48092 |
| geth_windows | a7a2ad5d6900957beec8ea44952d3cd854f1f742ecb869d085212365c3b586f5 |
| geth_linux_arm64 | cb7074cd783e85732490133d591fe26e33071c65a4643057b74b71ec0c6eb44e |
v1.5.19
Feature: SI
Aug 26, 2025
The "-SI" suffix stands for Super-Instruction and this is an experimental feature release based on v1.5.19.
It implemented BEP-610:Smart-Contract Bytecode Optimization & Super-Instruction Execution
BEP-610 introduces Super-Instruction, which are some custom single-byte opcodes that replace the high-frequency EVM opcode sequences. The contract bytecode is preprocessed off-chain to embed these opcodes, and the on-chain interpreter executes them atomically. The approach yields significant execution layer efficiency without changing the consensus rules or requiring hard forking.
To try this feature, pls enable Eth.EnableOpcodeOptimizing in config.toml:
[Eth]
EnableOpcodeOptimizing = true
...
feat: SuperInstruction implementation in EVM
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | e13c8879c5ed7243e080fca6bf4afb7e703f5813970ee636b44f84dec8eeddb0 |
| geth_mac | 6c5e77e24cb0aec0b27403f51e2b7b1d1bf6b63efc0f7ffa489174e20b44bce2 |
| geth_windows | f4b3c28b19445398b65db1a57e8da146f70c001a0b28c15034328bc1573b7736 |
| geth_linux_arm64 | 4a851a5d9f97309fe702fff337489a0c71cb6b116082c16922abe284d6904553 |
The "-SI" suffix stands for Super-Instruction and this is an experimental feature release based on v1.5.19.
It implemented BEP-610:Smart-Contract Bytecode Optimization & Super-Instruction Execution
BEP-610 introduces Super-Instruction, which are some custom single-byte opcodes that replace the high-frequency EVM opcode sequences. The contract bytecode is preprocessed off-chain to embed these opcodes, and the on-chain interpreter executes them atomically. The approach yields significant execution layer efficiency without changing the consensus rules or requiring hard forking.
To try this feature, pls enable Eth.EnableOpcodeOptimizing in config.toml:
[Eth]
EnableOpcodeOptimizing = true
...
feat: SuperInstruction implementation in EVM
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | e13c8879c5ed7243e080fca6bf4afb7e703f5813970ee636b44f84dec8eeddb0 |
| geth_mac | 6c5e77e24cb0aec0b27403f51e2b7b1d1bf6b63efc0f7ffa489174e20b44bce2 |
| geth_windows | f4b3c28b19445398b65db1a57e8da146f70c001a0b28c15034328bc1573b7736 |
| geth_linux_arm64 | 4a851a5d9f97309fe702fff337489a0c71cb6b116082c16922abe284d6904553 |
v1.5.19
Jul 30, 2025
v1.5.19 is a hot fix release for v1.5.18(deprecated), which has a critical issue for nodes that are running with flag: --pruneancient.
The issue of v1.5.18 is about performance, as nodes could be stuck for ~1 min during block import due to an exclusive write lock of ancientDB.
The issue has been mitigated by: https://github.com/bnb-chain/bsc/pull/3251
note: changes of v1.5.18 are also included in v1.5.19, pls refer v1.5.18 for its change list.
#3251 freezer: change freeze batch size
#3243 build(deps): bump golang.org/x/oauth2 from 0.24.0 to 0.27.0
#3235 refactor: use maps.Copy for cleaner map handling
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | e2bceecc6b0f8ab9f9933c3d66c4686c8d0ad0b277385e41720bbd676ae45867 |
| geth_mac | 059eaf8554ed690ee5ed77c9e5889d2d3329ea874d2e07b26e4928217c38e7da |
| geth_windows | b887bdf4d08f469281707f9bde5c85505cdc688e14cae7ab19ede09ce86b4e66 |
| geth_linux_arm64 | e677e550b6c384f6ea7940f2a365add46cc6dd9e4203b928983960880f228f61 |
v1.5.19 is a hot fix release for v1.5.18(deprecated), which has a critical issue for nodes that are running with flag: --pruneancient.
The issue of v1.5.18 is about performance, as nodes could be stuck for ~1 min during block import due to an exclusive write lock of ancientDB.
The issue has been mitigated by: https://github.com/bnb-chain/bsc/pull/3251
note: changes of v1.5.18 are also included in v1.5.19, pls refer v1.5.18 for its change list.
#3251 freezer: change freeze batch size
#3243 build(deps): bump golang.org/x/oauth2 from 0.24.0 to 0.27.0
#3235 refactor: use maps.Copy for cleaner map handling
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | e2bceecc6b0f8ab9f9933c3d66c4686c8d0ad0b277385e41720bbd676ae45867 |
| geth_mac | 059eaf8554ed690ee5ed77c9e5889d2d3329ea874d2e07b26e4928217c38e7da |
| geth_windows | b887bdf4d08f469281707f9bde5c85505cdc688e14cae7ab19ede09ce86b4e66 |
| geth_linux_arm64 | e677e550b6c384f6ea7940f2a365add46cc6dd9e4203b928983960880f228f61 |
v1.5.18(Deprecated)
Jul 23, 2025
Warning
pls do not upgrade to v1.5.18!!!
Some feedback from community, v1.5.18 may have some issue, remove the binary temporarily, will update once the issue is confirmed.
v1.5.18 is a conventional maintenance release, which mainly includes some MEV updates, performance gain(could be ~10% improvements, even ~15% with --cache.enablesharedpool) and some non-critical bug fixes.
Summarize some of the key changes:
mev_bestBidGasFeewas removedSharedStoragePool improve performance by ~4%prune-block tool was removed, it is now replaced by --history.blocks <number>#3158 feat: blind bid serves the validator's best interest
#3197 feat: enable shared storage pool
#3212 p2p: treat all EVN peer as trust node;
#3143 miner: change default mev config
#3209 params: only enable sharedStorage on special blocks
#3201 miner: fix metric simulateSpeedGauge
#3204 miner: only recommit bids when no error happens
#3187 chore: fix duplicated counter
#3178 CI: all use go1.24 to build
#3210 consensus/parlia: warn fast node to update to latest hard fork version
#3175 all: use typed lru
#3177 deps: update prysm version to v5.3.2
#3193 core: warm key TransactionIndexTail by writing
#3146 hash: remove caching that was decreasing perf
#3205 ethdb: tuning pebble compaction parameter
#3225 state: extra check for nano address
#2809 refactor: remove outdated prune-block/pruneancient tool, implement it by tail-deletion
#3208 ethdb : disable blockstore of multidatabase
#3199 all: clear up Verify Node logic
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 99d04a7d2faabbcfa11182b195bd268e065c6b6d31f2d71db353e9f81b5ca7a6 |
| geth_mac | 872135e372da52d082f218af49692676bf27f340c8f7155ac2230d562304abfc |
| geth_windows | ed351e0ff272d99328929ea15118d08fc12d254d89dfbab45ca502beddac9977 |
| geth_linux_arm64 | 6604ce0a66cb34e0122805ace4f04095338173c42a2cce5a3a1d66173aaf670b |
Warning
pls do not upgrade to v1.5.18!!!
Some feedback from community, v1.5.18 may have some issue, remove the binary temporarily, will update once the issue is confirmed.
v1.5.18 is a conventional maintenance release, which mainly includes some MEV updates, performance gain(could be ~10% improvements, even ~15% with --cache.enablesharedpool) and some non-critical bug fixes.
Summarize some of the key changes:
mev_bestBidGasFeewas removedSharedStoragePool improve performance by ~4%prune-block tool was removed, it is now replaced by --history.blocks <number>#3158 feat: blind bid serves the validator's best interest
#3197 feat: enable shared storage pool
#3212 p2p: treat all EVN peer as trust node;
#3143 miner: change default mev config
#3209 params: only enable sharedStorage on special blocks
#3201 miner: fix metric simulateSpeedGauge
#3204 miner: only recommit bids when no error happens
#3187 chore: fix duplicated counter
#3178 CI: all use go1.24 to build
#3210 consensus/parlia: warn fast node to update to latest hard fork version
#3175 all: use typed lru
#3177 deps: update prysm version to v5.3.2
#3193 core: warm key TransactionIndexTail by writing
#3146 hash: remove caching that was decreasing perf
#3205 ethdb: tuning pebble compaction parameter
#3225 state: extra check for nano address
#2809 refactor: remove outdated prune-block/pruneancient tool, implement it by tail-deletion
#3208 ethdb : disable blockstore of multidatabase
#3199 all: clear up Verify Node logic
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
| testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
| geth_linux | 99d04a7d2faabbcfa11182b195bd268e065c6b6d31f2d71db353e9f81b5ca7a6 |
| geth_mac | 872135e372da52d082f218af49692676bf27f340c8f7155ac2230d562304abfc |
| geth_windows | ed351e0ff272d99328929ea15118d08fc12d254d89dfbab45ca502beddac9977 |
| geth_linux_arm64 | 6604ce0a66cb34e0122805ace4f04095338173c42a2cce5a3a1d66173aaf670b |