This release, part of the upcoming Fermi hard fork, introduces significant performance upgrades, new consensus mechanisms, and powerful features for node operators.
Key Features and BEP Implementations
BEP-619: Faster Block Times
The network's block interval is set to be reduced to 0.45 seconds, marking the third phase of the Short Block Interval initiative. This change aims to decrease transaction confirmation latency.
BEP-592: Block-Level Access List (BAL) for Faster Syncing
A new, non-consensus-based Block-Level Access List (BAL) feature has been implemented to dramatically speed up block processing and node synchronization. By tracking state access during transaction execution, it enables efficient prefetching of data. Node operators can activate this feature with the --enablebal flag.
BEP-593: Incremental Snapshots
Starting a new node is now much more efficient with the introduction of incremental snapshots. This allows nodes to bootstrap with a significantly smaller initial dataset. Use the --incr.enable flag to generate snapshots or --incr.use-remote to sync from a remote URL.
BEP-590: Enhanced Finality Stability
To improve the stability of fast finality, this release implements extended voting rules for validators. This includes technical adjustments to consensus parameters for more robust attestation and voting.
EVM Performance Boost
The EVM execution engine has been significantly optimized by incorporating opcode fusion, jump destination caching, and improved SHA caching. These changes have shown a ~1.2x to 1.5x speedup in contract execution performance during testing.
New WebSocket Subscription for Receipts
The WebSocket API now offers a new subscription method, transactionReceipts. This allows users to receive transaction receipts in real-time without the need for HTTP polling, providing faster access and reducing RPC calls. You can subscribe to all receipts or filter by specific transaction hashes.
Other Notable Improvements
Vote Propagation: The logic for broadcasting votes between peers has been tuned to ensure faster and more reliable propagation, particularly benefiting validators protected by sentry nodes.
100M Gas Limit Preparation: The default miner configuration has been updated to prepare for a future increase in the block gas limit to 100M.
API Hardening: The API now rejects oversized storage keys early to prevent unnecessary processing and improve resilience.
## Changelog ### FEATURE [#3363](https://github.com/bnb-chain/bsc/pull/3363) websocket: add transactionReceipts for receipts notification [#3367](https://github.com/bnb-chain/bsc/pull/3367) BEP-619: Short Block Interval Phase Three: 0.45 Seconds [#3368](https://github.com/bnb-chain/bsc/pull/3368) BEP-590: Extended Voting Rules for Fast Finality Stability [#3374](https://github.com/bnb-chain/bsc/pull/3374) Implement BEP-592: Non-Consensus Based Block-Level Access List [#3372](https://github.com/bnb-chain/bsc/pull/3372) core/systemcontracts: define fermiUpgrade [#3390](https://github.com/bnb-chain/bsc/pull/3390) feat: implement incremental snapshot [#3395](https://github.com/bnb-chain/bsc/pull/3395) feat: EVM execution opcode level optimization [#3400](https://github.com/bnb-chain/bsc/pull/3400) consensus/parlia: set kAncestorGenerationDepth to 3 in BEP-590 [#3397](https://github.com/bnb-chain/bsc/pull/3397) consensus/parlia: fix updateAttestation&improve assembleVoteAttestation [#0000](https://github.com/bnb-chain/bsc/pull/0000) p2p: define ProxyedNodeIds in Config #3417 ### BUGFIX [#3373](https://github.com/bnb-chain/bsc/pull/3373) ethapi: reject oversize storage keys before hex decode ### IMPROVEMENT [#3388](https://github.com/bnb-chain/bsc/pull/3388) miner/minerconfig: update config to adapt 100M gaslimit [#3404](https://github.com/bnb-chain/bsc/pull/3404) miner: validator not inturn backoff before mining [#3407](https://github.com/bnb-chain/bsc/pull/3407) fix: change lock to read lock in legacy pool [#3415](https://github.com/bnb-chain/bsc/pull/3415) eth: broadcast votes to evn peers regardless of deltaTdThreshold [#3416](https://github.com/bnb-chain/bsc/pull/3416) cmd/geth: improve config for sentry nodes when init network [#3419](https://github.com/bnb-chain/bsc/pull/3419) miner: use latest block as pending block for simplicity [#3426](https://github.com/bnb-chain/bsc/pull/3426) eth: increase the delta td threshold to broadcast votes ## Assets | Assets | Sha256 Checksum | | :-----------: |------------| | mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 | | testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c | | geth_linux | 4434ccec0cb7db38766fa240e595e9add00642b36b8bee16fe71e62e8066d209 | | geth_mac | 938d85e262f1642b662874f3f195f2418f96dc43f5095890c01304846e8997b1 | | geth_windows | a935ebdf79a3c51d54c16f43f89477a0b933fbac219be541cfeefc0ff178c0c8 | | geth_linux_arm64 | f4efcdca6d988db53ecd8aab33fe70fc7786aefc80537ba2da4dfa6e767fd275 |