π Release Notes
β¨ Highlights
- EIP-1559 mainnet activation with full Cancun support by block 98800200
- Blob & KZG cryptography support (post-Cancun readiness)
- Significant EVM performance improvements
- Major stability fixes for txpool, consensus, and RPC
- Support solidity v0.8.28
- Large-scale codebase modernization (Go 1.23, CI/CD, lint cleanup)
Upgrade Instruction for Xinfin-Node
cd mainnet && bash upgrade.sh
π§© Protocol & EVM Upgrades
- Implement EIP-1559 (mainnet release configuration)
- Implement EIP-1153 (Transient Storage)
- Implement EIP-2565
- Implement EIP-3651 (Warm Coinbase)
- Implement EIP-5656 (MCOPY opcode)
- Implement EIP-6780
- Implement EIP-7516
- Enable Cancun instruction set
- Implement BLOBHASH opcode (0x49)
- Support KZG cryptography and blob handling
βοΈ Core / EVM / VM Improvements
- Refactor
vm.ContextintoBlockContextandTxContext - Improve EVM reusability and reduce memory allocations
- Remove legacy interpreter interface
- Optimize precompile handling and jumpdest analysis
- Improve trace log formatting and return data handling
- Upgrade
core/vmfor reorg, Cancun, and post-Cancun correctness - Improve
EstimateGasAPI accuracy and performance
π Bug Fixes
- Fix incorrect
blockHashreturned byeth_getLogs - Fix gas price calculation with empty blocks
- Fix txpool overflow caused by pending special transactions
- Fix block production stalls caused by special txs
- Fix integer divide-by-zero in header validation
- Fix nil handling in block number retrieval
- Fix
xdc-prefix address encoding bug - Fix consensus vote threshold and epoch boundary issues
- Fix node account manager memory leak
- Fix duplicate metrics collection process
- Fix downloader bugs and speed up downloader tests
π Consensus, P2P & Networking
- Enforce signer uniqueness using signer public keys
- Improve epoch timeout handling and countdown logging
- Add trusted peer management RPCs:
admin_addTrustedPeeradmin_removeTrustedPeer
- Increase default max peers to 50
- Allow HTTP and WebSocket servers on the same port
- Add dial metrics to P2P discovery
π‘ RPC, Node & CLI Enhancements
- Add RPC gas cap flag (
--rpc-gascap, default: 50M) - Improve RPC
EstimateGasbehavior - Add database CLI commands:
stats,compact,inspect,get,put,delete
- Add read-only database option
- Improve block report and chain config output formats
- New RPC API:
xdpos_getBlockInfoByEpochNum
π§Ή Refactoring & Code Quality
- Extensive staticcheck cleanup (SA, ST, S-series warnings)
- Remove unused code, empty functions, and redundant conversions
- Replace deprecated Go APIs (
ioutil, legacy timers, string helpers) - Migrate
go-bindataβembed - Simplify database access abstractions
- Refactor rawdb into a dedicated package
π Build, Tooling & CI/CD
- Upgrade Go toolchain to Go 1.23
- Add support for golangci-lint v1.63.4
- Enforce
go mod tidyandgo generatechecks - Migrate CLI to
urfave/cli/v2 - Improve CI bootnode handling and backup RPC support
π Network, Devnet & Testnet
- New devnet deployment and recovery improvements
- Reduce devnet gas limit to 50M
- Update devnet and testnet block numbers and timeouts
- Update bootnode lists (devnet & mainnet)
- Improve private devnet networking support
- Cost-saving RPC downsizing for devnet
β οΈ Deprecations & Removals
- Remove deprecated CLI flags:
--mine,--fast,--light--XDCx-datadir
- Remove deprecated packages:
- Whisper
- ENS
- Android & iOS mobile builds
- Remove legacy configs and unused genesis dependencies
- Emit warnings when deprecated configs or resources are used
π Security & Audit
- Apply fixes from CertiK audit findings
- Harden consensus signature validation
- Fix sender recovery for pending transactions
(aligned with upstream Ethereum fixes)
π Notes for Operators
- EIP-1559 activation is a consensus-breaking upgrade
β All nodes must upgrade before the activation block. - Deprecated flags and packages are no longer supported.
- Devnet and testnet parameters have changedβverify configs before upgrading.