Testnet Only
Change Summary
Performance Improvements
- Optimized VM execution by reducing allocations and redundant conversions.
- Avoided unnecessary map lookups for jump destination analysis.
- Refactored vm.Context into BlockContext and TxContext for better structure.
- Improved EVM reusability.
Ethereum EIPs Implementation
- Implemented EIP-1559 (fee market changes).
- Implemented EIP-2565 (lowering cost for modular exponentiation).
- Implemented EIP-3651 (warm coinbase for gas optimization).
- Implemented EIP-1153 (transient storage).
RPC & API Enhancements
- Added rpc-gascap flag and set RPC gas cap to 50M.
- Added xdpos_getBlockInfoByEpochNum API.
- Fixed wrong gas price calculation with empty blocks.
- Improved EstimateGas API.
- Added admin_addTrustedPeer and admin_removeTrustedPeer RPC methods.
Security & Bug Fixes
- Fixed block hash retrieval for eth_getLogs.
- Fixed high pending special transactions in core/txpool.
- Fixed various staticcheck warnings for better code quality.
- Fixed node.Node AccountsManager memory leak.
Code Refactoring & Cleanup
- Removed unused functions, redundant conversions, and unnecessary package imports.
- Migrated from ioutil to io and os.
- Standardized string formatting (0x%x → %#x).
- Replaced strings.Replace with strings.ReplaceAll.
- Removed whisper package.
Network & Node Adjustments
- Allowed WebSocket and HTTP to work on the same port.
- Increased default maxpeers to 50.
- Reduced mainnet and testnet timeout to 10s.
- Updated bootnodes list.
Development & Deployment Updates
- Upgraded to Go 1.22.
- Updated multiple core dependencies (common, crypto, metrics).
- Removed Android and iOS support.
- Reduced gas limit for devnet to 50M.
- Merged mining time patch from master.
What's Changed
- fix Byzantium precompile population by @gzliudan in #640
- avoid map lookups for accessing jumpdest analysis by @gzliudan in #629
- core/vm: marshall returnData as hexstring in trace logs by @gzliudan in #630
- split vm.Context into BlockContext and TxContext by @gzliudan in #638
- core/vm: replace function
precompile2
withprecompile
by @gzliudan in #641 - core/vm: less allocations and redundant conversions by @gzliudan in #627
- move fuzzers out of core by @gzliudan in #639
- all: replace uses of ioutil with io and os by @JukLee0ira in #648
- add flag rpc-gascap and set RPCGasCap to 50M by @pro100skm in #664
- return right blockHash for eth_getLogs (#650) by @gzliudan in #675
- all: change format 0x%x to %#x by @gzliudan in #644
- implement eip-2565 by @gzliudan in #645
- upgrade package core/vm by @gzliudan in #643
- remove block hash from statedb by @gzliudan in #649
- fix staticcheck warning SA1029: inappropriate key in call to context.WithValue by @gzliudan in #693
- metrics: fix staticcheck warning ST1017: don't use yoda conditions by @gzliudan in #691
- all: fix staticcheck warning S1039: unnecessary use of fmt.Sprintf by @gzliudan in #690
- all: fix staticcheck warning SA4006: never used value by @gzliudan in #692
- all: fix staticcheck warning ST1005 by @gzliudan in #689
- all: use unified emptyRootHash and emptyCodeHash by @gzliudan in #685
- fix staticcheck warning SA1012: pass nil Context to function by @gzliudan in #695
- all: fix staticcheck warning ST1006 by @gzliudan in #686
- all: fix staticcheck warning SA1006 by @gzliudan in #696
- feat: add api xdpos_getBlockInfoByEpochNum by @wgr523 in #674
- XDCxDAO: fix staticcheck warning S1034: use result of type assertion to simplify cases by @gzliudan in #697
- all: fix staticcheck warning ST1019: import package twice by @gzliudan in #701
- core, XDCxlending/lendingstate: fix staticcheck warning S1002: omit comparison to bool constant by @gzliudan in #709
- common: fix staticcheck warning S1001: replace loop with copy by @gzliudan in #710
- XDPoSChain, ethclient: fix staticcheck warning ST1012: rename NotFound to ErrNotFound by @gzliudan in #711
- crypto/bn256: fix staticcheck warning SA9009: ineffectual go compiler directive by @gzliudan in #712
- compression/rle: fix staticcheck warning SA9004: only the first constant has an explicit type by @gzliudan in #713
- core: fix staticcheck warning SA6005: should use strings.EqualFold by @gzliudan in #714
- XDCxDAO: fix staticcheck warning SA5007: infinite recursive call by @gzliudan in #715
- Merge master back to dev upgrade by @benjamin202410 in #716
- fix nil issues reported by nilness and staticcheck by @gzliudan in #688
- all: fix staticcheck warning ST1008: error should be last return value by @gzliudan in #698
- all: fix staticcheck warning SA4010: append result never used by @gzliudan in #700
- fix: staticcheck warning SA4003: every value of uint64 >= 0 by @gzliudan in #703
- core, XDCxlending/lendingstate: fix staticcheck warning SA5001 by @gzliudan in #704
- all: fix staticcheck warning SA2002: must call T.Fatalf in same goroutine by @gzliudan in #705
- all: fix staticcheck warning S1024: not use x.Sub(time.Now()) by @gzliudan in #706
- metrics/influxdb: fix staticcheck warning SA1015: replace time.Tick with time.NewTicker by @gzliudan in #707
- XDCxlending: fix staticcheck warning S1008: simplify returning boolean expression by @gzliudan in #708
- core: fix staticcheck warning S1006: use for {} for infinite loops by @gzliudan in #723
- eth/downloader: fix staticcheck warning S1033: unnecessary guard around call to delete by @gzliudan in #720
- contracts: fix staticcheck warning S1025: unnecessary fmt.Sprintf("%s", x) by @gzliudan in #721
- engines/engine_v2: fix staticcheck warning S1009: omit redundant nil check on slice by @gzliudan in #722
- p2p: fix staticcheck warning SA4030: rand.Intn(1) always returns 0 by @gzliudan in #717
- p2p: fix staticcheck warning SA4009: overwrite function argument before first use by @gzliudan in #718
- p2p/netutil: fix staticcheck warning SA1021: use bytes.Equal to compare two net.IP by @gzliudan in #719
- implement EIP-1559 by @gzliudan in #527
- cost saving downsize devnet rpc by @benjamin202410 in #724
- remove accidental file test.txt by @gzliudan in #725
- upgrade package node by @gzliudan in #726
- cmd/utils, node: increase default maxpeers to 50 by @gzliudan in #727
- core/txpool: fix very high pending special transactions by @gzliudan in #728
- eth/gasprice: fix wrong gas price with empty blocks by @gzliudan in #732
- rpc: add admin_addTrustedPeer and admin_removeTrustedPeer by @gzliudan in #731
- node: allow WebSocket and HTTP works on the same port by @gzliudan in #729
- whisper: remove package whisper by @JukLee0ira in #687
- upgrade package log to 2024-11-04 by @gzliudan in #734
- accounts, build, mobile: remove Android and iOS support by @JukLee0ira in #733
- all: implement EIP-1153(transient storage) by @gzliudan in #647
- core/vm: remove interface Interpreter by @gzliudan in #642
- update devnet 1559 block number by @benjamin202410 in #736
- core: fix preCheck for RandomizeSMC after EIP-1559 by @gzliudan in #739
- use global function when cli v1 by @gzliudan in #742
- bug fix use right block to count vote threshold by @benjamin202410 in #743
- node, p2p/simulations: fix node.Node AccountsManager leak by @JukLee0ira in #737
- cmd: migrate to urfave/cli/v2 by @gzliudan in #741
- fix vote test and optimize log by @benjamin202410 in #750
- add store-reward flag by default by @wanwiset25 in #748
- change devnetstats url by @wanwiset25 in #747
- Devnet bootnode by @wanwiset25 in #749
- fix typo and local script by @wanwiset25 in #752
- all: use http package to replace http method names by @gzliudan in #755
- all: replace strings.Replace with string.ReplaceAll by @gzliudan in #754
- implement EIP-3651(warm coinbase) by @gzliudan in #677
- core/vm: improve EVM reusability by @gzliudan in #676
- upgrade package crypto and support KZG cryptography by @gzliudan in #751
- recover devnet by increasing timeout by @wanwiset25 in #760
- cmd/XDC: fix double metrics collect process issue by @gzliudan in #759
- upgrade package metrics by @gzliudan in #758
- Merge from master mining time patch by @benjamin202410 in #767
- all: improve EstimateGas API by @JukLee0ira in #632
- all: remove uses of untyped golang-lru by @gzliudan in #765
- upgrade to golang 1.22 by @benjamin202410 in #763
- core: remove unused functions and variables by @gzliudan in #776
- all: simplify function TransitionDb by @JukLee0ira in #771
- all: remove empty function SaveData() by @gzliudan in #774
- upgrade package common by @gzliudan in #768
- Release br v2.4.6 beta1 merge back to dev upgrade by @benjamin202410 in #778
- upgrade the core package for reorg by @gzliudan in #779
- code refactor for performance by @benjamin202410 in #782
- update bootnodes list by @benjamin202410 in #783
- remove devnet ecs terraform by @benjamin202410 in #786
- reduce gas limit for devnet to 50M by @benjamin202410 in #785
- reduce mainnet and testnet timeout to 10s by @benjamin202410 in #784
- Testnet merge back to mainnet by @benjamin202410 in #787
- release mainnet 2.4.0 by @benjamin202410 in #789
- New devnet by @wanwiset25 in #781
- upgrade crypto package by @gzliudan in #790
- cicd improvment by @wanwiset25 in #791
- build: support golangci-lint v1.63.4 by @gzliudan in #792
- Monthly Merge from dev upgrade branch to master by @benjamin202410 in #761
- core/types: remove generate directive for gen_tx_json.go by @gzliudan in #799
- build: add 'go mod tidy' checker by @gzliudan in #797
- update mainnet bootnode list by @benjamin202410 in #800
- remove old config by @wanwiset25 in #794
- build: add checker for 'go generate' by @gzliudan in #801
- contracts: remove ens by @gzliudan in #802
- remove-ec2-rpcs by @benjamin202410 in #793
- Exp timeout by @wgr523 in #764
- build: add imports for go generate tools by @gzliudan in #805
- fix deploy command by @wanwiset25 in #804
- cicd: update bootnodes for mainet by @gzliudan in #809
- cicd: update bootnodes for mainnet by @gzliudan in #811
- eth/tracers: add tracerConfig support and implement contractTracer by @JukLee0ira in #683
- core/types: remove extra byte when EncodeRLP for Receipt by @gzliudan in #813
- cmd/abigen: require either '--abi' or '--combined-json' by @gzliudan in #807
- all: update files by 'go generate ./...' by @gzliudan in #803
- core/rawdb: separate raw database access to own package by @JukLee0ira in #788
- core: refactor the function reorg by @gzliudan in #780
- all: migrate go-bindata to embed by @gzliudan in #806
- core, light: handle the nil return value of
GetBlockNumber
by @JukLee0ira in #818 - accounts/keystore: fix xdc-prefix address bug by @JukLee0ira in #814
- all: add read-only option to database by @gzliudan in #819
- cmd/XDC: delete copydb command by @gzliudan in #820
- cmd/XDC: add db commands: stats, compact, put, get, delete by @gzliudan in #821
- all: reduce the chain db size by @gzliudan in #816
- update bootnodes by @wanwiset25 in #822
- accounts: upgrade to 2024-12-17 by @gzliudan in #798
- Dev upgrade merge back to master by @benjamin202410 in #823
New Contributors
- @pro100skm made their first contribution in #664
Full Changelog: v2.4.6-beta1...v2.5.0-beta1