Skip to content
This repository was archived by the owner on Mar 21, 2025. It is now read-only.

Commit 057ec10

Browse files
Trevor Portergitbook-bot
Trevor Porter
authored andcommitted
GITBOOK-187: Some nits
1 parent 4c467e7 commit 057ec10

13 files changed

+30
-35
lines changed

deploy/deploy-hyperlane/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ At a high level, deploying Hyperlane requires the following actions:
2121
1. Setting up the [keys.md](keys.md "mention") you will use to deploy contracts and run validators and relayers
2222
2. Deploying Hyperlane contracts to the local chain and to every remote chain with which the local chain will be able to send and receive messages.
2323
3. Running one or more [validators.md](../../protocol/agents/validators.md "mention") for the new chain, to provide security for outgoing messages
24-
4. Running [relayer.md](../../protocol/agents/relayer.md "mention") for the local chain and every remote chain which which the local chain will be able to send and receive messages.
24+
4. Running [relayer.md](../../protocol/agents/relayer.md "mention") for the local chain and every remote chain with which the local chain will be able to send and receive messages.
2525
5. Testing that messages can be sent from the local chain to each of the remote chains, and vice versa. 

deploy/deploy-hyperlane/deploy-contracts.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export const chains: ChainMap<ChainMetadata> = {
4646
};
4747
```
4848

49-
Finally, add the `MultisigIsmConfig` entry for your local chaina to `hyperlane-deploy/config/multisig_ism.ts`. An example with a single validator has been populated for you for `anvil`.
49+
Finally, add the `MultisigIsmConfig` entry for your local chain to `hyperlane-deploy/config/multisig_ism.ts`. An example with a single validator has been populated for you for `anvil`.
5050

5151
```typescript
5252
export const multisigIsmConfig: ChainMap<MultisigIsmConfig> = {

operators/agent-configuration.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Mounting an entire directory can be done with the flag `--mount source=$LOCAL_CO
3434
For example, suppose you have a config file at your local machine's path `/home/workspace/ethereum.json` and want to run the validator with it.
3535

3636
{% code title="Example" overflow="wrap" %}
37-
```
37+
```sh
3838
docker run -it --mount type=bind,source=/home/workspace/ethereum.json,target=/config/ethereum.json,readonly -e CONFIG_FILES=/config/ethereum.json $DOCKER_IMAGE ./validator
3939
```
4040
{% endcode %}

operators/agent-keys/hexadecimal-key-setup.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ description: Generating a raw hexadecimal key
77
Using hexadecimal keys is the easiest and fastest way to configure Hyperlane agents.
88

99
{% hint style="warning" %}
10-
Hexadecimal keys are not recommended for production environments, for which [aws-setup.md](aws-setup.md "mention") are recommended.,&#x20;
10+
Hexadecimal keys are not recommended for production environments, for which [aws-setup.md](aws-setup.md "mention") are recommended.
1111
{% endhint %}
1212

1313
### Generate a hexadecimal key&#x20;

operators/relayers/README.md

+5-10
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ description: Everything you need to start running a relayer
44

55
# Relayers
66

7-
Hyperlane [relayers](../../../protocol/agents/relayer.md) deliver interchain messages to their recipients.
7+
Hyperlane [relayers](../../protocol/agents/relayer.md) deliver interchain messages to their recipients.
88

9-
Every Hyperlane message requires two transactions to be delivered, one on the origin chain to [dispatch](../../../apis/messaging-api/send.md) the message, and one on the destination chain to [process](../../../apis/messaging-api/receive.md) the messages. Relayers are responsible for sending the second transaction.
9+
Every Hyperlane message requires two transactions to be delivered, one on the origin chain to [dispatch](../../apis/messaging-api/send.md) the message, and one on the destination chain to [process](../../apis/messaging-api/receive.md) the messages. Relayers are responsible for sending the second transaction.
1010

11-
<!-- INCLUDE diagrams/interchain-gas.md -->
12-
<!-- WARNING: copied from the included file path. Do not edit directly. -->
1311
```mermaid
1412
%%{ init: {
1513
"theme": "neutral",
@@ -46,23 +44,20 @@ flowchart TB
4644
click IGP https://github.com/hyperlane-xyz/hyperlane-monorepo/blob/main/solidity/contracts/igps/InterchainGasPaymaster.sol
4745
```
4846

49-
<!-- WARNING: copied from the included file path. Do not edit directly. -->
50-
<!-- END -->
51-
5247
Hyperlane relayers are run on a per-origin-chain basis, delivering outbound messages from that chain to one or more remote chains. Relayers have no special permissions in Hyperlane. If relayer keys are compromised, only the tokens held by those keys are at risk.
5348

5449
Running a relayer requires the following:
5550

5651
#### RPC nodes
5752

58-
Relayers use RPC nodes to read the origin chain, and deliver messages to the destination chain(s). Relayers must be configured with an RPC node for the origin chain, and each destination chain.&#x20;
53+
Relayers use RPC nodes to read the origin chain, and deliver messages to the destination chain(s). Relayers must be configured with an RPC node for the origin chain, and each destination chain.
5954

6055
#### One or more signing keys
6156

6257
In order to deliver messages, relayers must be configured with a signing key for each destination chain.
6358

64-
The relayer uses this key to sign `Mailbox.process()` transactions. The Hyperlane relayer agent currently supports configuration with raw private keys.
59+
The relayer uses this key to sign `Mailbox.process()` transactions. The Hyperlane relayer agent currently supports configuration with AWS KMS keys that are accessed via API keys/secrets or raw hexadecimal private keys.
6560

6661
#### A machine to run on
6762

68-
Relayers can compile the rust binary themselves, or run a docker image provided by Abacus Works. The binary can be run using your favorite cloud service.
63+
Relayers can compile the Rust binary themselves, or run a Docker image provided by Abacus Works. The binary can be run using your favorite cloud service.

operators/relayers/message-filtering.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,6 @@ For example, the following config used as a whitelist will ensure the relayer wi
4949
]
5050
```
5151

52-
As a string, a valid config may look like `HYP_RELAYER_WHITELIST='[{"senderAddress":"","destinationDomain":["1"],"recipientAddress":""},{"senderAddress":"0xca7f632e91B592178D83A70B404f398c0a51581F","destinationDomain":["42220","43114"],"recipientAddress":""},{"senderAddress":"","destinationDomain":["42161","420"],"recipientAddress":"0xca7f632e91B592178D83A70B404f398c0a51581F"}]'`
52+
As a string, a valid config may look like `HYP_RELAYER_WHITELIST='[{"senderAddress":"*","destinationDomain":["1"],"recipientAddress":"*"},{"senderAddress":"0xca7f632e91B592178D83A70B404f398c0a51581F","destinationDomain":["42220","43114"],"recipientAddress":"*"},{"senderAddress":"*","destinationDomain":["42161","420"],"recipientAddress":"0xca7f632e91B592178D83A70B404f398c0a51581F"}]'`
5353

5454
The blacklist supersedes the whitelist, i.e. if a message matches both the whitelist _and_ the blacklist, it will not be delivered.

operators/relayers/setup.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Required setup instructions
44

55
# Setup
66

7-
The relayer is responsible for delivering messages to their destination chains. This involves being able to submit transactions to many destination chains, and therefore requires access to a key for signing transaction. There are two supported key types: hexadecimal private keys (for in-memory signing), and AWS KMS based keys (best practice for production environments).
7+
The relayer is responsible for delivering messages to their destination chains. This involves being able to submit transactions to many destination chains, and therefore requires access to a key for signing transactions. There are two supported key types: hexadecimal private keys (for in-memory signing), and AWS KMS based keys (best practice for production environments).
88

99
## Hexadecimal keys
1010

operators/validators/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ The Hyperlane validator agent currently supports signing with AWS KMS keys that
8383

8484
Validators write their signatures off-chain to publicly accessible, highly available, storage, so that they can be aggregated by [relayers](../../protocol/agents/relayer.md).
8585

86-
The Hyperlane validator agent currently supports storing signatures on AWS S3 using the same AWS API key above.
86+
The Hyperlane validator agent currently supports storing signatures on AWS S3 using the same AWS API key above, as well as storing signatures in the local filesystem for testing.
8787

8888
#### A machine to run on
8989

90-
Validators can compile the rust binary themselves, or run a docker image provided by Abacus Works. The binary is completely stateless and can be run using your favorite cloud service. You can even run multiple instances of them in different regions for high availability, as Hyperlane has no notion of "double signing".
90+
Validators can compile the Rust binary themselves, or run a Docker image provided by Abacus Works. The binary is completely stateless and can be run using your favorite cloud service. You can even run multiple instances of them in different regions for high availability, as Hyperlane has no notion of "double signing".

operators/validators/announcing-your-validator.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Now you can submit your signed announcement to the `ValidatorAnnounce` smart con
7070

7171
{% tab title="Cast" %}
7272
1. Announce your validator by running the following command, filling in the following variables:
73-
1. Set `$VALIDATOR_ANNOUNCE_ADDRESS` to the address of the `ValidatorAnnounce` contract: [addresses.md](../../resources/addresses.md "mention")
73+
1. Set `$VALIDATOR_ANNOUNCE_ADDRESS` to the address of the `ValidatorAnnounce` contract for your origin chain. You can find addresses for existing deployments here: [addresses.md](../../resources/addresses.md "mention")
7474
2. Set `$VALIDATOR` to `value.validator` from your JSON announcement
7575
3. Set `$STORAGE_LOCATION` to `value.storage_location` from your JSON announcement
7676
4. Set `$SIGNATURE` to the `serialized_signature` from your JSON announcement.

operators/validators/environment-variables.md

+13-13
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,28 @@ description: Configure your validator
44

55
# Environment variables
66

7-
Make sure that you have completed [local-setup.md](setup/local-setup.md "mention") or [aws-setup.md](setup/aws-setup.md "mention")
7+
Make sure that you have completed [local-setup.md](setup/local-setup.md "mention") or [aws-setup.md](setup/aws-setup.md "mention").
88

99
Also take a look at the [agent-configuration.md](../agent-configuration.md "mention") page.
1010

1111
### Environment variables
1212

1313
Your validator takes environment variables as configuration. See below for these environment variables & those that are specific to the setup instructions you followed.
1414

15-
| Environment variable | Description |
16-
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17-
| `CONFIG_FILES` | If you want support your own chain that you [permissionlessly deployed](broken-reference), you specify the path to that agent config file here as well. |
18-
| `HYP_VALIDATOR_ORIGINCHAINNAME` | The name of the chain being validated (e.g. `ethereum`) |
19-
| `HYP_VALIDATOR_REORGPERIOD` | <p>The number of block confirmations a validator should wait before signing the <code>Mailbox</code> merkle root. Note that signing a root that is later invalidated (i.e. due to a re-org) is considered fraudulent behavior and will eventually be slashable.</p><p>Suggestions <a href="environment-variables.md#suggested-reorg-periods">below</a>.</p> |
20-
| `HYP_VALIDATOR_INTERVAL` | <p>In seconds, the frequency with which the validator should poll the <code>Mailbox</code> merkle root.</p><p>Suggestions <a href="environment-variables.md#suggested-reorg-periods">below</a>.</p> |
21-
| `HYP_BASE_CHAINS_[origin chain name]_CONNECTION_URL` | <p>The RPC URL of the node for the chain you are validating. Note Polygon mainnet requires an RPC URL of an archive node (see <a data-mention href="./#an-rpc-node">#an-rpc-node</a>for details).<br>e.g. <code>HYP_BASE_CHAINS_ETHEREUM_CONNECTION_URL</code> or <code>HYP_BASE_CHAINS_POLYGON_CONNECTION_URL</code></p> |
22-
| `HYP_BASE_METRICS` | Set to `9090`, or any other port number you wish to expose Prometheus metrics on. Not specifying a value will result in metrics not being exposed. |
23-
| `HYP_BASE_TRACING_LEVEL` | Specifies the log level, set to `info` |
24-
| `HYP_BASE_TRACING_FMT` | Specifies the format of the logs, set it to either `pretty` or `json` |
15+
| Environment variable | Description |
16+
| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17+
| `CONFIG_FILES` | <p>If you want support your own chain that you <a href="broken-reference">permissionlessly deployed</a>, you specify the path to that agent config file here as well.<br>Note these files must be accessible within the filesystem your validator has access to. If you're running in Docker, see <a data-mention href="../agent-configuration.md#config-files-with-docker">#config-files-with-docker</a> for tips on mounting your config files into your Docker container.</p> |
18+
| `HYP_VALIDATOR_ORIGINCHAINNAME` | The name of the chain being validated (e.g. `ethereum`) |
19+
| `HYP_VALIDATOR_REORGPERIOD` | <p>The number of block confirmations a validator should wait before signing the <code>Mailbox</code> merkle root. Note that signing a root that is later invalidated (i.e. due to a re-org) is considered fraudulent behavior and will eventually be slashable.</p><p>Suggestions <a href="environment-variables.md#suggested-reorg-periods">below</a>.</p> |
20+
| `HYP_VALIDATOR_INTERVAL` | <p>In seconds, the frequency with which the validator should poll the <code>Mailbox</code> merkle root.</p><p>Suggestions <a href="environment-variables.md#suggested-reorg-periods">below</a>.</p> |
21+
| `HYP_BASE_CHAINS_[origin chain name]_CONNECTION_URL` | <p>The RPC URL of the node for the chain you are validating. Note Polygon mainnet requires an RPC URL of an archive node (see <a data-mention href="./#an-rpc-node">#an-rpc-node</a>for details).<br>e.g. <code>HYP_BASE_CHAINS_ETHEREUM_CONNECTION_URL</code> or <code>HYP_BASE_CHAINS_POLYGON_CONNECTION_URL</code></p> |
22+
| `HYP_BASE_METRICS` | Set to `9090`, or any other port number you wish to expose Prometheus metrics on. Not specifying a value will result in metrics not being exposed. |
23+
| `HYP_BASE_TRACING_LEVEL` | Specifies the log level, set to `info` |
24+
| `HYP_BASE_TRACING_FMT` | Specifies the format of the logs, set it to either `pretty` or `json` |
2525

2626
#### Setup-specific environment variables
2727

28-
These **required** environment variables differ based on which [setup](setup/) instructions you followed.
28+
These **required** environment variables differ based on which [setup](setup/ "mention") instructions you followed.
2929

3030
{% tabs %}
3131
{% tab title="AWS setup" %}
@@ -63,7 +63,7 @@ These are required environment variables that are specific to the [local-setup.m
6363

6464
### Next
6565

66-
Next, in the [Start validating](start-validating.md) section we will get the validator up and running.
66+
Next, in the [start-validating.md](start-validating.md "mention") section we will get the validator up and running.
6767

6868
{% content-ref url="start-validating.md" %}
6969
[start-validating.md](start-validating.md)

0 commit comments

Comments
 (0)