Releases: bnb-chain/bsc
v1.5.17
Description
v1.5.17 is a maintenance release, which mainly includes several commits to further improve the performance.
Here is the list of recent performance commits:
- #3105: increase ~20% mining time.
- #3141: could improve performance ~7% (optional)
- #3140: could improve performance ~10%
- #3139: would benefit MEV, unknown improvements
- #3145: would benefit MEV, unknown improvements
- #3156: save cpu ~2%
- #3112: reduce memory allocation frequency by ~6%
- #3120: reduce memory allocation frequency(unknown)
Notice: the usage of flag
--tries-verify-mode
could be changed in the future release,--tries-verify-mode full
and--tries-verify-mode insecure
will be deprecated. If you are running node with these flags enabled, pls be aware of it and let us know if you have any concern.
Changelog
FEATURE
#3141 feat: support to disable txindexer;
BUGFIX
#3157 build(deps): bump github.com/pion/interceptor from 0.1.37 to 0.1.39
#3167 eth: not begin to sync during processing broadcasted blocks or hash
IMPROVEMENT
#3140 feat: remove gc restriction for large mem;
#3135 miner: simplify code for simulating bids
#3151 cmd/jsutils: add new builders for chapel net
#3111 config: default config values if not set in config.toml
#3137 Docker arm64 runners
#3156 vm: implement contract pool
#3166 chore: remove unused file
#3164 cmd/jsutils: add builders and improve output for getMevStatus
#3139 miner/worker: broadcast mined block immediately before wroten into db
#3160 miner: add more metrics for mev
#3145 miner: prefetch states for bids simulating
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
geth_linux | ca8fe76829c28e350e57788b0b191b8ad28476cfcdbc8c077ea6836f29be4d81 |
geth_mac | b1f17f7b1ed0151fa51434bc78c5fc05ff37abea3ea78803690c741363adfe10 |
geth_windows | 4e2bf4e642a6d36c96b95124cbd19bc9ca6d708ac3c18be0db532ab2260aef72 |
geth_linux_arm64 | 70b6f238059288728f707af03aa246ab9709d7840a04aede6377c11f01a5c9e7 |
v1.5.16
Description
v1.5.16 is for BSC Mainnet Maxwell hard fork, which is expected to be enabled at: 2025-06-30 02:30:00 AM UTC
, all BSC Mainnet nodes need to be upgraded to v1.5.16 before the hard fork time. For this upgrade, simply binary replacement should be enough.
Maxwell includes 3 BEPs, mainly to reduce block interval from 1.5 seconds to 0.75 seconds:
- BEP-524: shorter block interval phase two: 0.75 seconds
- BEP-563: add Enhanced Validator Network proposal
- BEP-564: add New Block Fetching Messages proposal
Besides the 0.75 seconds block interval update, there are several other key parameters will be updated:
- Epoch: will increase from 500 to 1000
- TurnLength: will increase from 8 to 16
- Other Parameters: pls refer BEP-524: Parameter Changes
Beside hard fork changes, there are several other improvements and bug fixes, For details, pls refer the change log.
Changelog
FEATURE
#3130 config: update BSC Mainnet hardfork time: Maxwell
BUGFIX
#3117 core, ethdb: introduce database sync function (#31703)
#3122 freezer: implement tail method in prunedfreezer
#3121 miner: discard outdated bids before simulation
IMPROVEMENT
#3105 parlia.go: adjust timeForMining to 4/5 second
#3112 feat: add storagechange object pool for better performance
#3110 refactor: use the built-in max/min to simplify the code
#3120 tx_pool: remove one non-necessary allocation
#3123 refactor: use maps.copy for cleaner map handling
#3126 jsutils: update getKeyParameters
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
geth_linux | af2cbc80e021201b9f78789ed7a3a6480cfcebf4f796bf14c796cf52ca6bba54 |
geth_mac | 40eba56dbb4353c171fb194cd66a4baab7fbd5fa25da6582dcd489f7a5b1e0ed |
geth_windows | 44d231f03912846961bc1827c93a7dab5188143e521f4aa8b91931ec9df61d16 |
geth_linux_arm64 | 95049ad2c7cb547af0e18a94161cc611b66abd833d9399713595d5c31089452c |
v1.5.13
Description (Testnet Maxwell hard fork)
v1.5.13 is for BSC Testnet Maxwell hard fork, which is expected to be enabled at: 2025-05-26 07:05:00 AM UTC
, all BSC Testnet nodes need to be upgraded to v1.5.13 before the hard fork time. For this upgrade, simply binary replacement should be enough.
Maxwell includes 3 BEPs, mainly to reduce block interval from 1.5 seconds to 0.75 seconds:
- BEP-524: shorter block interval phase two: 0.75 seconds
- BEP-563: add Enhanced Validator Network proposal
- BEP-564: add New Block Fetching Messages proposal
Besides the 0.75 seconds block interval update, there are several other key parameters will be updated:
- Epoch: will increase from 500 to 1000
- GasLimit: will decrease from 70M to 35M, so the overall throughput will stay unchanged
- Other Parameters: pls refer BEP-524: Parameter Changes
Beside hard fork changes, there are several other items:
- upstream code sync mainly for Pectra related bugfix and improvements
- several non-critical bug-fix and improvements
For details, pls refer the change log.
ChangeLog
FEATURE
#3019 BEP-524: Short Block Interval Phase Two: 0.75 seconds
#3044 params: double FullImmutabilityThreshold for BEP-520 & BEP-524
#3045 Feature: StakeHub Contract Interface Implementation
#3040 bsc: add new block fetching mechanism
#3043 p2p: support new msg broadcast features
#3070 chore: renaming for evn and some optmization
#3073 evn: add support for node id removal
#3072 config: support more evn configuration in tool
#3075 config: apply two default miner option
#3083 evn: improve node ID management with better error handling
#3084 metrics: add more monitor metrics for EVN
#3087 bsc2: fix block sidecar fetching issue
#3090 chore: update maxwell contrats addresses
#3091 chore: fix several occasional issues for EVN
#3049 upstream: pick bugfix and feature from latest geth v1.5.9
#3096 config: update BSC Testnet hardfork time: Maxwell
BUGFIX
#3050 miner: fix memory leak caused by no discard env
#3061 p2p: fix bscExt checking logic
#3085 miner: fix goroutine leak
IMPROVEMENT
#3034 miner: optimize clear up logic for envs
#3039 Revert "miner: limit block size to eth protocol msg size (#2696)"
#3041 feat: add json-rpc-api.md
#3057 eth/protocols/bsc: adjust vote reception limit
#3067 ethclient/gethclient: add deduplication and max keys limit to GetProof
#3063 rpc: add method name length limit and configurable message size limit
#3077 performance: track large tx execution cost
#3074 jsutils: add tool GetLargeTxs
#3082 metrics: optimize mev metrics
#3081 miner: reset recommit timer on new block
#3062 refactor: use slices.Contains to simplify code
#3088 core/vote: change waiting blocks for voting since start mining
#3089 core/systemcontracts: remove lorentz/rialto
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
testnet.zip | 46d9134554cede135581c8a069a9fff77de2721e6ab5caec9e6704b031e8788b |
geth_linux | 992162709b7f7cc29817aae275716da9ecc285ba860acc28ae515c39b7dc6ac2 |
geth_mac | 8a88a6112b78ad810b816dc4d4189e5b1844b20c96483182c0aced142c7e64d1 |
geth_windows | 321e594c1b9ba585ceb27a079486abc6c8672682f39727b3ce76ae6020732d14 |
geth_linux_arm64 | 6d44623c279f53bb66d45465c495dc1fa8ca6cf5baf4e99db40202a7532858c3 |
v1.5.12
Description
Version 1.5.12 is a hot fix release that includes a single pull request aimed at enhancing the stability of Fast Finality following the Lorentz hard fork. Please upgrade your nodes to v1.5.12 to help strengthen the BSC's Fast Finality mechanism. For this release, simply replacing your binary is sufficient.
About this hot fix:
There was a DDoS protection rule for FastFinality, each remote peer is only allowed to send at most 10 votes per second. The number was calculated based 21 validators in each epoch and 3 seconds block interval, which is equal to 7(21/3) votes per second at most. But after Lorentz hard fork, with 1.5 seconds block interval, the vote frequency would be doubled to 14 votes per second. So the 10 votes per second is no longer valid. v1.5.12 increases it from 10 to 40, so it would be enough even after 0.75s block interval.
Any Risk If Nodes did not upgrade to v1.5.12?
Your node would still be able to work. But as the votes would be broadcasted in the whole BSC P2P network, if most of the nodes incorrectly reject some valid votes due to the rate limit control. Validators may not be able to collect enough votes, then the fast finality would be broken in this case.
Changelog
BUGFIX
#3057 eth/protocols/bsc: adjust vote reception limit
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | f551e37fa21faf740195ee0c1b7497d704631a12ba8b4d89b3baf4db8df6c476 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | 51698752ed3a2aa721c94b3403cfcc55c2a056f310c50d4609da3e546ddb6d64 |
geth_mac | 0d08a8ae29828b18eb428c9b1346485731da10b0f5c0f4b6b3a4506ca8124dd6 |
geth_windows | b8ddd8436746c499be2a685c82ff98b0bc0e528fac72ec7b004ffd721db58698 |
geth_linux_arm64 | 629a25867298488a05d59b548e4a59e553aafd630e5ec5918b1d6ef6599133f9 |
v1.5.11
Description
v1.5.11 is a maintenance release, mainly to support PBS(MEV) after BSC activate BEP-520: shorter block interval phase one: 1.5 seconds with Lorentz hard fork. PBS(MEV) is quite sensitive to the block timing, to make it more stable under 1.5 seconds block interval, it is necessary to update several MEV parameters.
v1.5.11 updates the two MEV parameters:
- defaultMaxBidsPerBuilder from 3 to 2
- defaultNoInterruptLeftOver from 400ms to 250
equal to config.toml:
[Eth.Miner.Mev]
MaxBidsPerBuilder = 2
NoInterruptLeftOver = 250000000
For this upgrade, simply binary replacement should be enough.
Changelog
FEATURE
#3008 params: add MaxwellTime
#3025 config.toml: default value of [Eth.Miner] and [Eth.Miner.Mev]
#3026 mev: include MaxBidsPerBuilder in MevParams
#3027 mev: update two default mev paramater for 1.5s block interval
BUGFIX
#3007 metrics: fix panic for cocurrently accessing label
IMPROVEMENT
#3006 jsutil: update getKeyParameters
#3018 nancy: update nancy ignore
#3021 chore: remove duplicate package imports
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | f551e37fa21faf740195ee0c1b7497d704631a12ba8b4d89b3baf4db8df6c476 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | 0d7da9c89ae3c31f3b79e31e0df9666a6c608bb104563cdb0cf8c39b46f49ffa |
geth_mac | a47e9e2704ef88ca6d910e43842e80750247d343f1130ad40d3ceca08ff8dc36 |
geth_windows | cafe763a0bc66ea7a65cb0eec4dddc0934848dbf9ef5ae51a84077a2ee5d3cd5 |
geth_linux_arm64 | 04505f274b7477f7f3b8d487046f1de4d676bc2d8c6a7c03595d45f6c615a2a7 |
v1.5.10
Description
v1.5.10 is for BSC Mainnet Lorentz hard fork, which is expected to be enabled at: 2025-04-29 05:05:00 AM UTC
, all BSC mainnet nodes need to be upgraded to v1.5.10 before the hard fork time. For this upgrade, simply binary replacement should be enough.
Lorentz includes one single BEP:
BEP-520: shorter block interval phase one: 1.5 seconds
Besides the 1.5 seconds block interval update, there are several other key parameters will be updated:
- Epoch: will increase from 200 to 500
- GasLimit: will decrease from 140M to 70M, so the overall throughput will stay unchanged
- Consecutive TurnLength: will increase from 4 to 8
- Other Parameters: pls refer BEP-520: Parameter Changes
Changelog
FEATURE
#3015 config: update BSC Mainnet hardfork time: Lorentz
BUGFIX
NA
IMPROVEMENT
#2985 core: clearup pascal&prague testflag and rialto code
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | f551e37fa21faf740195ee0c1b7497d704631a12ba8b4d89b3baf4db8df6c476 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | b8dd96036996098b139e431635f6a74fc82883bf72a0f2b87ae87a900813bb13 |
geth_mac | 6cbe7a87ba867e50374e4fa760f42743101fc5bd2726906b407b8505386781d2 |
geth_windows | 130199a319ef54031e5d43b7fbb5d51a851861db658db69e5433424d7bf97bc7 |
geth_linux_arm64 | 64242f0def51815e11366c046e5963e532eda1f9f32c06362ac68a247af40ade |
v1.5.9
Description
v1.5.9 is for BSC Testnet Lorentz hard fork, which is expected to be activated at: 2025-04-08 07:33:00 AM UTC
, all BSC testnet nodes need to be upgraded to v1.5.9 before the hard fork time. For this upgrade, simply binary replacement should be enough.
Besides hard fork setup, v1.5.9 also include one bugfix and some improvements, pls check the change log for detail.
Changelog
FEATURE
#2932 BEP-520: Short Block Interval Phase One: 1.5 seconds
#2991 config: update BSC Testnet hardfork time: Lorentz
#3001 mev: make max bids per builder per block configurable
BUGFIX
#2990 core/state: fix concurrent map read and write for stateUpdate.accounts
IMPROVEMENT
#2933 metrics: add more peer, block/vote metrics
#2938 cmd/geth: add example for geth bls account generate-proof
#2949 metrics: add more block/vote stats;
#2948 go.mod: update crypto to solve CVE-2025-22869
#2960 pool: debug log instead of warn
#2961 metric: add more block monitor metrics;
#2992 core/systemcontracts: update url for lorentz hardfork
#2993 cmd/jsutils: add tool GetMevStatus
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | f551e37fa21faf740195ee0c1b7497d704631a12ba8b4d89b3baf4db8df6c476 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | d636d05773ef7fe061819e57d67f41a22447bdcf284884254a465f9e11d1a8c1 |
geth_mac | 8ff6f20acb53288a78df014186fe609e2d314dc778a05beccfa6b72055e4a83c |
geth_windows | 8d3539e221cc73d2bf5b2f606a6a950813a769eee559fbde8db93c302de09f2d |
geth_linux_arm64 | 840e6b5972407145478c5340d07ae892e444648e188b6884c9aacfa7a3873799 |
v1.5.8
Description
notice: v1.5.8 is for validator only, other full nodes can ignore this version.
there is no breaking change in v1.5.8, simply binary replacement would be enough
v1.5.8 is a maintenance release for BSC validators to improve the current the PBS(MEV) mechanism.
Here are the key points of this release:
- enabled GreedyMergeTx by default
- fix a critical error on GasUsed check: bids with full GasUsed was marked as invalid by mistake
- improvement: add a stop timer, so the last simulating bid would have more chance to be selected
- improvement: do not interrupt the simulating if new bid was arrived too later.
Notice: For validator node, pls confirm it has the bellow options in config.toml:
[Eth.Miner]
DelayLeftOver=50000000
[Eth.Miner.Mev]
GreedyMergeTx = true
BidSimulationLeftOver = 50000000
NoInterruptLeftOver = 400000000
Changelog
FEATURE
- #2955 pbs: enable GreedyMergeTx by default
BUGFIX
- #2967 fix: gas compare in bid simulator
IMPROVEMENT
- #2951 bump golang.org/x/net from 0.34.0 to 0.36.0
- #0000 golang: upgrade toolchain to v1.23.0 (commit:3be156eec)
- #2957 miner: stop GreedyMergeTx before worker picking bids
- #2959 pbs: fix a inaccurate bid result log
- #2971 mev: no interrupt if it is too later
- #2974 miner: add metrics for bid simulation
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | f551e37fa21faf740195ee0c1b7497d704631a12ba8b4d89b3baf4db8df6c476 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | 17219437b11dda2b945c194b14a94a0f25e6be6be44d58c3975517a049d7abbc |
geth_mac | e57eb1952236989c234cc6a8de5265cdb4af7d4e2b43229b20da555fe5ceb46a |
geth_windows | c90e0f9c0d89b99c2a967dda1725f322ce1f842c121ee30d40de1a49025c6f79 |
geth_linux_arm64 | e3b770421a57850e023ad588c13c6fe33da0b8c622144381ac89ad810ab3b90c |
v1.5.7
Notice(Mainnet Pascal Hard Fork)
v1.5.7 is for BSC mainnet Pascal hard fork, which will be enabled at: 2025-03-20 02:10:00 AM UTC
, all BSC mainnet nodes need to be upgraded to v1.5.7 before the hard fork time. For this upgrade, simply binary replacement should be enough.
Besides hard fork, v1.5.7 also include one bugfix and some improvements:
- 1.fix the windows binary release, which is caused by a mismatched dependency.
- 2.increase the efficient GasLimit by reducing the gas reserved for systemTx, after v1.5.7 blocks can almost reach 140M GasLimit target now(previously it was 120M), which would increase the network throughput.
- 3.performance improvement by removing unnecessary signer recover code.
- 4.update the TxPool gastip check logic, so some zero-gasprice transactions that are added by block reorg will be dropped, it would be helpful to Megafuel.
ChangeLog
v1.5.7 conduct small upstream code merge to follow the latest pectra hard fork and apply some bug fix. There are two PR for the code merge:
- #2897 upstream: merge tag 'geth-v1.15.1' into bsc-develop
- #2926 upstream: pick bug fix from latest geth
Besides code merge, there are also several important bugfix/improvements, and setup mainnet Pascal hard fork time:
FEATURE
- #2928 config: update BSC Mainnet hardfork date: Pascal & Praque
BUGFIX
- #2907 go.mod: downgrade bls-eth-go-binary to make it same as the prysm-v5.0.0
IMPROVEMENT
- #2896 consensus/parlia: estimate gas reserved for systemTxs
- #2912 consensus/parlia: improve performance of func IsSystemTransaction
- #2916 miner: avoid to collect requests when getting pending blocks
- #2913 core/vm: add basic test cases for blsSignatureVerify
- #2918 core/txpool/legacypool/legacypool.go: add gasTip check when reset
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | e9143c17e5369414fb3a569155eb5c66cee7c4395c13695b73d669a9df46fa46 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | 5957892ed2ccd6694830366f34c3a684e784f15cefee6ccffbabacc1410a4712 |
geth_mac | 721b06e3aa0f8e2cba78c37278c6001089cdf0ba0342eaff69f3771152f77afd |
geth_windows | 71e659d6547e00165d3c51348ee13c4e61ad2287c77ac8815f2abbc4c635a98f |
geth_linux_arm64 | 7c6ae7b236a317b5d9c95060b21b3417f9f6fe4482fe3757a5a6acb434a2e2f8 |
v1.4.18
Notice
For validators, pls upgrade your nodes according to your node's current running binary version:
- For v1.4.x: upgrade to v1.4.18, since v1.4.18 could be more reliable.
- For v1.5.x: upgrade to v1.5.6, as v1.5.x binary can not be rolled back to v1.4.x
For upgrade, simply do binary replacement should work.
Changelog
- PBS improvement patch, which would accept bids from builders during heavy traffic, refer: #2892
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | e9143c17e5369414fb3a569155eb5c66cee7c4395c13695b73d669a9df46fa46 |
testnet.zip | 042a1884b00e6cd72af5c3e31c5985b9d8a78a29ccc19fb4ba660e0da1e621e7 |
geth_linux | 3d82766c4154983930fdf5bec82c12883870e234f3b547e6b4ae71c2f88e6972 |
geth_mac | ec78e7d4dd1d5e1dde6bbd0c1ef1e012ea73ec70fa9c9fa4918f4da5f84e1757 |
geth_windows | 3b746e22b0aeb3621c648a945961e73257368856aad20b7c0e45f02b42b7419d |
geth_linux_arm64 | cf7fe474c6c4bea2d5a94e5cc6e81ada4c4d15fb30d278eba013ae1498eb0362 |