world-chain/
├── crates/
├── bin/world-chain/ # Node binary
│ ├── primitives/ # Core types (flashblock payloads, BAL, P2P auth)
│ ├── cli/ # CLI args & node configuration
│ ├── pbh/ # Priority Bundle Handler (nullifiers, proofs)
│ ├── p2p/ # Flashblocks P2P sub-protocol
│ ├── pool/ # Transaction pool with PBH ordering
│ ├── rpc/ # JSON-RPC APIs (ETH, OP, Engine, Sequencer)
│ ├── builder/ # Block builder, BAL, parallel validation
│ ├── payload/ # Payload generation & job management
│ ├── node/ # Node builder components.
│ └── test-utils/ # Shared test utilities & e2e harness
├── e2e-tests/ # Integration & property-based tests
├── xtask/ # Development tooling
├── pkg/contracts/ # Solidity smart contracts
├── specs/ # Protocol Specifications
└── scripts/ # Extra scripts
Spawn an in-process node swarm — no Docker:
cargo xtask launch-node --nodes 2 --spam --flashblocksStarts N nodes via P2P, drives block production with EngineDriver, optionally runs TxSpammer. Prints RPC URLs for cast interaction.
Custom metrics are exposed via the standard reth metrics endpoint (/metrics). Key namespaces:
flashblocks_per_epoch— Histogram of flashblocks produced per epochcoordinator.*— Execution coordinator timing and throughput
payload_build_time— Time to build a payloadpayload_job.*— Job lifecycle metrics
flashblocks_received— Counter of flashblocks received from peersflashblocks_sent— Counter of flashblocks propagatedpeer_latency— Per-peer latency scoring for receive-peer rotation
validation_time— Time to validate a flashblockstate_root_compute_time— Parallel state root computation time
reth snapshots are regularly updated:
BUCKET="world-chain-snapshots" # use world-chain-testnet-snapshots for sepolia
FILE_NAME="reth_archive.tar.lz4" # reth_full.tar.lz4 is available on mainnet only
OUT_DIR="./"
VID="$(aws s3api head-object --bucket "$BUCKET" --key "$FILE_NAME" --region eu-central-2 --query 'VersionId' --output text)"
aws s3api get-object --bucket "$BUCKET" --key "$FILE_NAME" --version-id "$VID" --region eu-central-2 --no-cli-pager /dev/stdout | lz4 -d | tar -C "$OUT_DIR" -x