Attention
Do not use this version on critical business!!!
This is a maintenance release with huge code changes for upstream catch up.
Although many tests have been done before release, there could still have many potential bugs and need more time to verify its reliability.
It's better to use this version cautiously and it is not recommended to use it on critical business. User can help try it out on some none critical environment and would be appreciated to report issues that you found.
We have already found some performance decline in this release and we will improve it in the following releases.
Usage Changes
** OptionUltraLightFraction
& Noverify
are no longer supported and should be removed from config.toml
** Validators need to specify the etherbase address by add this argument on node start up: --miner.etherbase <your coinbase addr>
Changelog
RPC
- internal/ethapi: add debug_getRawReceipts RPC method (#24773)
- node, rpc: add ReadHeaderTimeout config option (#25338)
- rpc: check that "version" is "2.0" in request objects (#25570)
- rpc: support injecting HTTP headers through context (#26023)
- rpc: websocket should respect the "HTTP_PROXY" by default (#27264)
- rpc: change BlockNumber constant values to match ethclient (#27219)
- eth: make debug_StorageRangeAt take a block hash or number (#27328)
- eth,core: add api debug_getTrieFlushInterval (#27303)
- rpc: add limit for batch request items and response size (#26681)
- core/types: support yParity field in JSON transactions (#27744)
- eth/filters: send rpctransactions in pending-subscription (#26126)
Flag
- cmd/geth: rename --whitelist to --eth.requiredblocks (#24505)
- cmd: migrate to urfave/cli/v2 (#24751)
- cmd/utils: print warning when --metrics.port set without --metrics.ad…
- cmd/devp2p: add --extaddr flag (#26312)
- core,eth: adddebug_setTrieFlushInterval to change trie flush frequ
- miner, cmd, eth: require explicit etherbase address (#26413)
- cmd/geth: Add[--log.format] cli param (#27001)
- cmd/geth: rename --vmodule to --log.vmodule (#27071)
- params, trie: add verkle fork management + upgrade go-verkle (#27464)
GraphQL
- graphql: fee history fields (#24452)
- graphql: add rawReceipt field to transaction type (#24738)
- graphql: add raw fields to block and tx (#24816)
- graphql: return correct logs for tx (#25612)
- graphql: add query timeout (#26116)
- graphql, node, rpc: improve HTTP write timeout handling (#25457)
- graphql: implement withdrawals (EIP-4895) (#27072)
Client
- ethclient: add CallContractAtHash (#24355)
- ethclient: add PeerCount method (#24849)
- ethereum, ethclient: add FeeHistory support (#25403)
- eth/filters, ethclient/gethclient: add fullTx option to pending tx fi…
- ethclient: include withdrawals in ethclient block responses (#26778)
Tracer
- eth/tracers/js: drop duktape engine (#24934)
- eth/tracers: add support for block overrides in debug_traceCall (#24871)
- eth/tracers: add onlyTopCall option to callTracer (#25430)
- eth/tracers: remove revertReasonTracer, add revert reason to callTracer
- eth/tracers: add diffMode to prestateTracer (#25422)
- eth/tracers: add multiplexing tracer (#26086)
- core/vm: set tracer-observable value of a delegatecall to match parent
value
- eth/tracers: add native flatCallTracer (aka parity style tracer) (#26…
- eth/tracers/native: set created address to nil in case of failure (#2…
- eth/tracers: report correct gasLimit in call tracers (#27029)
- eth/tracers: addtxHashfield on txTraceResult (#27183)
- eth/tracers: add ReturnData in the tracer's response (#27704)
Command
- cmd/geth: inspect snapshot dangling storage (#24643)
- core/state/snapshot: detect and clean up dangling storage snapshot in generation
- internal/ethapi: add db operations to api (#24739)
- cmd/geth: adddb check-state-contentto verify integrity of trie nodes (#24840)
- ethdb/remotedb, cmd: add support for remote (readonly) databases
- cmd/abigen: accept combined-json via stdin (#24960)
- cmd/geth: extend traverseRawState command (#24954)
- cmd/geth, core/state/snapshot: rework journal loading, implement account-check (#24765)
- cmd/geth: add a verkle subcommand (#25718)
- cmd/geth, cmd/utils: geth attach with custom headers (#25829)
- core/rawdb: refactor db inspector for extending multiple ancient storage
- cmd/clef: addlist-accountsandlist-walletsto CLI (#26080)
- cmd/clef: add importraw feature to clef (#26058)
- cmd/devp2p: add more nodekey commands (#26129)
- internal/web3ext: fix eth_call stateOverrides in console (#26265)
- cmd/evm: add blocktest subcommand to evm (#26526)
HardFork
- params: define cancun and prague as timestamp based forks (#26481)
- all: tie timestamp based forks to the passage of London (#27279)
Shanghai
- core/vm: implement EIP-3855: PUSH0 instruction (#24039)
- core: implement EIP-3651, warm coinbase (#25819)
- core/vm: implement EIP-3860: Limit and meter initcode (#23847)
- all: implement withdrawals (EIP-4895) (#26484)
CanCun (almost ready)
- all: implement EIP-1153 transient storage (#26003)
- core: 4844 opcode and precompile (#27356)
- core/vm: implement EIP-5656, mcopy instruction (#26181)
- core/state, core/vm: implement EIP 6780 (#27189)
New Feature
P2P
Build
Improvement
- all: use 'embed' instead of go-bindata (#24744)
- all: move genesis initialization to blockchain (#25523)
Clear Up
- common/compiler, cmd/abigen: remove solc/vyper compiler integration
- all: remove concept of public/private API definitions (#25053)
- cmd/geth: drop geth js command (#25000)
- core/genesis: remove calaverasAllocData (#25516)
- node: drop support for static & trusted node list files (#25610)
- core: drop legacy receipt types (#26225)
- cmd/puppeth: remove puppeth
- cmd, eth, node: deprecate personal namespace (#26390)
- accounts, build, mobile: remove Andriod and iOS support
- params: remove EIP150Hash from chainconfig (#27087)
- all: remove notion of trusted checkpoints in the post-merge world (#2…
- all: remove ethash pow, only retain shims needed for consensus and te
- cmd, core, eth, graphql, trie: no persisted clean trie cache file (#2…
- les: remove obsolete code related to PoW header syncing (#27737)
- remove diffsync
Others
- accounts/usbwallet: support Ledger Nano S Plus and FTS (#25933)
- accounts/scwallet: fix keycard data signing error (#25331)
- core/state: replace fastcache code cache with gc-friendly structure (…
- internal/debug: add --log.file option (#26149)
- ci: disable coverage reporting in appveyor and travis
- all: change chain head markers from block to header (#26777)
- core, miner: revert block gas counter in case of invalid transaction
- accounts/usbwallet: mitigate ledger app chunking issue (#26773)
- signer/core: accept all solidity primitive types for EIP-712 signing
- cmd/geth: enable log rotation (#26843)
- internal/ethapi: make EstimateGas use[latest] block by default (#24363)
- miner: suspend miner if node is syncing (#27218)
- all: move main transaction pool into a subpool (#27463)
- core/txpool/blobpool: 4844 blob transaction pool (#26940)
- eth: send big transactions by announce/retrieve only (#27618)
- core/rawdb: support freezer batch read with no size limit (#27687)
- disable pipeCommit, break now
Assets
Assets | Sha256 Checksum |
---|---|
mainnet.zip | a7e17cbd8533a5735bca57a03fd7519687a6de6f7484e99bcbf1d50721200716 |
testnet.zip | b26fe88ccb52f540a95cbf749503130f6dd38eb8d361b7ef87aaf9ee2d473ed9 |
geth_linux | ea522c4b9859e0310b24e15b36601823b08015a9210448f716fa1b97a74aef1c |
geth_mac | 966720e40baed4eb4a860d8114f6af2bf3484a065edfdcd0e90d8ab08ef34c94 |
geth_windows | 8ff8f9bea139c27c958a1049e0d31eeab836df36858e11ec6c05861e8cffa66e |
geth_linux_arm64 | 905d125dff9c64ff5b2e0ae97b157d6240cc15720ef87f4967908ea8f07d7ffc |