tldr;
This time when Lodestar launches on ephemery and looks for the EL client, I want it to find Geth.
pk910's initial Lodestar configuration essentially downloads the latest ephemery settings based on whatever is saved at https://ephemery.dev/latest/genesis.ssz and https://ephemery.dev/latest/bootstrap_nodes.txt.
export const depositContractDeployBlock = 0;
export const genesisFileUrl = "https://ephemery.dev/latest/genesis.ssz";
export const bootnodesFileUrl = "https://ephemery.dev/latest/bootstrap_nodes.txt";
First up, I want to check I can use this approach to sync with Geth.
Then, when I am sure that my Lodestar launch command correctly gathers the latest ephemery settings, my plan is to replace the ephemery downloads with the genesis included inside the Lodestar executable.
Syncing with Geth
Get the latest ephemery version
https://github.com/ephemery-testnet/ephemery-genesis/releases
Delete geth datadir and make sure that Geth is initialized with the latest ephemery version
./geth --datadir ../gethData init ../ephemery/genesis.json
Launch Geth
./geth --datadir ../gethData --port 30303 --http --http.addr 0.0.0.0 --http.port 8545 --http.api eth,net,personal,web3 --ws --ws.addr 0.0.0.0 --ws.port 8546 --ws.api eth,net,personal,web3 --authrpc.jwtsecret=/tmp/jwtsecret --syncmode=full --bootnodes "enode://0f2c301a9a3f9fa2ccfa362b79552c052905d8c2982f707f46cd29ece5a9e1c14ecd06f4ac951b228f059a43c6284a1a14fce709e8976cac93b50345218bf2e9@135.181.140.168:30343" --networkid 39438090
Launch Lodestar ./lodestar beacon --network ephemery
Troubleshooting Lodestar error
ECONNREFUSED ::1:8551
Lodestar won't connect to port 8551, whether Geth is running or not.
Checking the logs, the Lodestar root isn't the latest genesis state root that I can see in the ephemery settings.
The datadir path can be seen in the logs
Connected to LevelDB database path=/Users/hollyatkinson/.local/share/lodestar/ephemery/chain-db
Lodestar logs:
stateRoot=0xc37ddf2675dc311def8a4011fb1e066b11960c99b2b5a64cc5826730764b9e91
State root is still incorrect;
Solution: currently still need to pass Lodestar the jwt flag:
./lodestar beacon --network ephemery --jwt-secret=/tmp/jwtsecret
Creating ephemery package in Lodestar
Additional reading