Description
This is an experimental feature release based on v1.6.1-beta. The suffix "-BAL" stands for "Block Access List."
v1.6.1-beta-feature-BAL implements BEP-592: Non-Consensus Based Block-Level Access List to enhance block execution performance. This implementation introduces a Block Access List (BAL) feature that tracks account and storage access during transaction execution, enabling efficient prefetching of state data.
Try BAL:
As an experimental feature, BAL is disabled by default. It can be enabled by running with the flag --enablebal
, or by updating the config.toml file as follows:
...
[Node]
EnableBAL = true
...
Since validators produce the BAL, they need to be upgraded first. The connected full nodes can then retrieve the BAL data to accelerate their synchronization performance.
Performance Test Results:
- Block import performance increased by approximately 15%, with potential improvements of nearly 20% for I/O-heavy blocks.
- CPU usage reduced by ~30%, as Tx prefetch would be replaced BAL.
- The size of the BAL is about 40% of the block size. For a block with a 75M GasLimit, the block could be around 270KB, while the BAL would be approximately 110KB.
Change Log
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | ce8507bfff1ed585777d248794a4a8f5142b8f2414600a369410b370da261744 |
testnet.zip | 9f79a1b6ea0751fbd516bc213a64c3efc802321b6cdae020e60964c7688de55c |
geth_linux | fd6a07786f0b85da3c74a2b9c30c6e34dc74dc54eaf8e1911eb1d66ad19e6d65 |
geth_mac | e8215847b2895447c21422e2acc6bc4b4d65ba009c16cef92a5832b6afda04bb |
geth_windows | 7a5ec73a044675478668496ad64b087b112827cfe6aa13c1d459249e4c2a0335 |
geth_linux_arm64 | a8d2687ba9cc9858ebad9f81f3112d535172a272e1ab7d1b4f82c35ebf27e7ea |