Skip to content

Run Geth with an integrated blsync doesn't work. "invalid attested header: unsupported fork: fulu" is reported #33165

@rickyliu1117

Description

@rickyliu1117

System information

Geth version: https://github.com/ethereum/go-ethereum@master
CL client & version: e.g. Integrated blsync
OS & Version: OSX: MacOS Sequoia, Version 15.7.2
Commit hash : master: 15ff378

Expected behaviour

Should successfully download the checkpoint header and sync the block

Actual behaviour

Failed to request beacon block. "error decoding optimistic update event: invalid attested header: unsupported fork: fulu" was reported

Steps to reproduce the behaviour

  1. Download go-ethereum source code from master branch
  2. make all
  3. Follow the instruction at https://geth.ethereum.org/docs/fundamentals/blsync to run Geth with blsync integrated
    • Launch Clef with cli command: ./build/bin/clef --keystore geth-tutorial/keystore --configdir geth-tutorial/clef --chainid 11155111
    • Launch Geth with cli command:
      ./build/bin/geth --sepolia --datadir geth-tutorial --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret geth-tutorial/jwtsecret --http --http.api eth,net --signer=geth-tutorial/clef/clef.ipc --beacon.api https://lodestar-sepolia.chainsafe.io --beacon.checkpoint 0x71cff47c7fde33703c7aa4c6ff4aeca6ccf929e0eb5ee8c12350e44230d9efba --http

Backtrace

[backtrace]
go-ethereum ricky$ ./build/bin/geth --sepolia --datadir geth-tutorial --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret geth-tutorial/jwtsecret --http --http.api eth,net --signer=geth-tutorial/clef/clef.ipc --beacon.api https://lodestar-sepolia.chainsafe.io --beacon.checkpoint 0x71cff47c7fde33703c7aa4c6ff4aeca6ccf929e0eb5ee8c12350e44230d9efba --http 
INFO [11-12|16:47:11.520] Starting Geth on Sepolia testnet...
INFO [11-12|16:47:11.522] Maximum peer count                       ETH=50 total=50
INFO [11-12|16:47:11.523] Using external signer                    url=geth-tutorial/clef/clef.ipc
INFO [11-12|16:47:11.525] Set global gas cap                       cap=50,000,000
INFO [11-12|16:47:11.525] Initializing the KZG library             backend=gokzg
INFO [11-12|16:47:11.527] Allocated trie memory caches             clean=154.00MiB dirty=256.00MiB
INFO [11-12|16:47:11.527] Using pebble as the backing database
INFO [11-12|16:47:11.527] Allocated cache and file handles         database=/Users/ricky/ethereum/go-ethereum/geth-tutorial/geth/chaindata cache=512.00MiB handles=5120
INFO [11-12|16:47:11.577] Opened ancient database                  database=/Users/ricky/ethereum/go-ethereum/geth-tutorial/geth/chaindata/ancient/chain readonly=false
INFO [11-12|16:47:11.577] Opened Era store                         datadir=/Users/ricky/ethereum/go-ethereum/geth-tutorial/geth/chaindata/ancient/chain/era
INFO [11-12|16:47:11.578] State scheme set to already existing     scheme=path
INFO [11-12|16:47:11.578] Initialising Ethereum protocol           network=11,155,111 dbversion=9
INFO [11-12|16:47:11.578] Load database journal from disk
INFO [11-12|16:47:11.578] Failed to load journal, discard it       err="journal not found"
INFO [11-12|16:47:11.580] Opened ancient database                  database=/Users/ricky/ethereum/go-ethereum/geth-tutorial/geth/chaindata/ancient/state readonly=false
INFO [11-12|16:47:11.580] Initialized path database                triecache=154.00MiB statecache=102.00MiB buffer=256.00MiB state-history="last 90000 blocks" journal-dir=/Users/ricky/ethereum/go-ethereum/geth-tutorial/geth/triedb
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] ---------------------------------------------------------------------------------------------------------------------------------------------------------
INFO [11-12|16:47:11.581] Chain ID:  11155111 (sepolia)
INFO [11-12|16:47:11.581] Consensus: Beacon (proof-of-stake), merged from Ethash (proof-of-work)
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] Pre-Merge hard forks (block based):
INFO [11-12|16:47:11.581]  - Homestead:                   #0       
INFO [11-12|16:47:11.581]  - Tangerine Whistle (EIP 150): #0       
INFO [11-12|16:47:11.581]  - Spurious Dragon/1 (EIP 155): #0       
INFO [11-12|16:47:11.581]  - Spurious Dragon/2 (EIP 158): #0       
INFO [11-12|16:47:11.581]  - Byzantium:                   #0       
INFO [11-12|16:47:11.581]  - Constantinople:              #0       
INFO [11-12|16:47:11.581]  - Petersburg:                  #0       
INFO [11-12|16:47:11.581]  - Istanbul:                    #0       
INFO [11-12|16:47:11.581]  - Muir Glacier:                #0       
INFO [11-12|16:47:11.581]  - Berlin:                      #0       
INFO [11-12|16:47:11.581]  - London:                      #0       
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] Merge configured:
INFO [11-12|16:47:11.581]  - Total terminal difficulty:  17000000000000000
INFO [11-12|16:47:11.581]  - Merge netsplit block:       #1735371 
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] Post-Merge hard forks (timestamp based):
INFO [11-12|16:47:11.581]  - Shanghai:                    @1677557088
INFO [11-12|16:47:11.581]  - Cancun:                      @1706655072 blob: (target: 3, max: 6, fraction: 3338477)
INFO [11-12|16:47:11.581]  - Prague:                      @1741159776 blob: (target: 6, max: 9, fraction: 5007716)
INFO [11-12|16:47:11.581]  - Osaka:                       @1760427360 blob: (target: 6, max: 9, fraction: 5007716)
INFO [11-12|16:47:11.581]  - BPO1:                        @1761017184 blob: (target: 10, max: 15, fraction: 8346193)
INFO [11-12|16:47:11.581]  - BPO2:                        @1761607008 blob: (target: 14, max: 21, fraction: 11684671)
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] All fork specifications can be found at https://ethereum.github.io/execution-specs/src/ethereum/forks/
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] ---------------------------------------------------------------------------------------------------------------------------------------------------------
INFO [11-12|16:47:11.581] 
INFO [11-12|16:47:11.581] Loaded most recent local block           number=0 hash=25a5cc..3e6dd9 age=4y2mo19h
INFO [11-12|16:47:11.581] Initialized transaction indexer          range="last 2350000 blocks"
INFO [11-12|16:47:11.594] Enabled snap sync                        head=0 hash=25a5cc..3e6dd9
INFO [11-12|16:47:11.594] Gasprice oracle is ignoring threshold set threshold=2
WARN [11-12|16:47:11.594] Unclean shutdown detected                booted=2025-11-12T16:44:50+0800 age=2m21s
INFO [11-12|16:47:11.594] Registered sync override service
INFO [11-12|16:47:11.594] Starting peer-to-peer node               instance=Geth/v1.16.8-unstable-15ff378a-20251106/darwin-arm64/go1.25.1
INFO [11-12|16:47:11.617] New local node record                    seq=1,762,937,231,617 id=9e5933f4cc902c5c ip=127.0.0.1 udp=30303 tcp=30303
INFO [11-12|16:47:11.618] Started P2P networking                   self=enode://9103de72008bdc17df1cc94991bd668067adc534d5c6d1d278a0de012b15e80d637ddba4d9847acfbbc174b99a58a10e277821fd756bd9c42f36bd6af42831b2@127.0.0.1:30303
INFO [11-12|16:47:11.618] IPC endpoint opened                      url=/Users/ricky/ethereum/go-ethereum/geth-tutorial/geth.ipc
INFO [11-12|16:47:11.618] HTTP server started                      endpoint=127.0.0.1:8545 auth=false prefix= cors= vhosts=localhost
INFO [11-12|16:47:11.619] Started log indexer
WARN [11-12|16:47:11.619] Failed to open wallet                    url=extapi://geth-tutorial/clef/cle.. err="operation not supported on external signers"
INFO [11-12|16:47:12.640] New local node record                    seq=1,762,937,231,618 id=9e5933f4cc902c5c ip=221.216.147.63 udp=28622 tcp=30303
WARN [11-12|16:47:12.874] Beacon API request failed                type=sync.ReqCheckpointData reqid=1 err="unexpected error from API endpoint \"/eth/v1/beacon/light_client/bootstrap/0x71cff47c7fde33703c7aa4c6ff4aeca6ccf929e0eb5ee8c12350e44230d9efba\": status code 429"
WARN [11-12|16:47:13.530] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
ERROR[11-12|16:47:13.811] blsync: checkpoint not available, but reported as finalized; specified checkpoint hash might be too old server=https://lodestar-sepolia.chainsafe.io
WARN [11-12|16:47:14.434] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=3 err="unsupported fork: fulu"
WARN [11-12|16:47:24.560] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:47:25.312] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=4 err="unsupported fork: fulu"
WARN [11-12|16:47:36.680] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:47:37.684] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=5 err="unsupported fork: fulu"
WARN [11-12|16:47:46.594] Beacon client online, but no consensus updates received in a while. Please fix your beacon client to follow the chain!
WARN [11-12|16:47:49.234] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:47:50.144] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=6 err="unsupported fork: fulu"
WARN [11-12|16:48:00.198] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:48:00.936] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=7 err="unsupported fork: fulu"
WARN [11-12|16:48:13.633] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:48:14.540] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=8 err="unsupported fork: fulu"
WARN [11-12|16:48:24.455] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:48:25.194] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=9 err="unsupported fork: fulu"
WARN [11-12|16:48:36.685] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:48:37.581] Beacon API request failed                type=sync.ReqBeaconBlock    reqid=10 err="unsupported fork: fulu"
WARN [11-12|16:48:48.279] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:49:00.369] Head event stream error                  err="error decoding optimistic update event: invalid attested header: unsupported fork: fulu"
WARN [11-12|16:49:01.309] Beacon API request failed               

When submitting logs: please submit them as text and not screenshots.

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