Skip to content

Releases: bnb-chain/bsc

v1.1.9

12 Apr 02:40
74ecbf2
Compare
Choose a tag to compare

Release v1.1.9 is a maintenance release. It includes several performance improvement and bug fix.

Changelog

IMPROVEMENT

  • #792 add shared storage for prefetching state data
  • #795 implement state verification pipeline in pipecommit
  • #803 prefetch state data during the mining process
  • #812 skip verification on account storage root to tolerate with fastnode when doing diffsync
  • #818 add shared storage to the prefetcher of miner
  • #820 disable diffsync when pipecommit is enabled
  • #830 change the number of prefetch threads

BUGFIX

  • #797 fix race condition on preimage in pipecommit
  • #808 fix code of difflayer not assign when new smart contract created
  • #817 fix bugs of prune block tool
  • #834 fix deadlock when failed to verify state root in pipecommit
  • #835 fix deadlock on miner module when failed to commit trie
  • #842 fix invalid nil check of statedb in diffsync

Assets

Assets Sha256 Checksum
mainnet.zip 6dd6976b9c8d407e95ed99cd46f7badfa410f3f374ea3e360defab0f63fa3ed2
testnet.zip c9c20ceb98911cc3fa7ceda3e5efbf17a3791fdc46f2f6ab13af7ac77f1a65eb
geth_linux c69ade6eb11399aa2296933279a2760f947092d77ddc4b4c1a8bda95707db107
geth_mac 5648f57f988752a2e0cd8fc5a6cfccdc905d01e2604788766e59ca66e9316066
geth_windows 6389751c6464ca67239816d6a14740ce78e9b5f6fe5d33ced6fa768027def908
geth_linux_arm5 7463c0db02b51f0810107a50cf254cda7a466a4d0dc8d7c4486e31966e2f984c
geth_linux_arm6 aff8da399c909f5fa94ca2651eecb7dcda844e9b3d6e5c8c23f9ebcb3f530db7
geth_linux_arm7 0bdf125b52d32b593675bc3dc1b4a41448114138f3c3ed0b94c3fc633c75351a
geth_linux_arm64 fa770b25cba39855a638661ed19b8fa2d28a3d880855e5b25d374f36a436b0d9

v1.1.8

28 Jan 03:54
859186f
Compare
Choose a tag to compare

Description

Release v1.1.8 is a performance release. Verification && Commit Pipeline, Go Native Tracer and Block Prune are introduced in this release.

Change log

FEATURES

  • #668 implement State Verification && Snapshot Commit pipeline
  • #581 implement geth native trace
  • #543 implement offline block prune tools

IMPROVEMENT

  • #704 prefetch state by applying the transactions within one block
  • #713 add ARM binaries for release pipeline

BUGFIX

  • #667 trie: reject deletions when verifying range proofs
  • #643 add timeout for stopping p2p server to fix can not gracefully shutdown issue
  • #740 update discord link which won't expire

Changes

State Verification && Commit Pipeline

State verification and storage commit pipeline is introduced in #668. It is an experimental feature that is expected to improve the performance, enable it by appending --pipecommit to the process command.

Ancient Data Prune

A new tool is introduced to prune ancient undesired block data, it will discard block, receipt, header in the ancient db to save space.
Example: ./geth snapshot prune-block --datadir ./node --datadir.ancient ./chaindata/ancient --block-amount-reserved 1024.

Note: 1. Stop the client before pruing; 2. datadir.ancient is based on datadir, ./chaindata/ancient means ${datadir}/geth/chaindata/ancient actually

Go Native Tracer

The default tracer is now based Golang implementation rather than Js implementation.

Assets

Assets Sha256 Checksum
mainnet.zip 6dd6976b9c8d407e95ed99cd46f7badfa410f3f374ea3e360defab0f63fa3ed2
testnet.zip c9c20ceb98911cc3fa7ceda3e5efbf17a3791fdc46f2f6ab13af7ac77f1a65eb
geth_linux 73a30eb9d12b82374bf8d1f39369be27f8bee97095b8ad9ba89b1bb8662e3e2a
geth_mac 556ad673d9aa4e5daf32a15a6dcdc34d34a0711a6afb1878dbe51b6c013ce1e5
geth_windows 402bf3587411b445d0b4c6918453caa660af8daf9167693442d441e8343d03b7
geth_linux_arm5 5158e00c073574caf080c9272b7b6ef11b14ac8baee0f391b4f3b11967a2b0e8
geth_linux_arm6 d2f8ec1c94461f0bc1c78b2ea8d8722ea341b1e5b525361ca1b3b445fdf330c5
geth_linux_arm7 87aa64d0d54275c4e28eb6c67d8103f6bba7ebcc1121d21da44f14c6f8168372
geth_linux_arm64 c328dba014e0bc4fa8f2ebd90e37dcc4e7512f6b2c0901d6d32798f1800da2c1

v1.1.7

05 Dec 04:30
74f6b61
Compare
Choose a tag to compare

This is a hot fix release for a syncing issue during diffsync, check #628 for more details. All clients are suggested to upgrade.

If you come across with Bad Block error with a log message like: expected tx hash xx, get xx, nonce xx, to xx, value xx, gas xx, gasPrice xx, data xx. Following is the guide to recover the node:

  1. Stop The node.
  2. Upgrade the binary to the latest release.
  3. Start the node with --snapshot=false
  4. Wait for a few minutes(it depends on how fast the node is), until the block height is 128 higher than where it stopped.
  5. Restart the node with --snapshot=true
  6. The node will continue to sync and repair the corrupt data.

Changelog

BUGFIX

  • #628 fix state inconsistent when doing diffsync

Assets

Assets Sha256 Checksum
mainnet.zip 4a2ad47362afa6c387ed9acd7f8f050b356e61ac77b8094b6116aa17ae90972b
testnet.zip c9c20ceb98911cc3fa7ceda3e5efbf17a3791fdc46f2f6ab13af7ac77f1a65eb
geth_linux 3e5a73d46ee944c89c45adc92a1f7347bc83658a64a1595ba7635c05c0600715
geth_mac 9d9e78a1411a43a1c3cfe0fe6320c67d500ab91692164fbde07f32e3f6c12aff
geth_windows 9fe9ce7cf540fcb1171c9e75b9ae8ad917907657d1d0b47072e07e172b0a3b3e

v1.1.6

29 Nov 06:14
Compare
Choose a tag to compare

Description

This is a security release, including a DoS issue fix from go-ethereum, leveldb improvement from go-ethereum, and a feature to improve p2p tx broadcast function.

Example

This feature is introduced to handle some extreme situations, it won't affect the original function, and it is disabled by default. Users can enable this feature by setting TxPool.ReannouceTime according to their needs.

geth --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 --txpool.reannouncetime 5m

Changelog

BUGFIX

  • #582 the DoS vulnerabilities fixed in go-ethereum v1.10.9

IMPROVEMENT

  • #578 reduce memory allocation and upgrade snappy version

FEATURES

  • #570 reannounce local pending transactions

Assets

Assets Sha256 Checksum
mainnet.zip 541028a68a26dc1d0828b144626e8d064ac9d0b6db1ad499700ec6f62559c336
testnet.zip c9c20ceb98911cc3fa7ceda3e5efbf17a3791fdc46f2f6ab13af7ac77f1a65eb
geth_linux 7209ab26df6d70bcc7094353f73d0ad694e2816efae59c04848629ccd5bf9bd7
geth_mac 2f3a698f82186fd86144ae933f4244ade70faaa2436aeb8b3f8156cb445e7d1d
geth_windows 00b58653857ae9c7c5cd5e02183ca328b99f6dc9d874b670a02d1a606271a923

v1.1.5

16 Nov 07:03
8ff7d53
Compare
Choose a tag to compare

v1.1.5 is a hard fork release.

v1.1.5 brings Bruno hard fork which introduces a real-time burning mechanism into the economic model of BSC. Please refer to BEP95 for more details. The Bruno hard fork is expected to happen at block height 13082000. The current block generation speed forecasts this to occur around November 30th at 08:00 AM (UTC). All clients are recommended to upgrade by November 30th.

We improved the diffsync protocol in this release and rolled it out as a stable feature. Diff sync improves the syncing speed by 60%~70% approximately according to the test. All full nodes are suggested to enable it by adding --diffsync in the starting command. Refer to BEP93 for more details.

Changelog

BUGFIX

  • #509 fix graceful shutdown bug

IMPROVEMENT

  • #536 get diff accounts by replaying block when diff layer not found
  • #527 improve diffsync protocol in many aspects
  • #493 implement fast getDiffAccountsWithScope API

Assets

Assets Sha256 Checksum
mainnet.zip 0e0f1185050428124011edab31df40d94db40e521fedd9279ee77bcb6fde3b14
testnet.zip 0259269be86fbdfce14efe40e99874b95a4a3ed30949463c0cef9e776eb6b1b2
geth_linux 37018164e1af4ceecef528e9efcecbb79f62bb1ec5dd0a40a76e7a44a4ff4fbd
geth_mac b72974f906e45ab67febcc7e21813c3ca302dc6cd4810c723daf7e247d337d10
geth_windows 5f948be5ceda3eb3da9cd94cf6652b5913d266cdcf39e07eea8c4ef57516d3ad

v1.1.4

02 Nov 06:18
30972a7
Compare
Choose a tag to compare

V1.1.4 is a release mainly for testnet. V1.1.4 brings a hard fork Bruno that introduces a real-time burning mechanism into the economic model of BSC. For detail, you can refer to bep 95.

The fork height of Bruno in testnet is 13837000, around 2021 11-05 02:00 UTC.

The fork height of Bruno in mainnet will come along with the next release.

It also contains some improvements and bug fixes.

Changelog

IMPROVEMENT

  • #472 add metrics for contract code bitmap cache
  • #473 fix ci test flow

BUGFIX

  • #491 fix prefetcher related bugs

FEATURES

  • #480 implement bep 95

Assets

Assets Sha256 Checksum
mainnet.zip 541028a68a26dc1d0828b144626e8d064ac9d0b6db1ad499700ec6f62559c336
testnet.zip 0259269be86fbdfce14efe40e99874b95a4a3ed30949463c0cef9e776eb6b1b2
geth_linux b3966d354333bde25c3cb8d6b4f553669f55859047fb11556ba3c32b58214de1
geth_mac 4c421841507810d2a93813c0873d0ee0fc7c9871a50481dc87e0248a003e87df
geth_windows 201c0655bf6c8a7da379358eded3b68bcfe90db6f2b55b48849fc92113ae9d4a

v1.1.3

20 Oct 04:15
b6035c1
Compare
Choose a tag to compare

Release v1.1.3 is a performance improvement release. It introduces diff sync protocol to help nodes sync faster, try to enable it by adding --diffsync flag to the node. The performance of diff sync depends on how many nodes have enabled it within the network, so it may take weeks to actually take effect.

Changelog

FEATURES

  • #431 Export get diff accounts in block api
  • #412 add extension in eth protocol handshake to disable tx broadcast
  • #376 implement diff sync

Improvement

  • #456 git-flow support lint, unit test, and integration testnet.zip
  • #449 cache bitmap and change the cache type of GetCode
  • #454 fix cache key do not have hash func
  • #446 parallel bloom calculation
  • #442 ignore empty tx in GetDiffAccountsWithScope
  • #426 add block proccess backoff time when validator is not in turn and received in turn block
  • #398 ci pipeline for release page

BUGFIX

  • #446 fix concurrent write of subfetcher
  • #444 fix blockhash not correct for the logs of system tx receipt
  • #409 fix nil point in downloader
  • #408 core/state/snapshot: fix typo

Assets

Assets Sha256 Checksum
mainnet.zip 541028a68a26dc1d0828b144626e8d064ac9d0b6db1ad499700ec6f62559c336
testnet.zip 0259269be86fbdfce14efe40e99874b95a4a3ed30949463c0cef9e776eb6b1b2
geth_linux 646152e9ed610e72c831ad4589729a2142d5e8a9a539e9cfa5dff1d6cca83da2
geth_mac 308e900880c9d7f6f7cb3ca172b85312fdf5713554ea75304822732bbedba1bd
geth_windows 1d55ad103d9bb054d12d566cefcada51eacb58cd0013399d428161a1ed904fd3

v1.1.2

31 Aug 02:50
c4f9312
Compare
Choose a tag to compare

A hotfix release to patch a vulnerability in the EVM (CVE-2021-39137).

Check ethereum/go-ethereum#23446 to follow the attack vector update.

Changelog

Security

  • #379 A pre-announced hotfix release to patch a vulnerability in the EVM (CVE-2021-39137).

Assets

Assets Sha256 Checksum
mainnet.zip 541028a68a26dc1d0828b144626e8d064ac9d0b6db1ad499700ec6f62559c336
testnet.zip 0259269be86fbdfce14efe40e99874b95a4a3ed30949463c0cef9e776eb6b1b2
geth_linux 8ba9f4afe6522608144a5fd4d280142cb7e12e244a00158bfee1a58eb78275c4
geth_mac 9f78b4d3bd1655a2fd308bfd7beeec3b6c3b3399f1b24894447f2f41cfedb4cb

v1.1.1

13 Aug 02:48
03f7b31
Compare
Choose a tag to compare

This release is a bug fix release.

All clients are recommended to upgrade.

CHANGELOG

IMPROVEMENT

  • #355 miner should propose block on a proper fork

BUGFIX

  • #350 flag: fix TriesInmemory specified but not work
  • #358 miner: fix null pending block
  • #360 pruner: fix state bloom sync permission in Windows
  • #366 fix double close channel of subfetcher

Reducing Storage Occupation

If the storage occupation of the bsc client increasing dramatically, you may consider increasing the TrieTimeout setting in config.toml.

What does TrieTimeout means?
The bsc client will keep MPT(Merkle Patricia Tree) in memory. Once the block processing time exceeds the TrieTimeout, the client will persis MPT into disk. If the client crash, it can recover from recent persisted MPT. Increasing the TrieTimeout setting will reduce storage occupation, in exchange, it will need more time to recover from a crash.

The default setting before release v1.1.1 is 100000000000, it will persist MPT about every 35 minutes.
We change the default setting to 2000000000000 in this release, it will persist MPT about every 12 hours.

Assets

Assets Sha256 Checksum
mainnet.zip fa3984a2e81f92f87448baef6b70c711f64800eda30bb3f38eea9e2d1a270c97
testnet.zip 0259269be86fbdfce14efe40e99874b95a4a3ed30949463c0cef9e776eb6b1b2
geth_linux 9ebf3e8ced77bfefe63d603f5e97a860e302b96443717a8a0e43dabc54fe6582
geth_mac 1de3fd8f5322a94732f2f2b83cf77ff06bb5218a69991890a15e8f1ecf8de7f7

v1.1.1-beta

29 Jul 11:03
69ce7f1
Compare
Choose a tag to compare

Description

Please note this is just a beta version, some known bug fix is on the way. v1.1.1-beta is released which has better performance in order to handle the high volume. Please feel free to upgrade and raise bug reports onto the github.

Sync Faster

For nodes that need block sync as fast as possible, we highlight the suggested hardware here:

For validator:

  • 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms
  • 12 cores of CPU and 48 gigabytes of memory (RAM)
  • m5zn.3xlarge instance type on AWS, or c2-standard-8 on Google cloud.
  • A broadband Internet connection with upload/download speeds of 10 megabyte per second

For fullnode:

  • 1T GB of free disk space, solid-state drive(SSD), gp3, 3k IOPS, 125MB/S throughput, read latency <1ms. (if start with snap/fast sync, it will need NVMe SSD)
  • 8 cores of CPU and 32 gigabytes of memory (RAM).
  • c5.4xlarge instance type on AWS, c2-standard-8 on Google cloud.
  • A broadband Internet connection with upload/download speeds of 5 megabyte per second

Snapshot

if you want to setup a node without syncing, or replace the heavy data with light one, please refer to our latest snapshot page

Changes

*#333 improve block fetcher efficiency
*#326 eth/tracers: improve tracing performance
*#257 performance improvement in many aspects