v1.8.0-alpha
Pre-release
Pre-release
MetaInfo
Mandatory Update Required: No
Target Audience: developers and testnet operators, this is a preview release and is not intended for production
Procedure: simply binary replacement should be good
Schedule(Timeline): no scheduled upgrade timeline
Changelog
v1.8.0-alpha is a preview release for upstream code sync, it catches up with go-ethereum release [v1.17.3] and also removes several BSC features and fixes bugs.
Feature Removal
- core/vm: revert opcode-level optimization and fold EVMInterpreter into EVM
The EVM opcode-level optimization (superinstruction) feature added in #3395 is removed entirely: the superinstruction interpreter, the fused opcodes and their jump-table entries are gone, andEVMInterpreteris folded back intoEVM. - core, triedb, ethdb: remove incremental snapshot (incr db) feature
The incr downloader and merger, the incr freezers and the pathdb incr manager are all deleted. - core/txpool, eth: remove local transaction reannounce mechanism
Local pending transactions are no longer periodically re-announced. - p2p: remove BSC table-layer ENR node filtering and dead bootnode bucket-size code
The discovery table no longer filters nodes by ENR.
Code Sync
- upstream: merge geth-v1.16.9 ~ geth-v1.17.3
Key changes from the code sync include: - Wire protocol: eth/70 becomes the primary protocol. BSC keeps eth/68 for peer compatibility, retains TD in
StatusPacket, and sends noUpgradeStatusMsgon eth/70. snap/2 groundwork landed, but only snap/1 is advertised. - State: Verkle is replaced by the unified binary trie (UBT), with state readers split into MPT/UBT databases.
- PathDB: path-based archive with proofs, history index pruner, trienode history on existing nodes.
- EIP-7928 block access list scaffolding replaces BEP-592.
- The Amsterdam EIP set landed but stays dormant on BSC: EIP-7778, EIP-7843, EIP-8024, EIP-7708, EIP-7954, EIP-7976/7981, EIP-8037, EIP-7610.
RPC Changes
- Breaking
debug_trace*structLog output follows the client-wide spec:memorywords are0x-prefixed and padded to 32 bytes,storagekeys and values are0x-prefixed, anderroris omitted when empty. - Breaking
reexecis no longer accepted in the tracing config. eth_getLogs/eth_getFilterLogs:--rpc.rangelimit(default 5000) replaces the fixed cap toggled by--rangelimit, and exceeding it returns-32602 invalid params.eth_simulateV1: every call result gains amaxUsedGasfield.- New method
eth_getStorageValues, which reads up to 1024 storage slots in one call.
Config Changes
- Default
--cacheis raised from 1024 to 4096 MB, so nodes that do not set it explicitly will use about 3GB more memory. - Renamed:
--rangelimitto--rpc.rangelimit,--override.verkleto--override.ubt. - New:
--history.trienode(serve historical state proofs, disabled by default),--miner.maxblobs,--debug.logslowblock, and the opt-in--rpc.telemetryfamily. - Removed: the seven
--incr.*flags plus theinspect-incr-snapshotandmerge-incr-snapshotsubcommands,--txpool.reannouncetime, and bootnode-network. - Accepted but inert, warning only:
--enable-bal,--rangelimit,--vm.opcode.optimize. config.toml:[Eth] EnableOpcodeOptimizing,[Eth.TxPool] ReannounceTimeand[Node.P2P] EnableENRFilterare no longer supported.
BUGFIX
- core, eth, consensus, miner, tests: stabilize the v1.17.3 merge
- internal/ethapi, eth/filters: fix eth_simulateV1 multi-block and getLogs latest range-limit regressions
- miner, core/vm: fix MEV bid gas accounting and EVM stack-arena double-release
- core/txpool: fall back to an empty state when head state is unavailable
- eth/downloader: fix legacy snap sync regressions from the v1.17.3 merge
- miner, core: fix mining prefetch rate-limiting broken by shadowing
- miner: make MEV bid per-builder quota admission atomic
- consensus/parlia: only blind-sign legacy system txs
Others
- core/filtermaps: update BSC mainnet and chapel log index checkpoints
- cmd/faucet: add United Stables ($U) testnet token
Assets
| Assets | Sha256 Checksum |
|---|---|
| mainnet.zip | 522cb9902437df2368008b28bebb6b5c35ec026bf2ec41af40117ff507f53fa7 |
| testnet.zip | 0d9de8b7f1bafc36711eed80e97bf33f906fadc2ceb5457361645941d7ad19f7 |
| geth_linux | e5faaba10425a6a00ce7174e2482f5036b2b80a109a2fd969f4fd685642cb091 |
| geth_mac | 351cae69022f83ffc8c4e7a811c92068ab9c63c1b055a8caaba298f940dd1c11 |
| geth_windows | 519f643dda8e2cd2ec1072fd37991689437da21cd7f3246acbd7bbba1d186da6 |
| geth_linux_arm64 | 5fde97ac42f5c97b56826c76430beb0ccbc9d22afedd745fbe68f2b139f460c3 |