立即开始
任何人都可以在任何链上部署Hyperlane。 本指南涵盖从新EVM链发送第一条链间信息。在本指南结束时,您将部署并配置好邮箱智能合约和链外代理,从而允许开发人员向您的链发送链间消息或从您的链发送链间消息。
本指南专门用于演示如何将已有Hyperlane的链连接到没有Hyperlane的新链上。
术语表
local chain:是您要部署Hyperlane的新链。
remote chain:是指已部署 Hyperlane 的链,您希望本地链与之收发信息。
概览
本指南共有五个步骤:
- Set up keys 您将使用它来部署合同、运行验证器和中继器。
- Deploy contracts 到本地链以及本地链可以收发信息的所有远程链。
- Run validators and relayer 使用Kurtosis。验证器为您在步骤2中部署的链间安全模块提供所需的签名。中继器将在已部署合约的链之间传递信息。
- Send a test message 以确认中继器能够在每对链之间传递信息
- Deploy a warp route 跨链发送标令牌
立即开始
1. 设置密钥
您必须设置三个密钥并为其提供资金。
首先,您可以通过对所有三个角色使用相同的十六进制密钥来简化。
密钥角色 | 说明 | 资金需求 |
---|---|---|
合约部署者 | 32字节十六进制私钥 | 在我们需要部署合约的所有链上提供资金。 |
验证者账户 | 将对本地链中的出站消息进行签名的验证器地址列表。只需一个验证器就可以快速启动。 | 只需少量,这样验证者就可以通过一次性交易在链上公布他们的签名位置 |
中继器账户 | 您将操作的单个中继器需要在它将发送消息的每个链上都有一个帐户 | 中继器必须在它所传递的所有链上持有余额。 |
有关如何生成密钥的说明,请参阅agent keys 部分。部署程序密钥必须是十六进制密钥,而验证器和中继程序密钥可以是十六进制或AWS KMS。
如果使用 Foundry's Anvil 在本地网络上进行部署,请使用以下命令为新生成的帐户提供资金。 它使用预先注入资金的私钥之一将 1 ETH 转移到“$YOUR_TARGET_ADDRESS”环境变量中的地址。
cast send $YOUR_TARGET_ADDRESS \
--private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \
--value $(cast tw 1)
2. 部署合约
设置好部署器、验证器和中继器密钥后,就可以使用Hyperlane CLI将智能合约部署到本地和远程链上了。
在本地链上,我们将进行部署:
- 核心合约,包括可用于发送和接收信息的Mailbox。
我们在所有链将进行部署:
- 可用于验证来自其他本地和远程链的入站消息的 Multisig ISM。
InterchainGasPaymaster
可用于支付中继器传递链间消息的费用。TestRecipient
我们将向其发送信息,以测试一切工作是否正常。
设置
首先,使用NPM安装Hyperlane CLI。需要Node 16 或以上版本。以下命令将在你的机器上全局安装。请参阅package page了解临时安装或从源代码构建等其他方法。
npm install -g @hyperlane-xyz/cli
接下来,确定本地链和远程链需要哪些自定义链配置。任何已经包含在Hyperlane SDK中的链都不需要链配置(但如果想覆盖默认设置,可以选择使用)。 运行以下命令查看默认SDK链:
hyperlane chains list
您可以按空格键选择链。对于需要自定义配置的链,可以使用JSON或YAML手动定义(请参阅 配置示例),或使用以下命令创建:
hyperlane config create chain
现在CLI将知道如何与所有链进行交互,但它还需要知道如何配置链间安全模块(ISM)。
要创建多个ISM配置,您可以使用JSON或YAML手动定义它,请参阅此处example config here),或使用以下命令创建它:
hyperlane config create ism
在被询问关于多重签名类型时,选择message id ism
。在这个指南的背景下,我们将使用 1/1 多重签名,因此选择一个阈值为 1
,并输入您的密钥地址。