Run an attestor in its own process, separate from any relayer, so a relayer can query it and count its signatures toward a light client’s quorum.
This guide runs an attestor as its own process, serving one chain. A relayer can then query it and count its signatures toward a light client’s quorum.
Create a second configuration file alongside the tutorial’s:
./bin/ibc config new --config ibc-attestor-41002.yml
It shares the tutorial’s keystore, so the attestor key generated there is already available. That key’s address matches the one in the client’s attestation set.
Use separate keys for independent clients and chains. Signatures are not bound to a chain, router, or verifying client.
This guide names each attestor attestor-<chain it watches>. Names must be unique within the serving process.
Warning: The attestor’s name has to match the name the relayer uses for it. A relayer sends that name in every query, and the process serves its attestors by name, so a mismatch makes every lookup fail.
A finality offset of 1 signs one block behind the chain head. Zero waits for the chain’s own finalized block instead.
If the attestor is served behind TLS, write its address as https://host, which uses port 443 unless you add one, and add a tls block for a private CA or mTLS, as described in TLS for remote services.