Skip to content

Releases: XinFinOrg/XDPoSChain

v2.6.8

07 Jan 13:45
146252a

Choose a tag to compare

🚀 Release Notes

✨ Highlights

  • EIP-1559 mainnet activation with full Cancun support
  • 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.Context into BlockContext and TxContext
  • 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/vm for reorg, Cancun, and post-Cancun correctness
  • Improve EstimateGas API accuracy and performance

🐛 Bug Fixes

  • Fix incorrect blockHash returned by eth_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_addTrustedPeer
    • admin_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 EstimateGas behavior
  • 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-bindataembed
  • 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 tidy and go generate checks
  • 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.

v2.4.2-hotfix

26 Dec 09:55
d24d559

Choose a tag to compare

What's Changed

Full Changelog: v2.4.2...v2.4.2-hotfix

v2.6.7-testnet

18 Dec 09:57

Choose a tag to compare

v2.6.7-testnet Pre-release
Pre-release

v2.6.6-testnet

27 Nov 14:02

Choose a tag to compare

v2.6.6-testnet Pre-release
Pre-release

Performance Improvements

  • Pre-allocate memory for slices and maps (XFN-148).
  • Optimized CompareSignersLists.
  • Improved cached-prev comparison logic in core (XFN-96).
  • Performance boosts in ChaindbCompact() / ChaindbProperty() (XFN-139).
  • Faster unique signature verification (XFN-03).
  • Reduced overuse of log.Crit, improved logging efficiency.
  • Improved txpool performance and reduced lock contention.
  • More efficient future block handling logic (XFN-101).

Ethereum EIPs / Protocol & Consensus Enhancements

  • Multiple XDPoS V2 validation and parameter fixes (XFN-45, XFN-125, XFN-151, etc.).
  • Fixed rpc.BlockNumber overflow issues across modules (XFN-69).
  • Verified header hash correctness in getEpochSwitchInfo.
  • Enforced gas limit bounds and validation logic (XFN-07, XFN-59, XFN-1619).
  • Skipped gas limit verification for genesis block.
  • Added DeepCopy() for PoolObj (XFN-04).
  • Added epoch-switch check in IsSigner (XFN-90).
  • Earlier rejection of invalid signatures (XFN-29).
  • Validated gap numbers in masternode updates (XFN-11).
  • Enforced minimum timestamp for initial V2 block (XFN-16).
  • Correct special-tx processing behavior (XFN-67).
  • Removed “fake storage” implementation (XFN-150).
  • Separated V1 and V2 full verifier arrays.

RPC & API Enhancements

  • Updated BlockNumber constants to match ethclient (ethereum#27219).
  • Fixed unsafe pointer manipulation in tracers (XFN-91).
  • Improved error propagation in internal/ethapi (XFN-118).
  • Pre-allocated map in txpool API for better performance (XFN-106).
  • Validated tx JSON non-nil before use.
  • Fixed incorrect condition judgment in RPC (XFN-73).
  • Ensured gasprice cache purge goroutine terminates properly (XFN-89).
  • Corrected parameter name mismatch in HookPenalties() (XFN-141).

Security & Bug Fixes

  • Fixed inconsistent tx blacklist enforcement (XFN-98).
  • Fixed trie DB reference dereference issues (XFN-85).
  • Resolved unsafe slice creation pointer usage.
  • Added missing nil checks and improved error handling across modules.
  • Synchronized txpool cache with mutex protection (XFN-65).
  • Resolved concurrency issues: data races, goroutine leaks, unsynchronized reads.
  • Fixed overflow, modulo-by-zero, and boundary condition bugs.
  • Improved signature, gas fee, and immutability handling logic.
  • Corrected mined block event handling and transaction queue logic.
  • Fixed incorrect tx queue pop order (XFN-37).
  • Eliminated variable shadowing in many functions.

Code Refactoring & Cleanup

  • Removed unused variables, functions, and APIs (XFN-74, XFN-134, XFN-115, etc.).
  • Improved naming consistency and parameter clarity.
  • Added Solidity documentation.
  • Eliminated unused parameters in consensus/XDPoS.
  • Converted appropriate variables to constants (XFN-123).
  • Cleaned up error definitions and improved ExtractAddressFromBytes().
  • Fixed typos and added missing comments.
  • Separated v1 and v2 verifier arrays.

Network & Node Adjustments

  • Fast-cancel block insertion when debug_setHead is invoked (XFN-142).
  • Enhanced handling of future blocks.
  • Fixed goroutine leak in procFutureBlocks (XFN-105).
  • Improved masternode update verification.
  • Enhanced QC verification logic (XFN-09).
  • Corrected Block type immutability issues (XFN-82).
  • Added validation for initial V2 timestamp.

Development & Deployment Updates

  • Version bumped to v2.6.6-testnet.
  • Compared V2 parameters across versions (XFN-45).
  • Disabled config comparison during rollback.
  • Added additional logs for debugging.
  • Updated test gas limit parameters.
  • Resolved merge conflicts.
  • Added missing packages/imports (e.g., fmt).
  • Updated package version references.

What's Changed

Full Changelog: v2.6.5-testnet...v2.6.x-testnet

v2.6.5-testnet

28 Aug 05:18

Choose a tag to compare

v2.6.5-testnet Pre-release
Pre-release

What's Changed

Full Changelog: v2.6.4-beta...v2.6.5-testnet

v2.6.4-beta

14 Jul 09:11

Choose a tag to compare

v2.6.4-beta Pre-release
Pre-release

This is ONLY for TESTNET Release

What's Changed

  • console, internal: remove personal RPC namespace ethereum#30704
  • all: fix invalid signer list on checkpoint block for trace api close #1185 #1186

Full Changelog: v2.6.3-beta...v2.6.4-beta

v2.4.2

16 Jun 09:03

Choose a tag to compare

v2.6.3-beta

19 May 06:18

Choose a tag to compare

v2.6.3-beta Pre-release
Pre-release

This is ONLY for TESTNET Release

What's Changed

Full Changelog: v2.6.0-beta...v2.6.3-beta

v2.6.2-beta

08 May 08:41

Choose a tag to compare

v2.6.2-beta Pre-release
Pre-release

THIS IS TESTNET ONLY RELEASE

What's Changed

Full Changelog: v2.6.0-beta...v2.6.2-beta

v2.6.0-beta

26 Mar 08:00

Choose a tag to compare

v2.6.0-beta Pre-release
Pre-release

Full Changelog: v2.5.1-beta...v2.6.0-beta

Support Cancun
Support solidity v0.8.28