Skip to content

Chain binary (v1.3.13) panic in SetChainHealth + genesis mismatch prevents sync and registration #44

@skimaharvey

Description

@skimaharvey

Environment

  • CLI: v5.16.0 (also reproduced on v5.9.2)
  • Chain binary: v1.3.13 (hyperspace-agentic-blockchain)
  • OS: Ubuntu 24.04, kernel 6.17.0, x86_64
  • GPU: NVIDIA RTX 3060 Ti (8GB VRAM), CUDA 13.0
  • CPU: AMD Ryzen 7 5700X (16 threads), 47GB RAM

Problem

Node runs, connects to 15–26 peers, gets elected for pulse rounds, but never earns points because of two issues:

1. Chain binary panic (~90 seconds after start)

panic: runtime error: slice bounds out of range [:10] with length 0

goroutine 1 [running]:
github.com/hyperspace-a1/hyperspace-edge/cmd.(*AutoUpdater).SetChainHealth(0x1f9e03d?, {0x261dc58?, 0xc000532610?}, {0x0?, 0x5?})
    /lambda/nfs/titan/a1-blockchain-hyperspace/hyperspace-edge/cmd/autoupdate.go:186 +0x192
github.com/hyperspace-a1/hyperspace-edge/cmd.runServer({0x2642e18?, 0xc000354aa0?})
    /lambda/nfs/titan/a1-blockchain-hyperspace/hyperspace-edge/cmd/server.go:1576 +0x6b45

SetChainHealth receives a nil string (ptr=0x0, len=5) and tries [:10] on it. This is not controlled by the --auto-update flag — it is called from runServer() unconditionally. The chain binary crash-loops 3 times then gives up.

2. Genesis mismatch (block 0 hash differs from network)

Local node Network (all 4 bootnodes)
Block 0 hash 0xb6db9d45dcf698a50aac9b49ed19c6ccd018999b2ad60554763ae93256c78ae6 0xb56673843d4881e7172b5d1eac1bc8a621656cf7f7b10149535fefd9b3c8cd96
Timestamp 0x69bb27f9 (Mar 18) 0x69c0419e (Mar 22)

The genesis.json bundled in the CLI binary and produced by hyperspace-agentic-blockchain join produces the wrong block 0 hash. The network validators were initialized with a different genesis (March 22 re-genesis). Even if the chain binary didn't crash, the node would never sync.

Result

  • Sync: unknown — chain never syncs (genesis fork)
  • Registered: no — can't register on-chain
  • Points: 0.00 — pulse rounds elected but never complete
  • LM: 0.00x — liveness multiplier stays at 0

What I tried

  1. Stripped --auto-update flag via wrapper script — no effect (crash path is unconditional in runServer())
  2. Wiped ~/.hyperspace/edge-data/ — temporarily delayed crash but it recurs after ~90s
  3. Upgraded from v5.9.2 to v5.16.0 — same chain binary, same crash
  4. Used hyperspace-agentic-blockchain join --role relay — produces identical stale genesis with the wrong block 0 hash
  5. Verified bootnode connectivity — all 7 bootnodes reachable on port 30301, chain binary connects to 4-7 peers at transport level
  6. Checked Groot DHT — logs show [WARN] No bootstrap nodes configured because --groot.bootnodes is never passed by the CLI

Additional notes

  • This appears related to Miner key file address doesn't match derived address from privateKey #43 (same Registered: no, zero points symptoms)
  • The wallet show command also fails with "install ethers" — ethers is not bundled in the SEA binary
  • The [STATS] logs consistently show Points: 0.00 | LM: 0.00x despite repeated pulse round elections
  • The better_sqlite3.node native module also fails to load: [DB] SQLite init failed (node will still connect): No such built-in module

Node info

  • Peer ID: 12D3KooWQcgXCFcoaBPoW3euyVh5dxqAa65qJX9gLkK9TT3wdBai
  • Agent: 0xFOKMT836

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions