Files
smom-dbis-138/docs/operations/status-reports/CANCUN_FORK_STATUS.md
T
2026-03-02 12:14:09 -08:00

2.8 KiB
Raw Blame History

Cancun Fork Status – ChainID 138

Summary

Adding Cancun is already done in your production genesis. No extra work is required for the chain config.


Current State

Production genesis (genesis-138.json)

The phase1 genesis used for deployment already enables Shanghai and Cancun from block 0:

"shanghaiTime": 0,
"cancunTime": 0,
  • Source: smom-dbis-138/terraform/phases/phase1/config/genesis-138.json
  • Deployed to: Besu nodes via phase1 scripts (e.g. /genesis/genesis.json or /opt/besu/config/genesis.json)

So the chain is already configured for Cancun at genesis.

Genesis template

config/genesis-template.json has been updated to include shanghaiTime: 0 and cancunTime: 0, so any new genesis generated from this template will also have Cancun from block 0.


EIP-7702 (delegation) on top of Cancun

EIP-7702 requires:

  1. Cancun fork – ✅ Already in genesis (cancunTime: 0).
  2. Besu 24.1.0+ – Must be checked on each node.

To confirm Besu version on all nodes:

# Full list (validators, sentries, RPC)
PROXMOX_HOST=192.168.11.10 ./scripts/check-besu-version-all-nodes.sh

# Quick check on running RPC VMIDs only
BESU_VMIDS="2101 2400 2401 2402" ./scripts/check-besu-version-all-nodes.sh

Last run (sample): VMIDs 2400 and 2402 reported Besu 23.10.0 (below 24.1.0). Use the project upgrade script to bring all nodes to latest:

# From repo root (proxmox)
./scripts/upgrade-besu-all-nodes.sh              # upgrade to 25.12.0
./scripts/upgrade-besu-all-nodes.sh --dry-run    # show what would be done
BESU_VERSION=25.11.0 ./scripts/upgrade-besu-all-nodes.sh
  • Ensure every Besu node runs Besu 24.1.0 or later.
  • Ensure the deployed genesis on each node is the one that contains cancunTime: 0 (i.e. your current genesis-138.json or equivalent).
  • Use scripts/enable-eip-7702-besu.sh to verify genesis and remind about the Besu version requirement.

If you were adding Cancun from scratch

Difficulty: low.

  1. Genesis: In the genesis config object add (time-based) or block-based equivalents:
    • "shanghaiTime": 0 (or a Unix timestamp)
    • "cancunTime": 0 (or a Unix timestamp)
  2. Besu: No extra Besu options; fork activation is driven by the genesis file.
  3. Deploy: Replace genesis on all nodes with the updated file and restart Besu (or roll out in a coordinated way if scheduling a future fork time/block).

For a new chain (genesis block 0), using 0 activates Shanghai and Cancun from the first block.


References

  • Besu genesis reference: Genesis file items
  • EIP-7702 script: scripts/enable-eip-7702-besu.sh
  • Fork analysis: smom-dbis-138/docs/operations/status-reports/FORK_ANALYSIS.md