LPsLux Proposals
EVM & Execution
LP-3640

C-Chain Upgrade Mapping

Implemented

Comprehensive mapping of C-Chain network upgrades to LPs and Ethereum equivalents

Created
2025-12-17

Abstract

This LP provides a comprehensive mapping of all Lux C-Chain network upgrades to their associated Lux Proposals (LPs), Ethereum equivalents, and implementation details. This serves as a reference for developers, node operators, and anyone working with Lux blockchain data across different network phases.

Motivation

Understanding the relationship between network upgrades, LPs, and Ethereum hard forks is essential for:

  • Node operators configuring genesis files
  • Developers building applications that span multiple upgrade phases
  • Archive services importing historical data
  • Tooling that needs to understand header formats across upgrades

Specification

C-Chain Upgrade Timeline

UpgradeConfig KeyNode VersionFeaturesEthereum Equivalent
Apricot Phase 1apricotPhase1BlockTimestampv1.3.0Initial C-Chain launchGenesis + EIPs 2565, 2929
Apricot Phase 2apricotPhase2BlockTimestampv1.4.0Modified BerlinBerlin (EIP-2718, 2930)
Apricot Phase 3apricotPhase3BlockTimestampv1.5.0Dynamic feesLondon (EIP-1559, 3198, 3529)
Apricot Phase 4apricotPhase4BlockTimestampv1.6.0Block fee mechanismCustom (BlockGasCost)
Apricot Phase 5apricotPhase5BlockTimestampv1.7.0Atomic batch transactionsCustom
Apricot Phase Pre-6apricotPhasePre6BlockTimestampv1.8.0NativeAssetCall soft deprecationCustom
Apricot Phase 6apricotPhase6BlockTimestampv1.8.0NativeAsset deprecationCustom
Apricot Phase Post-6apricotPhasePost6BlockTimestampv1.8.0NativeAssetCall hard deprecationCustom
BanffbanffBlockTimestampv1.9.0Import/export LUX-onlyCustom
CortinacortinaBlockTimestampv1.10.0Gas limit increase (15M)Custom (LP-118)
DurangodurangoBlockTimestampv1.11.0Warp messaging + ShanghaiShanghai (minus EIP-4895)
EtnaetnaTimestampv1.12.0Cancun + min base fee reductionCancun (minus EIP-4844 blobs)
FortunafortunaTimestampv1.13.0Dynamic gas pricingCustom (LP-176/ACP-176)
GranitegraniteTimestampv1.14.0+Sub-second blocks, secp256r1Custom (LP-181, LP-204, LP-226)

LP Mapping

UpgradePrimary LPRelated LPsDescription
CortinaLP-118-chain-EVM compatibility upgrade
DurangoLP-2515LP-605Warp cross-chain messaging
EtnaLP-2320LP-601Dynamic gas limit and price discovery
FortunaLP-176LP-2320Dynamic EVM gas pricing mechanism
GraniteLP-226LP-181, LP-204Dynamic block timing, epoching, secp256r1

Header Format Evolution

The C-Chain header format has evolved with each upgrade phase. The header field count varies:

Upgrade PhaseHeader FieldsAdded Fields
Genesis-AP316Core 15 + BaseFee
Apricot Phase 4+17-19+ ExtDataHash, ExtDataGasUsed, BlockGasCost
Durango+19Full chainEVM header

Field Order (Coreth Format)

Position 0-14:  Core Ethereum fields (ParentHash through Nonce)
Position 15:    ExtDataHash (common.Hash, REQUIRED)
Position 16:    BaseFee (*big.Int, optional)
Position 17:    ExtDataGasUsed (*big.Int, optional)
Position 18:    BlockGasCost (*big.Int, optional)

Field Order (Geth Format)

Position 0-14:  Core Ethereum fields (ParentHash through Nonce)
Position 15:    BaseFee (*big.Int, optional)
Position 16:    ExtDataHash (*common.Hash, optional)
Position 17:    ExtDataGasUsed (*big.Int, optional)
Position 18:    BlockGasCost (*big.Int, optional)

Note: When importing blocks between coreth and geth formats, the field order difference at positions 15-16 must be handled. See geth/core/types/decode.go for format detection.

Genesis Configuration

Mainnet (Chain ID: 96369)

{
  "config": {
    "chainId": 96369,
    "apricotPhase1BlockTimestamp": 0,
    "apricotPhase2BlockTimestamp": 0,
    "apricotPhase3BlockTimestamp": 0,
    "apricotPhase4BlockTimestamp": 0,
    "apricotPhase5BlockTimestamp": 0,
    "apricotPhasePre6BlockTimestamp": 0,
    "apricotPhase6BlockTimestamp": 0,
    "apricotPhasePost6BlockTimestamp": 0,
    "banffBlockTimestamp": 0,
    "cortinaBlockTimestamp": 0,
    "durangoBlockTimestamp": 0,
    "etnaTimestamp": 253399622400,
    "fortunaTimestamp": 253399622400,
    "graniteTimestamp": 253399622400
  }
}

Testnet (Chain ID: 96368)

{
  "config": {
    "chainId": 96368,
    "chainEVMTimestamp": 0,
    "durangoTimestamp": 0,
    "etnaTimestamp": 253399622400
  }
}

Feature Activation Details

Apricot Phase 1 (v1.3.0)

  • Initial C-Chain launch
  • EIP-2565: ModExp gas cost reduction
  • EIP-2929: Cold/warm account access pricing

Apricot Phase 2 (v1.4.0)

  • EIP-2718: Typed transaction envelope
  • EIP-2930: Access list transactions
  • Modified Berlin hard fork

Apricot Phase 3 (v1.5.0)

  • EIP-1559: Fee market change (base fee)
  • EIP-3198: BASEFEE opcode
  • EIP-3529: Reduced gas refunds
  • Dynamic fee mechanism

Apricot Phase 4 (v1.6.0)

  • BlockGasCost mechanism
  • Fee config: minBlockGasCost, maxBlockGasCost, blockGasCostStep
  • Header extension: BlockGasCost field

Apricot Phase 5 (v1.7.0)

  • Batch atomic transactions
  • Maximum atomic gas limit per block
  • Improved cross-chain efficiency

Apricot Phases Pre-6/6/Post-6 (v1.8.0)

  • Deprecation of NativeAsset precompiles
  • Pre-6: Soft deprecation of NativeAssetCall
  • Phase 6: Full deprecation
  • Post-6: Hard removal

Banff (v1.9.0)

  • Import/export restricted to LUX only
  • Simplified cross-chain transfers

Cortina (v1.10.0) - LP-118

  • Gas limit increased to 15M
  • chain-EVM compatibility improvements

Durango (v1.11.0)

  • Lux Warp Messaging activation
  • Shanghai execution spec (without EIP-4895 withdrawals)
  • EIP-3855: PUSH0 opcode
  • EIP-3860: Initcode size limit
  • EIP-6049: SELFDESTRUCT deprecation warning

Etna (v1.12.0) - LP-2320

  • Cancun execution spec (without EIP-4844 blob txs)
  • EIP-1153: Transient storage
  • EIP-4788: Beacon root in EVM
  • EIP-5656: MCOPY opcode
  • EIP-6780: SELFDESTRUCT only same-tx
  • Reduced minimum base fee

Fortuna (v1.13.0) - LP-176

  • Dynamic EVM gas pricing (ACP-176)
  • Adaptive fee mechanism based on network load
  • Improved gas price discovery

Granite (Planned) - LP-226

  • Dynamic minimum block times (ACP-226)
  • Sub-second block capability (100ms minimum)
  • P-Chain epoched views (LP-181/ACP-181)
  • secp256r1 precompile (LP-204/ACP-204)
  • Biometric wallet support

Rationale

This mapping document consolidates information scattered across multiple sources:

  • Coreth params/extras/network_upgrades.go
  • Genesis configuration files
  • Individual LP specifications
  • Node release notes

Having a single authoritative reference simplifies development and troubleshooting.

Backwards Compatibility

This is an informational LP and does not introduce any changes. The documented upgrades are all backwards-compatible within their respective activation phases.

Security Considerations

Understanding upgrade boundaries is critical for:

  • Replay protection across networks
  • State migration during upgrades
  • Archive node operation
  • Block validation during import

Copyright and related rights waived via CC0.