Skip to content

Releases: bnb-chain/bsc

v1.5.17

24 Jun 09:12
d689f3b
Compare
Choose a tag to compare

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

05 Jun 02:56
38d8f62
Compare
Choose a tag to compare

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:

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

21 May 06:24
256d881
Compare
Choose a tag to compare

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:

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

25 Apr 12:45
Compare
Choose a tag to compare

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

18 Apr 02:35
5735d8a
Compare
Choose a tag to compare

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

10 Apr 03:09
1ded6d7
Compare
Choose a tag to compare

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

02 Apr 04:48
b970c01
Compare
Choose a tag to compare

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

23 Mar 10:04
294c732
Compare
Choose a tag to compare

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

03 Mar 10:05
0449349
Compare
Choose a tag to compare

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

15 Feb 13:19
Compare
Choose a tag to compare

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