Start relaying

Run your relayer
2 CPU + 2Gb RAM + 10Gb disk should be sufficient

Monitoring and alerting

Coming soon™️

Running the binary

Refer to the Installation instructions to access the relayer binary.
Environment variables can be placed in a relayer.env file, for example:
relayer.env
# These are example values to roughly illustrate
# what a .env file should look like
HYP_RELAYER_ORIGINCHAINNAME=ethereum
HYP_RELAYER_DESTINATIONCHAINNAMES=polygon,avalanche
HYP_RELAYER_GASENFORCEMENTPOLICY='[["type":"none"}]'
# ...
# ...
To run the relayer binary with the environment variables specified in relayer.env:
Using Docker
Building from source
Find the latest Docker image and set it to the environment variable $DOCKER_IMAGE.
Using the --env-file flag, 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_FILES environment 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
See these instructions for building from source.
We can run the built binary from within the hyperlane-monorepo/rust directory with the environment variables found in relayer.env:
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 db in the config). This means running a relayer for the first time will take some extra time to catch up with the current state.