Quickstart with Docker Compose and AWS
Using Docker Compose provides a structured way to manage validator deployments while maintaining the flexibility of raw Docker. You can find the full specification of the format in the Docker docs.
1. Setup validator key
Follow the guide here for creating agent keys with AWS KMS.
2. Create S3 bucket for signatures
Follow the guide here for creating and configuring an S3 bucket for your validator to write signatures to.
3. (AVS Operators Only) Register with Hyperlane AVS
If you are an AVS operator, follow the guide here to register with the Hyperlane AVS.
4. Setup validator environment
Create config files
In this example, we will run three chains.
Edit each config.json
You can read more about Agent Configs here.
Parameter | Description |
---|---|
customRpcUrls | A comma-separated list of performant RPC endpoints for the chain you wish to support. We recommend using paid providers to avoid rate limiting. |
chains.ethereum | Should be changed to chains.base in the base/config.json, and chains.optimism in optimism/config.json. |
signer.region | Should be adjusted to your AWS region. |
validator.region | Should be adjusted to your AWS region. |
signer.id | Should be adjusted to your AWS KMS id you configured in step 3, prefixed with alias/ . |
validator.id | Should be adjusted to your AWS KMS id you configured in step 3, prefixed with alias/ . |
originChainName | Should be the chain you are validating. |
checkpointSyncer.bucket | Should reflect the name of the S3 bucket. |
checkpointSyncer.folder | The name of the folder the validator will use within the bucket. You may use the same bucket for multiple validators, but ensure each folder name is unique per validator. |
reorgPeriod | May be different for each chain. Find the reorgPeriods. |
Here is an example agent config.
Edit each .env file
You should change the service name, AWS credentials for each chain.
5. Configure Docker Compose (docker-compose.yml)
Your directory structure should look similar to this:
6. Run the Hyperlane Validators
Bring the containers up:
Remember to fund your validator address so the validator can announce.
Ensure there are no errors:
Running Multiple Validators: Running multiple validators improves reliability and ensures message validation continues even if one fails. Learn more about the setup and requirements here.