Releases: bnb-chain/bsc
Release list
v1.8.0-alpha
MetaInfo
Mandatory Update Required: No
Target Audience: developers and testnet operators, this is a preview release and is not intended for production
Procedure: simply binary replacement should be good
Schedule(Timeline): no scheduled upgrade timeline
Changelog
v1.8.0-alpha is a preview release for upstream code sync, it catches up with go-ethereum release [v1.17.3] and also removes several BSC features and fixes bugs.
Feature Removal
- core/vm: revert opcode-level optimization and fold EVMInterpreter into EVM
The EVM opcode-level optimization (superinstruction) feature added in #3395 is removed entirely: the superinstruction interpreter, the fused opcodes and their jump-table entries are gone, andEVMInterpreteris folded back intoEVM. - core, triedb, ethdb: remove incremental snapshot (incr db) feature
The incr downloader and merger, the incr freezers and the pathdb incr manager are all deleted. - core/txpool, eth: remove local transaction reannounce mechanism
Local pending transactions are no longer periodically re-announced. - p2p: remove BSC table-layer ENR node filtering and dead bootnode bucket-size code
The discovery table no longer filters nodes by ENR.
Code Sync
- upstream: merge geth-v1.16.9 ~ geth-v1.17.3
Key changes from the code sync include: - Wire protocol: eth/70 becomes the primary protocol. BSC keeps eth/68 for peer compatibility, retains TD in
StatusPacket, and sends noUpgradeStatusMsgon eth/70. snap/2 groundwork landed, but only snap/1 is advertised. - State: Verkle is replaced by the unified binary trie (UBT), with state readers split into MPT/UBT databases.
- PathDB: path-based archive with proofs, history index pruner, trienode history on existing nodes.
- EIP-7928 block access list scaffolding replaces BEP-592.
- The Amsterdam EIP set landed but stays dormant on BSC: EIP-7778, EIP-7843, EIP-8024, EIP-7708, EIP-7954, EIP-7976/7981, EIP-8037, EIP-7610.
RPC Changes
- Breaking
debug_trace*structLog output follows the client-wide spec:memorywords are0x-prefixed and padded to 32 bytes,storagekeys and values are0x-prefixed, anderroris omitted when empty. - Breaking
reexecis no longer accepted in the tracing config. eth_getLogs/eth_getFilterLogs:--rpc.rangelimit(default 5000) replaces the fixed cap toggled by--rangelimit, and exceeding it returns-32602 invalid params.eth_simulateV1: every call result gains amaxUsedGasfield.- New method
eth_getStorageValues, which reads up to 1024 storage slots in one call.
Config Changes
- Default
--cacheis raised from 1024 to 4096 MB, so nodes that do not set it explicitly will use about 3GB more memory. - Renamed:
--rangelimitto--rpc.rangelimit,--override.verkleto--override.ubt. - New:
--history.trienode(serve historical state proofs, disabled by default),--miner.maxblobs,--debug.logslowblock, and the opt-in--rpc.telemetryfamily. - Removed: the seven
--incr.*flags plus theinspect-incr-snapshotandmerge-incr-snapshotsubcommands,--txpool.reannouncetime, and bootnode-network. - Accepted but inert, warning only:
--enable-bal,--rangelimit,--vm.opcode.optimize. config.toml:[Eth] EnableOpcodeOptimizing,[Eth.TxPool] ReannounceTimeand[Node.P2P] EnableENRFilterare no longer supported.
BUGFIX
- core, eth, consensus, miner, tests: stabilize the v1.17.3 merge
- internal/ethapi, eth/filters: fix eth_simulateV1 multi-block and getLogs latest range-limit regressions
- miner, core/vm: fix MEV bid gas accounting and EVM stack-arena double-release
- core/txpool: fall back to an empty state when head state is unavailable
- eth/downloader: fix legacy snap sync regressions from the v1.17.3 merge
- miner, core: fix mining prefetch rate-limiting broken by shadowing
- miner: make MEV bid per-builder quota admission atomic
- consensus/parlia: only blind-sign legacy system txs
Others
- core/filtermaps: update BSC mainnet and chapel log index checkpoints
- cmd/faucet: add United Stables ($U) testnet token
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | e5faaba10425a6a00ce7174e2482f5036b2b80a109a2fd969f4fd685642cb091 |
| geth_mac | 351cae69022f83ffc8c4e7a811c92068ab9c63c1b055a8caaba298f940dd1c11 |
| geth_windows | 519f643dda8e2cd2ec1072fd37991689437da21cd7f3246acbd7bbba1d186da6 |
| geth_linux_arm64 | 5fde97ac42f5c97b56826c76430beb0ccbc9d22afedd745fbe68f2b139f460c3 |
v1.7.8
MetaInfo
Mandatory Update Required: No
Target Audience: all BSC Mainnet/Testnet users
Procedure: simply binary replacement should be good
Schedule(Timeline): no scheduled upgrade timeline
Changelog
v1.7.8 is a maintenance release.
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 0019dfc4b32d63c1392aa264aed2253c1e0c2fb09216f8e2cc269bbfb8bb49b5 |
| testnet.zip | 0019dfc4b32d63c1392aa264aed2253c1e0c2fb09216f8e2cc269bbfb8bb49b5 |
| geth_linux | 28466c6b6b279e2026ddcfea09ddadd920d2bcf02efab3c854e4bb0d5a3ae534 |
| geth_mac | 7719be246b9dd63ec80078f9f5f6947b2ed2dc38d0e1d0ada75b88d3e51e2580 |
| geth_windows | ac3c00db9fcbec09f147d3ea94391cd8038194d50ea3e4cfd13d07b60c8edeee |
| geth_linux_arm64 | f4ec049dc50297405cdf68efcd0d9b1da444514b6a5d4b982f7346de56ed9636 |
v1.7.7
MetaInfo
Mandatory Update Required: Yes
Target Audience: all BSC Mainnet users
Procedure: before upgrading, review the deprecated flags and config fields listed above and confirm their removal has no impact on your node; once confirmed, binary replacement is sufficient:
--journalfile: no longer has any effect, safe to remove
--miner.txgaslimit: per-transaction gas limit is now enforced by EIP-7825; confirm EIP-7825 behaviour meets your requirements before removing
--enablebal: no longer has any effect, safe to remove
--multidatabase: single-database mode is now the only option; confirm your data directory is compatible
--txpool.overflowpoolslots: overflow pool is removed; review your txpool capacity settings if you relied on it
[Eth] EnableBAL in config.toml: must be removed before upgrading — will cause a startup error if left in
[TxPool] OverflowPoolSlots in config.toml: silently ignored, but recommend removing to keep config clean
Schedule(Timeline): TBD
Changelog
v1.7.7 is for BSC Mainnet Pasteur hardfork,the hard fork time is 2026-08-25 02:30:00 AM UTC
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 37d5383756f97627f6b3af9fdd376344211290a481f1089e14e00be1505f160c |
| geth_mac | d3a0d699007c6ece9f81b470041af34bd187488d43b7a4e4f0d43eb8c31a6f6a |
| geth_windows | b63c63d43c9f16ee5100695a0f844276acde425592f054bc0de8c3d87a8e2575 |
| geth_linux_arm64 | c3faa44b2ad861f6d358ce4f929ef72629817f9ceae2618fd817d1593c24e93a |
v1.7.6
MetaInfo
Mandatory Update Required: Yes
Target Audience: all BSC Testnet users
Procedure: before upgrading, review the deprecated flags and config fields listed above and confirm their removal has no impact on your node; once confirmed, binary replacement is sufficient:
--journalfile: no longer has any effect, safe to remove--miner.txgaslimit: per-transaction gas limit is now enforced by EIP-7825; confirm EIP-7825 behaviour meets your requirements before removing--enablebal: no longer has any effect, safe to remove--multidatabase: single-database mode is now the only option; confirm your data directory is compatible--txpool.overflowpoolslots: overflow pool is removed; review your txpool capacity settings if you relied on it[Eth] EnableBALin config.toml: must be removed before upgrading — will cause a startup error if left in[TxPool] OverflowPoolSlotsin config.toml: silently ignored, but recommend removing to keep config clean
Schedule(Timeline): TBD
Changelog
v1.7.6 is for BSC Chapel testnet Pasteur hardfork,the hard fork time is 2026-07-21 02:30:00 AM UTC
Pasteur Hardfork
- #3623 core/vm: reject duplicate bridge validators at Pasteur
- #3691 miner: support builder-proposed block with validator blind signing
- #3717 params: move Pasteur next to Mendel
- #3721 core/systemcontracts: introduce Pasteur hardfork system-contract upgrade
- #3727 core/systemcontracts: point Pasteur CommitUrl to genesis-contract v1.2.6
- #3741 miner: disable BidBlock on hard-fork activation blocks
- #3742 miner: optimize BidBlock signing hash
BUGFIX
- #3668 eth/handler.go: add verify bal
- #3671 eth/protocols/bsc: cap GetBlocksByRange response size
- #3672 eth/protocols/bsc: rate-limit incoming votes by vote count
- #3680 internal/ethapi: limit number of getProofs keys
- #3681 internal/ethapi: limit number of calls to eth_simulateV1
- #3682 internal/ethapi: fix gas cap for eth_simulateV1
- #3683 core: fix txLookupLock mutex leak on error returns in reorg()
- #3684 cmd, core, eth, tests: prevent state flushing in RPC
- #3685 core/tracing: fix nonce revert edge case
- #3686 eth/filters: fix race in pending tx and new heads subscriptions
- #3687 core, internal/ethapi: fix incorrect max-initcode RPC error mapping
- #3688 eth/filters: rangeLogs should error on invalid block range
- #3689 eth/filters: fix race in NewVotes and NewFinalizedHeaders
- #3692 eth/filters: fix source leak when New Filters
- #3700 crypto: add hash length check in nocgo VerifySignature
- #3701 p2p/discover: copy buffer before sending read errors to unhandled
- #3702 p2p/discover: fix timeout loop early exit when removing expired matchers
- #3703 eth/tracers/logger: fix exclude address list
- #3705 eth/protocols/eth: stop serving on unavailable responses
- #3706 triedb/pathdb: fix lookup sentinel collision with zero disk layer root
- #3707 eth/tracers: forward OnSystemCall hooks through mux
- #3708 eth/downloader: drop invalid peers + fix deliver index
- #3709 core/state: fix StateDB Reader error discarded after Commit
- #3710 p2p/discover: decouple nodeFeed from Table mutex in waitForNodes
- #3711 core/rawdb: fix file descriptor leak in freezer error paths
- #3712 core/rawdb: fsync temp file before rename in copyFrom
- #3718 fix: nocgo sigToPub hash check + pathdb zero-base regression test
IMPROVEMENT
- #3669 miner: reduce local mining time for last block in one turn
- #3694 consensus/parlia: extract VerifyUnsealedHeader from verifyHeader
- #3736 miner: add BidBlock verify metrics
CLEAN UP
- #3670 triedb/pathdb: remove legacy field JournalFilePath
- #3678 miner: remove optional transaction gas limit cap
- #3690 all: remove BEP-592 non-consensus block access list
- #3716 ethdb,trie: remove multidb code from bsc
- #3720 core/rawdb: cleanup bep-592 bal key related
- #3722 core/txpool/legacypool: remove overflowpool for txs
- #3728 beacon, cmd: remove fake-beacon op-stack shim (revert #2678)
- #3739 core/types: extract bid and block mev info into builder subpackage
Deprecated Flags & Config Fields
The following flags and config fields are removed or deprecated in this release. Please update your node configuration accordingly before upgrading:
CLI Flags
| Flag | Change | Note |
|---|---|---|
--journalfile |
Deprecated (no effect) | Remove from your startup script (#3670) |
--miner.txgaslimit |
Deprecated (no effect) | Per-transaction gas limit is now enforced by EIP-7825 (#3678) |
--enablebal |
Deprecated (no effect) | BEP-592 block access list has been removed (#3690) |
--multidatabase |
Removed | Multi-database support is fully removed (#3716) |
--txpool.overflowpoolslots |
Deprecated (no effect) | Overflow pool has been removed (#3722) |
--fake-beacon |
Removed | fake-beacon op-stack shim removed (#3728) |
--fake-beacon.addr |
Removed | See --fake-beacon (#3728) |
--fake-beacon.port |
Removed | See --fake-beacon (#3728) |
Config File (TOML) Fields
| Field | Change | Note |
|---|---|---|
[Eth] EnableBAL |
Removed — causes load error if present | Remove this field from your config.toml before upgrading (#3690) |
[TxPool] OverflowPoolSlots |
Deprecated — silently ignored | Safe to leave but recommend removing (#3722) |
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 4ff9198b3d81db7496c5ebb4a710ee28d9ae0489a5487fa2369b7ed303ac5c7d |
| geth_mac | b8bb40b7a858193899f55db5374e0e8024d10db209319c08ad10e4c198f8b80a |
| geth_windows | 657c7fbcecc1533800a3fa4dee8af099b0502e7682db5ee6a8fc397f61761a62 |
| geth_linux_arm64 | 6b3978bab95a097168e065fd3df21c765990af983d71f0b1898f8443f4720d10 |
v1.7.5
MetaInfo
Mandatory Update Required: No
Target Audience: all BSC Mainnet/Testnet users
Procedure: simply binary replacement should be good
Schedule(Timeline): no scheduled upgrade timeline
Changelog
v1.7.5 is a maintenance release.
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 3d9a480d038ce39a3b925850e1c64fd76bd5a0a22e708ed70ef2c6a0d464cd64 |
| geth_mac | b9330dc26323b7831b84e056271145459d8dff6a8d7edd9ca59d29badf8101c7 |
| geth_windows | 25d6b46bcc02f3c6429d6a582fbb066082c56dfdee79d3dd1a0f903a39cdca34 |
| geth_linux_arm64 | da429058319cadb3c6984e8e31eda317db581620635ceb34fc646bc258096d92 |
v1.7.4
MetaInfo
Mandatory Update Required: No
Target Audience: all BSC Mainnet/Testnet users
Procedure: simply binary replacement should be good
Schedule(Timeline): no scheduled upgrade timeline
Changelog
v1.7.4 is a maintenance release.
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 8d08bdf4d2a39c66fdc238ae9af3b2590c8111305f174ab4a127957bed9083e1 |
| geth_mac | 3ce2a700db677da70850b6639227a83867d76d6d8c2947384805ad88ea4dede2 |
| geth_windows | 7a498921db03e61839af7fb8431dd640d41588c212a5699dab6fb6e6d91888d9 |
| geth_linux_arm64 | 237bbe022ab54c14818bb5e8d1c577140b2aad69070f176b474860d47400ea9a |
v1.7.3
MetaInfo
Mandatory Update Required: NO — recommended to fix the database size growth issue
Target Audience: All BSC Mainnet and Testnet users
Procedure: Binary replacement is sufficient from v1.7.x
Schedule(Timeline): No scheduled rollout
Changelog
v1.7.3 is a maintenance release, which mainly fixes online block pruning and kvdb abnormal continuous growth, pls refer change log for detail.
BUGFIX
- #3653 core/rawdb: fix freeze header-number shadowing for block prune
- #3633 core/rawdb: increase SlowFreezerBatchLimit from 100 to 200, fixing kvdb abnormal continuous growth
- #3631 core/vote: fix deadlock in votepool when stop client
- #3627 core/vm: fix super-instruction LT comparison after swap1
- #3652 consensus/parlia: fix big.Int pointer comparison in isIntentionalDelayMining
FEATURE
- #3624 cmd/utils: disabled transaction unindexing for archive node by default; when running in archive mode, the
--history.transactionsflag is now respected to specify transaction history range instead of being forced to index all history - #3634 eth/ethconfig: set default value to 576000 for history.logs
IMPROVEMENT
- #3626 eth: tune timing parameters and broadcast queue for 450ms block
- #3618 #3629 miner: async blob tx validation during bid simulation with worker pool
- #3650 miner: shrink greedy merge buffer
- #3645 core: use now for DA check instead of chasingHead.time
- #3622 core/vm: continue after super-instruction fallback
Others
- #3639 go.mod: use go1.25.0 and update otel
- #3637 build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.34.0 to 1.43.0
- #3617 build(deps): bump github.com/mattn/go-colorable from 0.1.13 to 0.1.14
- #3616 build(deps): bump github.com/gorilla/mux from 1.8.0 to 1.8.1
- #3648 Revert ".github: change dependabot target branch to develop"
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 8b35f4ac758807db96f3566a86eef7d85d86b4193f2594511fac757709fef274 |
| geth_mac | ab956d653a3361f9772e8c7ecacc7f2f56a9ae8f1708841e59a85269854a5fd6 |
| geth_windows | fc1dee6e0f46cf13f2b7faef025912da0c98d06e756e2ad50960a5035f7bb8ef |
| geth_linux_arm64 | dbf44026031e12e6ddc8b70e0f6e6fd9b14c587666f9623a7fd0b211cc2ded4e |
v1.7.2
MetaInfo
Mandatory Update Required: YES
Target Audience: all BSC Mainnet users
Procedure: simply binary replacement should be good (ensure no 'JournalFileEnabled' field in config file)
Schedule(Timeline): before 2026-04-28 02:30:00 AM UTC
Changelog
v1.7.2 is for BSC Mainnet Osaka/Mendel hardfork,the hard fork time is 2026-04-28 02:30:00 AM UTC
BUGFIX
- #3597 miner: support blob sidecar validation for bids
- #3590 eth: delayed p2p message decoding
- #3601 core: reject future chasing heads for DA checks
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 59fd12dfc60a64e5646549939258a094b894e35fa530ddf9fa2bf4c090a3ff95 |
| geth_mac | 5e4ffb1a6c25ee9ca3390629f9a74f25f762d0fae6a688d1a182be8814ec8ce3 |
| geth_windows | 2b469307b2acb6fc4008e55a97086bc43b312a4f375fb82494191ebff5e44ebf |
| geth_linux_arm64 | 112be3ea5f2fb1a6e2d628d621a85e8fe307b5833b55b1a6e3a98a3587d82a20 |
v1.7.1
MetaInfo
Mandatory Update Required: YES
Target Audience: all Chapel testnet users
Procedure: simply binary replacement should be good (ensure no 'JournalFileEnabled' field in config file)
Schedule(Timeline): before 2026-03-24 02:30:00 AM UTC
Changelog
v1.7.1 is for BSC Chapel testnet Osaka/Mendel hardfork,the hard fork time is 2026-03-24 02:30:00 AM UTC
FEATURE
- feat: support bid block size check for BEP-655
- feat: support mev bid gas check of bep 652
- eip4844.go: disable eip-7918 for bsc
- feat: implement BEP-657 - Limit Blob Transaction Inclusion by Block Number
BUGFIX
- core/types: fix typo in vote comparison (#3573)
- Fee history issue
- go.mod: upgrade otel to fix CVE-2026-24051
- fix: fix gaslimit check in trace api (#3580)
- miner: fix missing tcount increment in commitBlobTransaction (#3581)
- fix: superinstruction bad block (#3582)
- core/vm: align super-instruction minStack and maxStack bounds (#3584)
- rlp: finalize listIterator on parse error to prevent non-advancing loops (#3586)
- eth/protocols/snap: restore peers to idle pool on request revert (#3587)
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | 8d8000c0236c04ad781ca3589c1dc06e68b6a0b1ade68d26700c96cdb36c32d7 |
| geth_mac | 34909b2384adf12b91d427dba876bc04ae8a952730004b2a49a2ce06e580f83a |
| geth_windows | 828700ed688c7617618a9f489a420fb82c87a475d7ea3fb8ed66fdb4141d59d5 |
| geth_linux_arm64 | 6ad1e71f5cfca70a98f106c2be3021235e9a867a4e39f98156f10cff8ec5172e |
v1.6.7
MetaInfo
Mandatory Update Required: NO
Target Audience: all users
Procedure: simply binary replacement should be good from v1.6.x
Schedule(Timeline): no scheduled upgrade timeline, but we recommend upgrading.
Description
This release ports critical security fixes from go-ethereum v1.16.9, resolving two P2P vulnerabilities.
Changelog
BUGFIX
crypto/secp256k1: fix coordinate check
crypto/ecies: fix ECIES invalid-curve handling
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | def582a69d3bdd1bc5db3f1d0ad320368da8a0bbfb5bdc11cdaef91f00664cc9 |
| geth_mac | 94579c1e2c6ce9cd38fc7ad612f0bebada50637e8de38f8cb37ba42e9ab3d818 |
| geth_windows | b35df1473a23c2220f5b12b7c380267ff624ae3ba6ad59cc10e7b69a6c253607 |
| geth_linux_arm64 | a042a7b798c5a149bb52f39927ece3ad895bded4671192e4b213efd4f9c68bb9 |