Releases: bnb-chain/bsc
v1.2.13
Release v1.2.13 is a maintenance release.
It is based on v1.2.12 with only 2 PRs: one is for performance enhancement, the other one is to fix 2 RPC APIs.
It does not contain the large code changes of v1.3.0, so it could be more reliable.
v1.2.13 has great performance improvement to calculate the root hash of some big contracts. Validator and full node operators are suggested to upgrade to this version.
Changelog
IMPROVEMENT
- #1954 performance: keep trie prefetch during validation phase
BUGFIX
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | a7e17cbd8533a5735bca57a03fd7519687a6de6f7484e99bcbf1d50721200716 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | 25d8dc6a863409446f1183af18b337859976d6578f98354e3b81c2027fcd2b4d |
geth_mac | 311563a18be604187f94b993b3a6d7074eb4f9255739861148492fa494a8dd26 |
geth_windows | d5a8fd49087701103d48a837dd23aea1d5d9e586788b9402c325bec20899053b |
geth_linux_arm64 | 53c0c3e883b84619e9a87666587e023bbc0a8981c67c50e0e9ffd07bcb2d1b36 |
v1.3.0
Attention
Do not use this version on critical business!!!
This is a maintenance release with huge code changes for upstream catch up.
Although many tests have been done before release, there could still have many potential bugs and need more time to verify its reliability.
It's better to use this version cautiously and it is not recommended to use it on critical business. User can help try it out on some none critical environment and would be appreciated to report issues that you found.
We have already found some performance decline in this release and we will improve it in the following releases.
Usage Changes
** OptionUltraLightFraction
& Noverify
are no longer supported and should be removed from config.toml
** Options of [Eth.Ethash]
are no longer supported and should be removed from config.toml
** Validators need to specify the etherbase address by add this argument on node start up: --miner.etherbase <your coinbase addr>
Changelog
RPC
- internal/ethapi: add debug_getRawReceipts RPC method (#24773)
- node, rpc: add ReadHeaderTimeout config option (#25338)
- rpc: check that "version" is "2.0" in request objects (#25570)
- rpc: support injecting HTTP headers through context (#26023)
- rpc: websocket should respect the "HTTP_PROXY" by default (#27264)
- rpc: change BlockNumber constant values to match ethclient (#27219)
- eth: make debug_StorageRangeAt take a block hash or number (#27328)
- eth,core: add api debug_getTrieFlushInterval (#27303)
- rpc: add limit for batch request items and response size (#26681)
- core/types: support yParity field in JSON transactions (#27744)
- eth/filters: send rpctransactions in pending-subscription (#26126)
Flag
- cmd/geth: rename --whitelist to --eth.requiredblocks (#24505)
- cmd: migrate to urfave/cli/v2 (#24751)
- cmd/utils: print warning when --metrics.port set without --metrics.ad…
- cmd/devp2p: add --extaddr flag (#26312)
- core,eth: adddebug_setTrieFlushInterval to change trie flush frequ
- miner, cmd, eth: require explicit etherbase address (#26413)
- cmd/geth: Add[--log.format] cli param (#27001)
- cmd/geth: rename --vmodule to --log.vmodule (#27071)
- params, trie: add verkle fork management + upgrade go-verkle (#27464)
GraphQL
- graphql: fee history fields (#24452)
- graphql: add rawReceipt field to transaction type (#24738)
- graphql: add raw fields to block and tx (#24816)
- graphql: return correct logs for tx (#25612)
- graphql: add query timeout (#26116)
- graphql, node, rpc: improve HTTP write timeout handling (#25457)
- graphql: implement withdrawals (EIP-4895) (#27072)
Client
- ethclient: add CallContractAtHash (#24355)
- ethclient: add PeerCount method (#24849)
- ethereum, ethclient: add FeeHistory support (#25403)
- eth/filters, ethclient/gethclient: add fullTx option to pending tx fi…
- ethclient: include withdrawals in ethclient block responses (#26778)
Tracer
- eth/tracers/js: drop duktape engine (#24934)
- eth/tracers: add support for block overrides in debug_traceCall (#24871)
- eth/tracers: add onlyTopCall option to callTracer (#25430)
- eth/tracers: remove revertReasonTracer, add revert reason to callTracer
- eth/tracers: add diffMode to prestateTracer (#25422)
- eth/tracers: add multiplexing tracer (#26086)
- core/vm: set tracer-observable value of a delegatecall to match parent
value
- eth/tracers: add native flatCallTracer (aka parity style tracer) (#26…
- eth/tracers/native: set created address to nil in case of failure (#2…
- eth/tracers: report correct gasLimit in call tracers (#27029)
- eth/tracers: addtxHashfield on txTraceResult (#27183)
- eth/tracers: add ReturnData in the tracer's response (#27704)
Command
- cmd/geth: inspect snapshot dangling storage (#24643)
- core/state/snapshot: detect and clean up dangling storage snapshot in generation
- internal/ethapi: add db operations to api (#24739)
- cmd/geth: adddb check-state-contentto verify integrity of trie nodes (#24840)
- ethdb/remotedb, cmd: add support for remote (readonly) databases
- cmd/abigen: accept combined-json via stdin (#24960)
- cmd/geth: extend traverseRawState command (#24954)
- cmd/geth, core/state/snapshot: rework journal loading, implement account-check (#24765)
- cmd/geth: add a verkle subcommand (#25718)
- cmd/geth, cmd/utils: geth attach with custom headers (#25829)
- core/rawdb: refactor db inspector for extending multiple ancient storage
- cmd/clef: addlist-accountsandlist-walletsto CLI (#26080)
- [cmd/clef: add importraw feature to clef (#26058)](17744639dafc...
v1.2.12
Description
Release v1.2.12 is a maintenance release for BSC mainnet and testnet.
It mainly support BootNodes on BSC mainnet, it would be easier for user to sync with the BSC network. User no longer need to setup the StaticNodes
in config.toml any more, just leave empty and make sure delete the BootstrapNodes
field in config.toml, may check the mainnet.zip
of this release.
And it also fixed three bugs to make the node more reliable, not critical bugs, pls check the change log for detail.
You may refer this post on how to use BootNodes: https://forum.bnbchain.org/t/try-bootnodes-after-bsc-release-v1-2-12/1998
Changelog
FEATURE
- #1852 discov: add hardcoded bootnodes
BUGFIX
- #1844 crypto: Update BLST to v0.3.11
- #1854 fetcher: no import blocks before or equal to the finalized height
- #1855 eth/tracers: trace system tx should add intrinsicGas
IMPROVEMENT
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | fc51b3c67893effa5236cf707495286257bdfa98a024b166c3c540d3b83bb0c7 |
geth_mac | 2d6b016ee594a4b6b891821221ed4a117a95276fee50f9963862b6cf2728954f |
geth_windows | 07f32d1ef3e591273818eb129b4880a3769949dc323b2d43b852b4467e8f149b |
geth_linux_arm64 | 870daa20e25c088748d6f290fb1244ae4bf0a86d9b22707507bf9f63cfd5e914 |
v1.2.11
This is another maintenance release for BSC mainnet and testnet.
It mainly fixed a sync bug, for peers that are lagging behind too much blocks(>90,000), it may not be able to sync.
And it also provides a new option to disable attestation: --disablevoteattestation on some special cases and the option --disablebscprotocol was abandoned.
Changelog
FEATURE
- #1797 client: add FinalizedHeader/Block to use the fast finality
- #1805 vote: remove DisableBscProtocol and add flag to skip votes assmebling
BUGFIX
- #1829 fix: lagging nodes failed to sync
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | 5829efd0f866ec2726c260f4c840bcfecb9faff36257a0ff62b0f5a50346a75d |
geth_mac | 3f22170b5e2f3eefcea45f7709c800a291c294bd7e38656aac7254629db83cdb |
geth_windows | 480b7a3bc48712d34424cef8dddd1a95a0e16793fea762579b7fdb136cef3c53 |
geth_linux_arm64 | 714a0160dc17963343002eb9dfa8a3ea9b31db63aac534899d88deec3ad9c221 |
v1.2.10
Description
Release v1.2.10 is a maintenance release for BSC mainnet and testnet.
It fixed one bug for bootnode and two bugs for FastFinality feature. And it did some enhancement to FastFinality feature, like less log, attestation check, new RPC API and a tool to decode the BlockHeader.extra.
Validators are encouraged to use this version, other full node operators can skip this version if they have already upgraded to v1.2.9
Changelog
FEATURE
- #1780 log: reduce logs when receiving too much votes from a peer
- #1788 metrics: add txpool config into metrics server
- #1789 rpc: add GetFinalizedHeader/Block to simplify using the fast finality feature
- #1791 finality: add more check to ensure result of assembleVoteAttestation
- #1795 tool: add a tool extradump to parse extra data after luban
BUGFIX
- #1773 discov: do not filter out bootnodes
- #1778 vote: backup validator sync votes from corresponding mining validator
- #1784 fix: exclude same votes when doing malicious voting check
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | 01c226683d0aa6ff1523d159c4c7bc8edfa8b382b97d7cd9909ac82c5581fc3a |
geth_mac | b5432157db60a2360e1b5453c9c77a516ee484bca005ac02fa0fd4f05780a91f |
geth_windows | 2f7a011118c394079d1c389b50561c780eb876fafe3d6900d3b4cd4c7234bfdb |
geth_linux_arm64 | ab3a07fc9153116a26d802c63e411d58adc2b681d50069b854f89dc6b1088465 |
v1.2.9
Attention
Important: For validators, please follow the steps to setup your vote key to enable fast finality: How To Set Up The Vote Key
Description
It is a hard-fork release for BSC mainnet.
It sets up the hard fork height for both Plato and Hertz(Berlin,London).
The two hard forks have been running on Testnet for a while and their hard fork height are close, so we decide to put them within a single release to save the upgrade effort.
For the detail changes of the two hard fork, pls refer: https://forum.bnbchain.org/t/bnb-chain-upgrades-mainnet/936
The validators and full node operators on mainnet should switch their software version to v1.2.9 before Aug-10th-2023.
Plato
The mainnet is expected to have a scheduled hardfork upgrade named Plato at block height 30,720,096. The current block generation speed forecasts this to occur around Aug-10th-2023.
The Plato hardfork includes 1 BEPs:
- BEP-126: Introduce Fast Finality Mechanism, the 2nd part.
Hertz
The mainnet is expected to have 3 scheduled hardfork upgrades named (Hertz, London, Berlin)
at same block height 31,302,048. The current block generation speed forecasts this to occur around Aug-30th-2023.
The Hertz
hardfork will port some of London&Berlin
upgrades from Ethereum to BSC for compatiblity. But due to the difference between the 2 networks, there would inevitably has difference in implementation, especially the difference in EIP-1559, the BaseFee will be zero on BSC, so this hard fork will neither introduce new burn mechanism nor the concept of GasTip. In short words, it only provides the interface, but actually no change to the current BSC Gas mechanism.
Here is the list of Hertz
upgrade:
-
Berlin Upgrades Ported:
a.BEP-225: Implement EIP-2565 ModExp Gas Cost
b.BEP-229: Implement EIP-2718 Typed Transaction Envelope
c.BEP-230: Implement EIP-2929 Gas cost increases for state access opcodes
d.BEP-231: Implement EIP-2930: Optional access lists -
London Upgrades Ported:
a.BEP-227: Implement EIP-3198: BASEFEE opcode
b.BEP-226: Implement EIP-1559 with base fee of 0
c.BEP-228: Implement EIP-3541: Prevent deploying contracts starting with 0xEF
d.BEP-212: Implement EIP-3529: Reduction in Refunds
There are many changes with these BEPs, DApp developers & users needs to make sure they clearly understand these changes and the potential impact to their business.
- New transaction types are supported, i.e. AccessList & DynamicFee(1559), by BEP-229, BEP-231, BEP-226
- The gas metering mechanism has been changed, by BEP-225, BEP-230, BEP-212;
- New EVM opcode(BASEFEE) is supported, by BEP-227
- Prevent deploying contracts starting with 0xEF, by BEP-228
Change Log
FEATURE
- #1735 log: added option to rotate logs based on number of hours with a maximum of 24
- #1727 discov: increase bucket size for bootnodes
- #1739 eth/tracers: add multiplexing tracer
- #1775 upgrade: several hardfork block height on mainnet: Plato, Hertz(Berlin, London)
BUGFIX
- #1741 fix: defend ddos voting attack with other mini fix according to audit
IMPROVEMENT
- #1725 log: uncomment some trace log
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | fbbf6e6f0abef96cd2cf230afaef1656929e2ee2b78adc901e0dfbecd254b0fc |
geth_mac | c8837921878b13efe933cf6033609da82f2bd3796cc613e005a2f50c7c9f1e47 |
geth_windows | a19a6863b4158f1797a5eef24bc59f5b0cbe4943f7d35530c4b9b4c2bb187aa5 |
geth_linux_arm64 | 6eda77dc7422b79581d14d65e4647a1913818f919fd94dba9feffd5232f3df25 |
v1.2.8
v1.2.8 is a maintenance release, it mainly fixes a potential deadlock on FastFinality VotePool and provides 2 other features(FastFinality & Web3 API related).
Changelog
FEATURE
- #1626 eth/filters, ethclient/gethclient: add fullTx option to pending tx filter
- #1726 feat: support password flag when handling bls keys
BUGFIX
- #1734 fix: avoid to block the chain when failed to send votes
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 4fc78d0a1f2e15764ed2ec72ada5cb3d0e0f2d59fdf873fedd8f5057be8198f1 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | 903f2dc9a4621de36c24eebdad0e152443dc01838c60b5fa0ce4160e0465ed2e |
geth_mac | 8d03b99de532359fe3d695eaa4b6fce3baa35ea158499e990a72e9480cde1164 |
geth_windows | 51ce63c885452bf5899bcbaacd33437592a4dcd891d71da8bf665e7c37c453ad |
geth_linux_arm64 | 4555afd19eb298d082859bd4c58caa4beedfa8b4f4ac6ac0fa27f8b4a23815e6 |
v1.2.7
Attention
- SELFDESTRUCT will no longer be refunded
- There are 3 hard forks, node operators need to set them up at the same fork height, i.e.
BerlinBlock = 31103030
,LondonBlock = 31103030
,HertzBlock = 31103030
Description
v1.2.7 is a hard-fork release for BSC testnet.
The testnet is expected to have 3 scheduled hardfork upgrades named Hertz, London, Berlin)
at same block height 31,103,030. The current block generation speed forecasts this to occur around 29th Jun 2023.
The validators and full node operators on testnet should switch their software version to v1.2.7 before 29th Jun 2023.
The Hertz
hardfork will port some of London&Berlin
upgrades from Ethereum to BSC for compatiblity. But due to the difference between the 2 networks, there would inevitably has difference in implementation, especially the difference in EIP-1559, the BaseFee will be zero on BSC, so this hard fork will neither introduce new burn mechanism nor the concept of GasTip. In short words, it only provides the interface, but actually no change to the current BSC Gas mechanism.
Here is the list of Hertz
upgrade:
-
Berlin Upgrades Ported:
a.BEP-225: Implement EIP-2565 ModExp Gas Cost
b.BEP-229: Implement EIP-2718 Typed Transaction Envelope
c.BEP-230: Implement EIP-2929 Gas cost increases for state access opcodes
d.BEP-231: Implement EIP-2930: Optional access lists -
London Upgrades Ported:
a.BEP-227: Implement EIP-3198: BASEFEE opcode
b.BEP-226: Implement EIP-1559 with base fee of 0
c.BEP-228: Implement EIP-3541: Prevent deploying contracts starting with 0xEF
d.BEP-212: Implement EIP-3529: Reduction in Refunds
There are many changes with these BEPs, DApp developers & users needs to make sure they clearly understand these changes and the potential impact to their business.
- New transaction types are supported, i.e. AccessList & DynamicFee(1559), by BEP-229, BEP-231, BEP-226
- The gas metering mechanism has been changed, by BEP-225, BEP-230, BEP-212;
- New EVM opcode(BASEFEE) is supported, by BEP-227
- Prevent deploying contracts starting with 0xEF, by BEP-228
Changelog
FEATURE
- #1697 upgrade: block height of Hertz(London&Berlin) on testnet
- #1686 eip3529tests: refactor tests
- #1676 EIP-3529 (BEP-212) Unit tests for Parlia Config
- #1660 feat: add a tool for submitting evidence of maliciousvoting
- #1623 P2P: try to limit the connection number per IP address
- #1608 feature: Enable Berlin EIPs
- #1597 feature: add malicious vote monitor
- #1422 core: port several London EIPs on BSC
- #1717 feat: support creating a bls keystore from a specified private key
- #1720 metrics: add counter for voting status of whole network
IMPROVEMENT
- #1662 consensus, core/rawdb, miner: downgrade logs
- #1654 config: use default fork config if not specified in config.toml
- #1642 readme: update the disk requirement to 2.5TB
- #1621 upgrade: avoid to modify RialtoGenesisHash when testing in rialtoNet
BUGFIX
- #1682 fix: set the signer of parlia to the most permissive one
- #1681 fix: not double GasLimit of block upon London upgrade
- #1679 fix: check integer overflow when decode crosschain payload
- #1671 fix: voting can only be enabled when mining
- #1663 fix: ungraceful shutdown caused by malicious Vote Monitor
- #1651 fix: remove naturally finality
- #1641 fix: support getFilterChanges after NewFinalizedHeaderFilter
- #1645 lightclient: fix validator set change
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 13563cb06b18accd4b3b9df43ca94ffcef56992c56dc479c9bfe4a74ab72caba |
testnet.zip | 9a81824dfdfae976edceee646691fb8ed262f4d5adbff74f444770da5e2793e5 |
geth_linux | 798ffe167895d2998e2e4a482a5c0364032fa917f53b6e8446f3f2ccad00ce4e |
geth_mac | bf0d477989790aa137155146e072c02e928bd1526ee1b5ed8721b10e9ed6f79e |
geth_windows | c2015fafbd83dc5b1c1374fce1b667bcb20c52aefea299c9ba2dcadde9d152b5 |
geth_linux_arm64 | a7e3a7db7ffa4eb464ae850305ba9f5b9a44277ea34c1cefe33034c454332a29 |
v1.2.6
Abandoned.
It will be replaced by v1.2.7, since it missed a desired change.
v1.2.5
Attention
The previous release v1.2.4
has a performance issue on node shutdown, could take quite a long time(more then several minutes) to gracefully shutdown the node, v1.2.5
only fixes this issue.
For validators and full node operators, if you are using v1.2.4
, it is ok to keep running without upgrading to v1.2.5
.
But since long time shutdown could result in a force kill if you are using like: systemd, which may damage the database with a small chance. It would be better for you to start another backup node before upgrading to v1.2.5
.
Changelog
BUGFIX
- #1675 goleveldb: downgrade the version for performance
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | 13563cb06b18accd4b3b9df43ca94ffcef56992c56dc479c9bfe4a74ab72caba |
testnet.zip | 9a81824dfdfae976edceee646691fb8ed262f4d5adbff74f444770da5e2793e5 |
geth_linux | a36e354da180a8220ff84e656e7b590874175d47b563c6854f47d87875d0f794 |
geth_mac | de57fe043e721284917155a369934d7ff69e1e9aec1e19a5724ea586f078fb2f |
geth_windows | 255a29b2ae1013b13c03edb55b88af0076da0979c81b8bb6a93e6d074e5c68f4 |
geth_linux_arm64 | e32fb071d46a4edd51696171f41ed3cacd567600e79b77b3896aa7466007bc35 |