Run your relayer
2 CPU + 2Gb RAM + 10Gb disk should be sufficient
# These are example values to roughly illustrate
# what a .env file should look like
To run the relayer binary with the environment variables specified in
Building from source
--env-fileflag, we can pass in the environment variables to the relayer:
docker run -it --env-file relayer.env $DOCKER_IMAGE ./relayer
If you're supporting your own chain that you permissionlessly deployed and are specifying a path to your own config file in the
CONFIG_FILESenvironment variable, check out the config files with Docker section.
If you're running a locally set up validator on the same machine and want the relayer to access these validator signatures, be sure to mount your local validator's signature directory into your relayer at the same path that is announced on chain.
For example, if your local validator is writing signatures to
/tmp/hyperlane-validator-signatures-ethereum, you should mount that directory to the same path in the Docker container:
docker run -it --env-file relayer.env --mount type=bind,source=/tmp/hyperlane-validator-signatures-ethereum,target=/tmp/hyperlane-validator-signatures-ethereum,readonly $DOCKER_IMAGE ./relayer
We can run the built binary from within the
hyperlane-monorepo/rustdirectory with the environment variables found in
set -o allexport && source relayer.env && set +o allexport && ./target/release/relayer
Relayers needs to index all historic messages for the origin chain. This information is stored in a local database on disk (set with
dbin the config). This means running a relayer for the first time will take some extra time to catch up with the current state.