Skip to main content

立即开始

任何人都可以在任何链上部署Hyperlane。 本指南涵盖从新EVM链发送第一条链间信息。在本指南结束时,您将部署并配置好邮箱智能合约和链外代理,从而允许开发人员向您的链发送链间消息或从您的链发送链间消息。

note

本指南专门用于演示如何将已有Hyperlane的链连接到没有Hyperlane的新链上。

术语表

local chain:是您要部署Hyperlane的新链。

remote chain:是指已部署 Hyperlane 的链,您希望本地链与之收发信息。

概览

本指南共有五个步骤:

  1. Set up keys 您将使用它来部署合同、运行验证器和中继器。
  2. Deploy contracts 到本地链以及本地链可以收发信息的所有远程链。
  3. Run validators and relayer 使用Kurtosis。验证器为您在步骤2中部署的链间安全模块提供所需的签名。中继器将在已部署合约的链之间传递信息。
  4. Send a test message 以确认中继器能够在每对链之间传递信息
  5. Deploy a warp route 跨链发送标令牌

立即开始

1. 设置密钥

您必须设置三个密钥并为其提供资金。

tip

首先,您可以通过对所有三个角色使用相同的十六进制密钥来简化。

密钥角色说明资金需求
合约部署者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,并输入您的密钥地址。

部署

现在我们准备使用deploy core命令部署Hyperlane合约。为了支付交易费用,该命令将需要来自步骤1的合约部署者密钥,可以通过HYP_KEY环境变量或作为命令参数提供。

hyperlane deploy core \
--targets chain1,chain2,... \ # all the chains you want to bridge between
--chains $CHAIN_CONFIG_FILE \ # path to chains.yaml config e.g. ./configs/chains.yaml
--ism $MULTISIG_CONFIG_FILE \ # path to ism.yaml config e.g. ./configs/ism.yaml
--artifacts $PREDEPLOYED_ARTIFACT_FILE \ # (optional) in case you want to reuse contracts you've already predeployed
--out $OUT_DIR \ # (optional) deployment contract artifacts
--key $YOUR_DEPLOYER_PRIVATE_KEY

验证

部署合同构件默认将写入artifacts/文件夹。部署程序将创建两个带时间戳的文件,即agent-config-{timestamp}.jsoncore-deployment-{timestamp}.json core-deployment 文件包含按链排列的核心合约地址。 agent-config 文件包含下一步运行Hyperlane代理所需的数据。

3. 运行验证器和中继器

note

本节介绍如何使用第三方一键部署代理。要自行运行Hyperlane代理二进制文件,请查看Local Agents guide

我们与 Kurtosis 合作,在云中提供一键式验证器和中继器部署方案。您将获得一个月的试用,在此期间,您的验证器和中继器将在Kurtosis Cloud中免费运行。试用结束后,您需要自行运行验证器和中继器,或者购买 Kurtosis Cloud 订阅。

要开始使用,请使用 deploy kurtosis-agents 命令生成一个链接,用于配置 Kurtosis 部署。

hyperlane deploy kurtosis-agents

按照提示操作,然后点击命令输出的Kurtosis Cloud链接。

如果这是您第一次使用Kurtosis Cloud,您需要使用Google登录,Kurtosis会在大约2分钟内为您的验证器和中继器提供一个远程云实例。

Get excited

将弹出一个预填配置表单,其中包含步骤1和2中的所有中继器和验证器信息。

note

如果您在通过CLI 在 Kurtosis Cloud上部署代理时遇到问题,可以通过以下方式手动输入此信息:

  1. 登录 Kurtosis Cloud
  2. 点击Hyperlane Package上的"run"。
  3. 填写配置模块。

最后一步是输入步骤2中的Validator Key。下面的截图显示了一个预填充配置示例。

warning

Kurtosis 团队仍在构建Kurtosis Cloud的保密功能,因此目前请勿在Kurtosis中输入任何敏感信息(例如您的私钥)!只能使用测试值和非敏感值。

Example Configuration One

Example Configuration Two

单击 "run"部署中继器和验证器!

配置成功执行后,您将看到一个绿色的"running"标记。恭喜您,您现在已经使用 Kurtosis 部署了自己的中继器和验证器!

Success

通过导航到 Overview选项卡,可以查看中继器和验证器部署的相关信息,包括日志。

Enclave Overview

Validator Logs

有关Kurtosis的问题,请提交Kurtosis Github repository。如有问题或讨论,请使用 Github Discussions section of the Kurtosis repository或访问 the Kurtosis Discord server

info

Kurtosis提供一个月的Kurtosis Cloud免费试用期,用于运行您的中继器和验证器,但试用期结束后,您需要添加付款方式才能继续运行您的Hyperlane。查看订阅价格此处和支付方式信息此处

4. 发送测试信息

您可以在成对的链之间发送测试消息,检查一切工作是否正常。 使用CLI启动信息。它会要求提供一组要使用的核心部署构件。选择步骤2中的core-deploymentsJSON 文件。

hyperlane send message --key $PRIVATE_KEY

send message命令会在发送信息时通知您。短暂等待后,系统将显示发送确认。如果信息发送超时,很可能是上述步骤中的验证器或中继器设置出现了问题。要排除故障,请查看起源链中继器日志。如果您需要进一步帮助,请联系 Discord

5. (可选) 部署一个Warp Route

一旦消息被传送,您可以选择部署一个Warp Route。Warp 是一个工具包,用于在任何链之间无需许可的桥接代币。路由可以使用本地货币(如 Eth)或 ERC20 代币(如 USDC)。

首先,创建一个新的路由配置:

hyperlane config create warp

接下来,就可以部署路由了。与之前一样,CLI 会提示您提供核心部署构件文件:

hyperlane deploy warp --key $PRIVATE_KEY

完成后,CLI将创建两个新的JSON工件文件:warp-deployment-{timestamp}. jsonwarp-config-{timestamp}。第一个只包含新部署的Warp路由器合约的地址。第二个文件是用于Warp UI的配置文件,您可以将其用于下一个可选步骤。

tip

请参阅详细的Deploy Warp Guide了解更多基本概念以及如何设置Warp路由以传输令牌。

部署 Warp UI

Warp UI是一个用于与Warp路由交互的DApp模板。你可以克隆Warp UI仓库并按照CUSTOMIZE. md的说明操作来配置和一个新的实例。简而言之,使用chains. yamlwarp-config. json 文件来为UI提供所需的信息。请参阅[Deploy Warp UI guide](/docs/guides/ Deploy - Warp -route-UI)了解详细步骤。