Releases: bnb-chain/bsc
v1.1.9
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
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
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:
- Stop The node.
- Upgrade the binary to the latest release.
- Start the node with
--snapshot=false
- Wait for a few minutes(it depends on how fast the node is), until the block height is 128 higher than where it stopped.
- Restart the node with
--snapshot=true
- 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
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
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
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
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
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
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
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
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