helios: thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: could not fetch bootstrap

If this PR https://github.com/a16z/helios/pull/253/files, as at commit f4a7d4c66a770f437c79a0842d9b387544fce5de, if i run the following to build a Docker container using Ubuntu 23.04

./docker/docker.sh

and then after that script enters me into the container i run

cargo run -p helios --example client

it outputs the following:

    Finished dev [unoptimized + debuginfo] target(s) in 0.65s
     Running `target/debug/examples/client`
Constructed client!
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: could not fetch bootstrap

Location:
    /opt/consensus/src/consensus.rs:304:26', /opt/consensus/src/consensus.rs:80:32
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

i’m using version nightly-2023-07-31 in the Docker container, because the latest master branch uses that version in the rust-toolchain file

About this issue

  • Original URL
  • State: closed
  • Created 10 months ago
  • Comments: 17 (11 by maintainers)

Most upvoted comments

Hmm when I try to run it with these settings outside of docker by doing cargo run -- -n goerli -c http://testing.prater.beacon-api.nimbus.team -e https://ethereum-goerli-rpc.allthatnode.com --checkpoint 0x7beab8f82587b1e9f2079beddebde49c2ed5c0da4ce86ea22de6a6b2dc7aa86b it seems to sync correctly. Is it possible your docker environment is causing issues?

Yes so the checkpoint is a beaconchain blockhash, rather than a execution block hash. This checkpoint is way to old (nearly a year). Normally, when it fails the fallback would kick in and automatically fetch a better one, but due to the refactors I mentioned that feature is currently not working.

To find a better checkpoint, you can go to https://prater.beaconcha.in/ and get the blockhash for the first block in any epoch. For example, the first blockhash in epoch 197110 is 0x7beab8f82587b1e9f2079beddebde49c2ed5c0da4ce86ea22de6a6b2dc7aa86b which should work.

In your example, you are using lightclientdata.org, which serves ethereum mainnet data, but you are using the goerli configs and a goerli execution rpc.

Also note that we are working on a couple of PRs to clean a few things up, so the current state of master will be in a bit of a weird spot for the next few days.