github XinFinOrg/XDPoSChain v3.0.0-testnet

latest release: v3.0.0-testnet-1
pre-release6 hours ago

Testnet Only Version, don't deploy to mainnet environment

Release Notes

Changes compared with the previous testnet release v2.9.3-testnet. For the full list of changes since mainnet v2.7.1, see the v2.9.1-testnet, v2.9.2-testnet and v2.9.3-testnet release notes.

Important

Hard fork: Prague activates on testnet at block 87633000. Every testnet node, masternodes and RPC nodes alike, must run v3.0.0-testnet before that block. A node still on v2.9.x will fork off the chain at the activation block.

๐Ÿš€ Highlights

  • The Prague fork is enabled on testnet at block 87633000.
  • From Prague, non-zero calldata bytes cost 16 gas (EIP-2028) instead of 68. This lets the canonical Multicall3 creation transaction fit in its fixed 1,000,000 gas limit (#2706).
  • EIP-7702 set-code transactions now reject gasPrice combined with authorizationList, so a delegation is no longer silently dropped.

โ›“ Prague Fork on Testnet (#2811)

  • PragueBlock is set to 87633000 in params and in the embedded genesis/testnet.json. The other testnet fork blocks and the XDPoS V2 config are the same as in v2.9.3-testnet.
  • From the activation block, testnet nodes enable the Prague rules that already ship in the code:
    • EIP-7702 set-code transactions (type 0x04) are accepted by the txpool and the EVM.
    • The EIP-7623 calldata floor cost.
    • The EIP-2537 BLS12-381 precompiles (0x0bโ€“0x11).
    • EIP-2935 parent block hashes are stored in the history contract.
    • Multicall3 is installed at 0xcA11bde05977b3631167028862bE2a173976CA11.
  • The fork-order check now places Prague and Osaka after DynamicGasLimitBlock, TIPUpgradeRewardBlock and TIPUpgradePenaltyBlock (all 83600000). This matches the testnet block numbers.
  • The testnet fork ID now lists 87633000 as its final fork.

๐Ÿ›  Stability & Bug Fixes

Gas & Calldata Pricing (#2710)

  • The intrinsic gas now charges the EIP-2028 price of 16 gas per non-zero calldata byte from Prague. Blocks before Prague keep 68 gas (params.TxDataNonZeroGasFrontier), so historical blocks are processed exactly as before.
  • The EIP-3860 initcode word cost is still gated on EIP-1559.
  • The simulated backend's EstimateGas now raises the gas limit when a transaction is below the EIP-7623 data floor, just as it already does for the intrinsic gas. Before, it gave up instead.

RPC: EIP-7702 Fee Fields (#2716, #2717)

  • eth_sendTransaction, eth_signTransaction and eth_fillTransaction now return both gasPrice and authorizationList specified. Before, they built a legacy transaction without the authorization list and reported success. Ported from go-ethereum ethereum#35320.
  • eth_simulateV1 rejects the same combination. It also rejects an authorizationList on a simulated header without a base fee (authorizationList requires a base fee). Before, the returned block held a legacy transaction while the state root reflected the set-code execution.
  • eth_call, debug_traceCall, eth_estimateGas and eth_createAccessList are unchanged.

Chain Rewind (#2707)

  • DeleteDanglingHashes now returns iterator errors. Before, a header sweep that the database aborted on an I/O error looked complete, so SetHead could leave orphaned headers, TD entries and canonical markers above the new head. The existing Failed to rewind block crit log now stops the node instead (closes #2604).

๐Ÿงน Maintenance

  • Version bumped to v3.0.0-testnet.
  • CI now includes the uppercase XDCx packages when it selects tests (#2712).
  • New tests for the Prague intrinsic gas, the data-floor gas estimation, the EIP-7702 fee-field checks and the aborted dangling-hash sweep.

Full Changelog: v2.9.3-testnet...v3.0.0-testnet

Don't miss a new XDPoSChain release

NewReleases is sending notifications on new releases.