Skip to content

Failed to get remote head and new block ranges: EndpointError(FarBehind) #32007

Open
@MuhammadJamshaidGhaffar

Description

I'm setting up a local PoS testnet using the Electra fork (Capella + deneb), with the deposit contract pre-deployed in genesis and everything configured manually.

However, when starting Lighthouse beacon node, it fails with:

Jun 10 18:11:05.831 WARN Execution endpoint is not synced        last_seen_block_unix_timestamp: 1, endpoint: http://localhost:8551/, auth=true, service: deposit_contract_rpc
Jun 10 18:11:05.831 ERRO Error updating deposit contract cache   error: Failed to get remote head and new block ranges: EndpointError(FarBehind), retry_millis: 60000, service: deposit_contract_rpc
Jun 10 18:11:05.841 CRIT Failed to start beacon node             reason: Failed to build beacon chain: Head block not found in store
Jun 10 18:11:05.841 INFO Internal shutdown received              reason: Failed to start beacon node
Jun 10 18:11:05.841 INFO Shutting down..                         reason: Failure("Failed to start beacon node")
Failed to start beacon node

I believe this may be due to Lighthouse expecting the execution node (Geth) to be synced, but this is a new chain starting from block 0 with no historical state.

Steps Taken:

Generated genesis.json and config.yaml manually (see below)

Predeployed deposit contract at genesis in alloc

Using JWT-based authenticated RPC between Lighthouse and Geth

Using --execution-endpoint http://localhost:8551 with Lighthouse

Ensured deposit contract address and deploy block in config.yaml are correct

Versions:

Geth: v1.15.11

Lighthouse: v7.0.1-e42406d

Network Type: Local Electra forked PoS testnet

Execution Layer: Geth with Engine API enabled

Consensus Layer: Lighthouse beacon node

Geth Command:

geth \
  --datadir /root/.ethereum \
  --identity "NODE_2" \
  --networkid 1337 \
  --syncmode full \
  --snapshot=false \
  --verbosity 2 \
  --allow-insecure-unlock \
  --port 30303 \
  --bootnodes "$(cat /tmp/eth-node-urls)" \
  --http \
  --http.addr 0.0.0.0 \
  --http.port 8545 \
  --http.corsdomain="*" \
  --http.api web3,eth,debug,net,engine,admin,txpool \
  --authrpc.addr 0.0.0.0 \
  --authrpc.port 8551 \
  --authrpc.vhosts="*" \
  --authrpc.jwtsecret /tmp/jwt.hex

Lighthouse Command:

lighthouse --debug-level info bn \
  --datadir /tmp/local-testnet/eth-2 \
  --testnet-dir /tmp/local-testnet/testnet \
  --enable-private-discovery \
  --staking \
  --enr-address 10.151.0.71 \
  --enr-udp-port 9000 \
  --enr-tcp-port 9000 \
  --port 9000 \
  --http-address 10.151.0.71 \
  --http-port 8000 \
  --http-allow-origin "*" \
  --disable-packet-filter \
  --target-peers 5 \
  --execution-endpoint http://localhost:8551 \
  --execution-jwt /tmp/jwt.hex

genesis.json (Electra fork):

{
  "config": {
    "chainId": 1337,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "muirGlacierBlock": 0,
    "berlinBlock": 0,
    "londonBlock": 0,
    "arrowGlacierBlock": 0,
    "grayGlacierBlock": 0,
    "mergeForkBlock": 0,
    "shanghaiTime": 0,
    "cancunTime": 0,
    "terminalTotalDifficulty": 0,
    "ethash": {},
    "withdrawals": true
  },
  "nonce": "0x0",
  "timestamp": "0x0",
  "extraData": "0x00",
  "gasLimit": "0x1fffffffffffff",
  "difficulty": "0x0",
  "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x0000000000000000000000000000000000000000",
  "alloc": {
    "0x00000000219ab540356cbb839cbe05303d7705fa": {
      "balance": "0x0",
      "code": "<BYTECODE_OF_DEPOSIT_CONTRACT>",
      "storage": {
        "0x00": "0x01"
      }
    }
  }
}

config.yaml (Lighthouse):

CONFIG_NAME: mainnet
PRESET_BASE: mainnet
TERMINAL_TOTAL_DIFFICULTY: 0
TERMINAL_BLOCK_HASH: 0x0000000000000000000000000000000000000000000000000000000000000000
TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: 18446744073709551615
SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY: 128
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: 1
GENESIS_FORK_VERSION: 0x42424242
GENESIS_DELAY: 0
# Altair
ALTAIR_FORK_VERSION: 0x01000000
ALTAIR_FORK_EPOCH: 0  # Oct 27, 2021, 10:56:23am UTC
# Bellatrix
BELLATRIX_FORK_VERSION: 0x02000000
BELLATRIX_FORK_EPOCH: 0  # Sept 6, 2022, 11:34:47am UTC
# Capella
CAPELLA_FORK_VERSION: 0x03000000
CAPELLA_FORK_EPOCH: 0  # April 12, 2023, 10:27:35pm UTC
# Deneb
DENEB_FORK_VERSION: 0x04000000
DENEB_FORK_EPOCH: 0  # March 13, 2024, 01:55:35pm UTC
# Electra
ELECTRA_FORK_VERSION: 0x05000000
ELECTRA_FORK_EPOCH: 0  # May 7, 2025, 10:05:11am UTC
SECONDS_PER_SLOT: 12
SECONDS_PER_ETH1_BLOCK: 14
MIN_VALIDATOR_WITHDRAWABILITY_DELAY: 256
SHARD_COMMITTEE_PERIOD: 256
ETH1_FOLLOW_DISTANCE: 16
INACTIVITY_SCORE_BIAS: 4
INACTIVITY_SCORE_RECOVERY_RATE: 16
EJECTION_BALANCE: 16000000000
MIN_PER_EPOCH_CHURN_LIMIT: 4
CHURN_LIMIT_QUOTIENT: 32
PROPOSER_SCORE_BOOST: 40
DEPOSIT_CHAIN_ID: 1337
DEPOSIT_NETWORK_ID: 1337
NETWORK_ID: 1337
DEPOSIT_CONTRACT_ADDRESS: 0x00000000219ab540356cBB839Cbe05303d7705Fa
MAX_COMMITTEES_PER_SLOT: 10
INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: 8
TARGET_COMMITTEE_SIZE: 3
TARGET_AGGREGATORS_PER_COMMITTEE: 2

What I am doing wrong? I wan to create testnet with latest fork (electra) enabled right from genesis block. and since mine is removed so I can't mine either. I embedded deposit contract bytes right in genesis.json.

I really need help unblocking this to get my Electra fork testnet running with Lighthouse. Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions