bsc/CHANGELOG.md
2023-12-04 19:06:48 +08:00

47 KiB

Changelog

v1.3.4

BUGFIX

  • fix: remove pipecommit in miner
  • add a hard fork: Hertzfix

v1.3.3

IMPROVEMENT

  • #2000 cmd/utils: exit process if txlookuplimit flag is set

BUGFIX

  • #1986 fix(cmd): check pruneancient when creating db

v1.3.2

BUGFIX

  • fix: remove sharedPool

v1.3.1

FEATURE

  • #1881 feat: active pbss
  • #1882 cmd/geth: add hbss to pbss convert tool
  • #1916 feat: cherry-pick pbss patch commits from eth repo in v1.13.2
  • #1939 dependency: go version to 1.20 and some dependencies in go.mod
  • #1955 eth, trie/triedb/pathdb: pbss patches
  • #1962 cherry pick pbss patches from go-ethereum

BUGFIX

  • #1923 consensus/parlia: fix nextForkHash in Extra filed of block header
  • #1950 fix: 2 APIs of get receipt related
  • #1951 txpool: fix a potential crash issue in shutdown;
  • #1963 fix: revert trie commited flag after delete statedb mpt cache

IMPROVEMENT

  • #1948 performance: commitTire concurrently
  • #1949 code: remove accountTrieCache and storageTrieCache
  • #1954 trie: keep trie prefetch during validation phase

v1.3.0

RPC

Flag

GraphQL

Client

Tracer

Command

HardFork

Shanghai
CanCun (almost ready)

New Feature

P2P

Build

Improvement

Clear Up

Others

v1.2.12

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

  • #1839 Update init-network command
  • #1858 vote: check consensus key match vote key before voting

v1.2.11

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

v1.2.10

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

v1.2.9

FEATURE

  • #1775 upgrade: several hardfork block height on mainnet: Plato, Hertz(Berlin, London)

v1.2.8

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

v1.2.7

FEATURE

  • #1645 lightclient: fix validator set change
  • #1717 feat: support creating a bls keystore from a specified private key
  • #1720 metrics: add counter for voting status of whole network

v1.2.6

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

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

v1.2.5

BUGFIX

  • #1675 goleveldb: downgrade the version for performance

v1.2.4

FEATURE

  • #1636 upgrade: block height of Luban on mainnet

v1.2.3

FEATURE

  • #1574 upgrade: update PlatoUpgrade contracts code
  • #1594 upgrade: block height of Plato on testnet

IMPROVEMENT

  • #866 code: x = append(y) is equivalent to x = y
  • #1488 eth/tracers, core/vm: remove time from trace output and tracing interface
  • #1547 fix: recently signed check when slashing unavailable validator
  • #1573 feat: remove supports for legacy proof type
  • #1576 fix: support golang 1.20 by upgrading prysm to v4
  • #1578 fix: output an error log when bsc extension fail to handshake
  • #1583 metrics: add a counter for validator to check work status of voting

BUGFIX

  • #1566 fix: config for VoteJournalDir and BLSWalletDir
  • #1572 fix: remove dynamic metric labels about fast finality
  • #1575 fix: make BLST PORTABLE for release binary
  • #1590 fix: fix snap flaky tests

v1.2.2

It was skipped by a mistake, replaced by v1.2.3

v1.2.1

IMPROVEMENT

  • #1527 log: revert a log back to trace level

v1.2.0

FEATURE

  • #936 BEP-126: Introduce Fast Finality Mechanism
  • #1325 genesis: add BEP174 changes to relayer contract
  • #1357 Integration API for EIP-4337 bundler with an L2 validator/sequencer
  • #1463 BEP-221: implement cometBFT light block validation
  • #1493 bep: update the bytecode of luban fork after the contract release

IMPROVEMENT

  • #1486 feature: remove diff protocol registration
  • #1434 fix: improvements after testing fast finality

BUGFIX

  • #1430 docker: upgrade alpine version & remove apks version
  • #1458 cmd/faucet: clear reqs list when reorg to lower nonce
  • #1484 fix: a deadlock caused by bsc protocol handeshake timeout

v1.1.23

BUGFIX

  • #1464 fix: panic on using WaitGroup after it is freed

v1.1.22

FEATURE

  • #1361 cmd/faucet: merge ipfaucet2 branch to develop

IMPROVEMENT

  • #1412 fix: init-network with config.toml without setting TimeFormat
  • #1401 log: support custom time format configuration
  • #1382 consnesus/parlia: abort sealing when block in the same height has updated
  • #1383 miner: no need to broadcast sidechain header mined by this validator

BUGFIX

  • #1379 UT: fix some flaky tests
  • #1403 Makefile: fix devtools install error
  • #1381 fix: snapshot generation issue after chain reinit from a freezer

v1.1.21

FEATURE

  • #1389 upgrade: update the fork height of planck upgrade on mainnet

BUGFIX

  • #1354 fix: add some boundary check for security
  • #1373 tracer: enable withLog for TraceCall
  • #1377 miner: add fallthrough for switch cases

v1.1.20

FEATURE

  • #1322 cmd/utils/flags.go: --diffsync flag is deprecate
  • #1261 tracer: port call tracer withLog to bsc

IMPROVEMENT

  • #1337 clean: Remove support for Ethereum testnet
  • #1347 upgrade: update the fork height of planck upgrade on testnet
  • #1343 upgrade: update system contracts' code of planck upgrade
  • #1328 upgrade: update system contracts' code of testnet
  • #1162 consensus: fix slash bug when validator set changing
  • #1344 consensus: fix delete the 1st validator from snapshot.recents list
  • #1149 feats: add ics23 proof support for cross chain packages
  • #1333 sec: add proof ops check and key checker

BUGFIX

  • #1348 core/txpool: implement additional DoS defenses

v1.1.19

FEATURE

  • #1199 mointor: implement double sign monitor

IMPROVEMENT

  • #1226 eth, trie: sync with upstream v1.10.26 to solve snap sync issues
  • #1212 metrics: add miner info into metrics server
  • #1240 Add NewBatchWithSize API for db and use this API for BloomIndexer.Commit()
  • #1254 ci: update unmaintained tools to use maintained tools
  • #1256 ci: disable CGO_ENABLED when building binary
  • #1274 dep: bump the version of several important library
  • #1294 parlia : add a check for the length of extraData.
  • #1298 dep: update tendermint to v0.31.14

Document

  • #1233 doc: update readme
  • #1245 comments: add comments to clarify flags and byte codes
  • #1266 docs: update the readme to latest
  • #1267 docs: minor fix about the readme
  • #1287 docs: minor fix on geth links

BUGFIX

  • #1233 doc: update readme
  • #1253 fix comments: prune ancient compatibility, add prune ancient comments
  • #1301 fix: p2p sync with lagging peer
  • #1302 fix: eth fetcher re-queue issue

v1.1.18

IMPROVEMENT

  • #1209 metrics: add build info into metrics server
  • #1204 worker: NewTxsEvent and triePrefetch reuse in mining task
  • #1195 hardfork: update Gibbs fork height and system contract code
  • #1192 all: sync with upstream v1.10.22
  • #1186 worker: improvement of the current block generation logic to get more rewards
  • #1184 worker: remove pre-seal empty block
  • #1182 Parlia: Some updates of the miner worker
  • #1181 all: sync with upstream v1.10.21
  • #1177 core/forkid: refactor nextForkHash function
  • #1174 worker: some code enhancement on work.go
  • #1166 miner: disable enforceTip when get txs from txpool

BUGFIX

  • #1201 worker: add double sign check for safety
  • #1185 worker: fix a bug of the delay timer

v1.1.17

IMPROVEMENT

  • #1114 typo: .github fix job name
  • #1126 ci: specify bind-tools version
  • #1140 p2p: upstream go-ethereum: use errors.Is for error comparison
  • #1141 all: prefer new(big.Int) over big.NewInt(0)
  • #1159 core: remove redundant func

BUGFIX

  • #1138 fix: upstream patches from go-ethereum 1.10.19
  • #1139 fix: upstream go-ethereum: fix duplicate fields names in the generted go struct
  • #1145 consensus: the newChainHead mights not be imported to Parlia.Snapshot
  • #1146 fix: upstream patches from go-ethereum 1.10.20

v1.1.16

  • #1121 vm: add two proof verifier to fix the vulnerability in range proof

v1.1.15

  • #1109 nanofork: block exploitation accounts and suspend cross chain bridge related precompile contracts

v1.1.14

IMPROVEMENT

  • #1057 ci: allow merge pull request
  • #1063 ci: fix the pattern of commit lint

BUGFIX

  • #1062 test: fix TestOfflineBlockPrune failed randomly
  • #1076 bug: pick some patches from go-ethereum on v1.10.18
  • #1079 core: fix potential goroutine leak

v1.1.13

FEATURE

  • #1051 Implement BEP153: Native Staking
  • #1066 Upgrade cross chain logic of native staking

IMPROVEMENT

  • #952 Improve trie prefetch
  • #975 broadcast block before commit block and add metrics
  • #992 Pipecommit enable trie prefetcher
  • #996 Trie prefetch on state pretch

BUGFIX

  • #1053 state: fix offline tool start failed when start with pruneancient
  • #1060 consensus: fix the GasLimitBoundDivisor
  • #1061 fix: upstream patches from go-ethereum
  • #1067 fix:fix potential goroutine leak
  • #1068 core trie rlp: patches from go-ethereum
  • #1070 txpool: reheap the priced list if london fork not enabled

v1.1.12

FEATURE

  • #862 Pruning AncientDB inline at runtime
  • #926 Separate Processing and State Verification on BSC

IMPROVEMENT

  • #816 merge go-ethereum v1.10.15
  • #950 code optimizations for state prefetcher
  • #972 redesign triePrefetcher to make it thread safe
  • #998 update dockerfile with a few enhancement
  • #1015 disable noisy logs since system transaction will cause gas capping

BUGFIX

  • #932 fix account root was not set correctly when committing mpt during pipeline commit
  • #953 correct logic for eip check of NewEVMInterpreter
  • #958 define DiscReason as uint8
  • #959 update some packages' version
  • #983 fix nil pointer issue when stopping mining new block
  • #1002 Fix pipecommit active statedb
  • #1005 freezer batch compatible offline prunblock command
  • #1007 missing contract upgrades and incorrect behavior when miners enable pipecommit
  • #1009 resolve the concurrent cache read and write issue for fast node
  • #1011 Incorrect merkle root issue when enabling pipecommit with miner
  • #1013 tools broken because of writting metadata when open a readyonly db
  • #1014 fast node can not recover from force kill or panic
  • #1019 memory leak issue with diff protocol
  • #1020 remove diffhash patch introduced from separate node
  • #1024 verify node is not treated as verify node

v1.1.11

UPGRADE

  • #927 add readme for validators about how to enter/exit maintenance
  • #942 update the blockNumber of Euler Fork upgrade on BSC Mainnet

v1.1.10

FEATURE

  • #885 add Euler Hardfork, including BEP-127 and BEP-131

BUGFIX

  • #856 fix logic issue: handlers.removePeer() is called twice
  • #860 fix:defer bloomprocessor close
  • #877 fix validator pipecommit issue
  • #870 fix:Shift panic for zero length of heads

v1.1.9

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

v1.1.8

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 #667
  • #643 add timeout for stopping p2p server to fix can not gracefully shutdown issue
  • #740 update discord link which won't expire

v1.1.7

BUGFIX

  • #628 fix state inconsistent when doing diffsync

v1.1.6

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

v1.1.5

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

v1.1.4

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

v1.1.3

Improvement

  • #456 git-flow support lint, unit test, and integration test
  • #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

FEATURES

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

v1.1.2

Security

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

v1.1.1

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

v1.1.1-beta

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

v1.1.0

  • #282 update discord link
  • #280 update discord link
  • #227 use more aggressive write cache policy

v1.1.0-beta

  • #152 upgrade to go-ethereum 1.10.3

v1.0.7-hf.2

BUGFIX

  • #194 bump btcd to v0.20.1-beta

v1.0.7-hf.1

BUGFIX

  • #190 fix disk increase dramaticly
  • #191 fix the reorg routine of tx pool stuck issue

v1.0.7

  • #120 add health check endpoint
  • #116 validator only write database state when enough distance
  • #115 add batch query methods
  • #112 apply max commit tx time for miner worker to avoid empty block
  • #101 apply block number limit for the eth_getLogs api
  • #99 enable directbroadcast flag to decrease the block propagation time
  • #90 add tini in docker image
  • #84 add jq in docker image

v1.0.6

  • #68 apply mirror sync upgrade on mainnet

v1.0.5

SECURITY

  • #63 security patches from go-ethereum
  • #54 les: fix GetProofsV2 that could potentially cause a panic.

FEATURES

  • #56 apply mirror sync upgrade
  • #53 support fork id in header; elegant upgrade

IMPROVEMENT

  • #61Add x-forward-for log message when handle message failed
  • #60 add rpc method request gauge

BUGFIX

  • #59 fix potential deadlock of pub/sub module

v1.0.4

IMPROVEMENT

  • #35 use fixed gas price when network is idle
  • #38 disable noisy log from consensus engine
  • #47 upgrade to golang1.15.5
  • #49 Create pull request template for all developer to follow

v1.0.3

IMPROVEMENT

  • #36 add max gas allwance calculation

v1.0.2

IMPROVEMENT

  • #29 eth/tracers: revert reason in call_tracer + error for failed internal…

v1.0.1-beta

IMPROVEMENT

  • #22 resolve best practice advice

FEATURES

  • #23 enforce backoff time for out-turn validator

BUGFIX

  • #25 minor fix for ramanujan upgrade

UPGRADE

  • #26 update chapel network config for ramanujan fork

v1.0.0-beta.0

FEATURES

  • #5 enable bep2e tokens for faucet
  • #14 add cross chain contract to system contract
  • #15 Allow liveness slash fail

IMPROVEMENT

  • #11 remove redundant gaslimit check

BUGFIX

  • #4 fix validator failed to sync a block produced by itself
  • #6 modify params for Parlia consensus with 21 validators
  • #10 add gas limit check in parlia implement
  • #13 fix debug_traceTransaction crashed issue