Arbitrum创建ORBIT链简明教程
在本教程结束时,你将拥有一个托管 EVM 兼容智能合约的本地 devnet 链。 你的链将在本地处理交易,同时结算到公共 Arbitrum Goerli 或 Sepolia 测试网。
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK
本教程适用于想要使用 Orbit 链部署门户启动自己的 Arbitrum Orbit 链的开发人员。在本教程结束时,你将拥有一个托管 EVM 兼容智能合约的本地 devnet 链。 你的链将在本地处理交易,同时结算到公共 Arbitrum Goerli 或 Sepolia 测试网。 预计熟悉以太坊、以太坊测试网和 Arbitrum。
如果你正在寻找 Orbit 链的概念性介绍,请参阅 Orbit 链的简要介绍。
1、获取 Arbitrum Testnet $ETH
对于常规 Orbit 链,你至少需要 1 个测试网 $ETH,或者对于具有自定义 Gas 代币的 Orbit 链,你需要 0.6 $ETH 加上 0.4 个你想要的原生代币。 这些资金需要支付将 Orbit 链的基础合约部署到其基础链(Arbitrum Goerli 或 Sepolia)的成本。 我们推荐 Sepolia,因为 Goerli 将在不久的将来被弃用。
在撰写本快速入门时,获取 $ETH 的最简单方法是将测试网 $ETH 从以太坊的 L1 Goerli 或 Sepolia 网络桥接到 Arbitrum 相应的 L2 测试网:
- 使用 goerlifaucet.com 或 sepoliafaucet.com 等 L1 测试网 $ETH 水龙头在 L1 测试网上获取一些测试网 $ETH。
- 使用 Arbitrum 桥将你的 L1 测试网 $ETH 连接到 Arbitrum L2。
2、选择你的链类型:AnyTrust 或 Rollup
Arbitrum Rollup
是一种 Optimistic Rollup 协议; 它是无需信任和无需许可的。 这些属性是通过要求所有链数据都发布在以太坊的“第 1 层”(L1) 链上来实现的。 这意味着这些数据的可用性直接取决于以太坊本身的安全属性,反过来,任何一方都可以参与验证链并确保其安全。
相比之下, Arbitrum AnyTrust
引入了信任假设,以换取较低的费用。 AnyTrust 不要求所有 Arbitrum 节点访问 Arbitrum 链收件箱中每笔 L2 交易的数据,而是依靠外部数据可用性委员会来存储数据并按需提供数据,从而降低批处理和发布所有 L2 交易数据的成本 到 L1。 请访问我们的常见问题解答文档以了解更多信息。
我们通常建议将 Rollup 链用于需要最高安全级别的用例(例如去中心化交易所和其他 DeFi dApp)。 AnyTrust 链适用于需要较低费用并产生大量交易的用例(例如游戏和社交 dApp)。
3、配置 Orbit 链的部署
访问 Orbit 链部署门户。 系统会提示你连接钱包。 系统可能会提示你将 Arbitrum Goerli 或 Arbitrum Sepolia 网络添加到你的钱包和/或将您的钱包切换到该网络; 批准这一请求。
然后,部署门户将显示一个如下所示的表单:
下表提供了每个配置参数的简要说明。 我们建议坚持默认值; 要了解有关自定义 Orbit 链部署配置的更多信息,请访问如何(以及何时)自定义 Orbit 链的部署配置:
参数 | 说明 |
---|---|
链 ID | 代表链网络的唯一整数标识符。 您的 Chain ID 可以提交到 Chainlist.org 等链索引。 对于开发网络,这是为每个部署随机生成的 - 现在不用担心。 |
链名称 | 一种人类可读的方式,用于区分你的 Orbit 链与其他 Orbit 链。 用户、开发者和更广泛的社区将通过你的链名称和/或链 ID 来引用你的链。 |
挑战期(区块) | 在底层 L2 链(Arbitrum Goerli 或 Sepolia)上确认(并最终确定)之前,Orbit 链的节点必须对链的当前状态提出争议的时间量。 请注意,这是指底层 L1 链(以太坊的 Goerli 或 Sepolia 链)上的区块数量。 |
质押代币 | 你的链的验证者必须质押才能参与你的链的代币。 目前它被硬编码为 $ETH,但 Orbit 链的未来版本将允许你在此处指定任意 ERC-20 代币合约。 |
基本权益 | 你的链验证者必须抵押你配置的权益代币数量才能参与你的链。 应大于 0。 |
所有者 | 将部署、拥有和更新你的链的基础合约的管理以太坊地址。 这将默认为你连接的钱包的地址。 这需要是一个标准的以太坊钱包账户 - EOA,而不是合约地址。 请注意,你稍后必须在本地 JSON 文件中指定此钱包的私钥。 |
Gas 代币 | 母链上的 ERC-20 代币地址,旨在用作 Orbit 链上的原生 Gas 代币。 该代币必须已经本地部署在父链上,并在链部署期间桥接至 Orbit 链。 目前仅 AnyTrust 链支持此功能,可以在此处找到有关代币限制的更多信息。 |
4、配置链的验证器
你应该会看到出现“配置验证器”部分,其表单如下所示:
第一个输入字段是一个整数值,用于确定支持初始部署的验证器数量。 后续字段允许您指定每个验证器的地址。
第一个验证者地址是随机生成的,无法更改。 其私钥将自动生成并存储在稍后生成的 JSON 配置文件之一中。
你的链的验证器负责验证交易的完整性并将 Orbit 链当前状态的断言发布到其基础链。 在生产场景中,你的 Orbit 链可能由协同工作的验证器节点网络托管。 对于你的本地 Orbit 链,可以坚持使用自动生成的单个验证器地址。
此步骤中指定的每个验证器地址都将被添加到你的链的基础合约之一的允许列表中,允许它们各自质押和验证提交到您的 Orbit 链的交易。
新术语:当我们说“基础合约”和“基础链”时,我们分别指的是 Orbit 链的 L2 合约和它们部署到的 L2 链。 我们将在本指南的其余部分中使用这些术语。
配置验证器地址后,单击“下一步”继续:批发布者配置。
5、配置链的批发布者
你应该会看到出现“Configure Batch Poster”部分,其表单如下所示:
你的批发布者地址负责将批交易从你的 Orbit 链发布到其基础链上的基础合约。 系统会自动为你生成一个地址; 它的私钥将自动生成并存储在稍后将生成的 JSON 配置文件之一中。
配置批次发布者地址后,单击“下一步”继续:检查并部署你的 Orbit 链。
6、检查并部署你的 Orbit 链
将链的基础合约部署到 Arbitrum Goerli 或 Sepolia
单击位于配置表单下方的“部署”按钮。 您的钱包应该提示您向 Arbitrum 测试网提交交易。 你需要支付一点汽油费; 您的钱包可能以 ETH 计价; 只要您在交易详情中看到您选择的 Arbitrum 测试网,该 Gas 费就会以测试网 $ETH 的形式支付。
在继续之前,我们先简单回顾一下刚刚发生的事情:
- 你向 Arbitrum 测试网(你的本地 Orbit 链将向其结算交易的公共 L2 链)上的 Orbit“工厂”智能合约提交了部署交易。
- 然后,该 Orbit 智能合约使用你在上一步中指定的值初始化 Orbit 链的基础合约,并将这些基础合约部署到 Arbitrum 测试网。
你的 Orbit 链的基础合约负责促进你的链节点与其基础链节点之间的信息交换。 这包括从 Orbit 链到其基础链的批量发布交易、Orbit 链验证器的代币质押、质询机制、桥接机制等。
交易完成后,如果你部署了 AnyTrust 链,接下来会要求你配置密钥集。 否则,请继续执行步骤 8 下载链的配置文件并启动链。
7、配置密钥集(仅限 AnyTrust 链)
不适用于ROLLUP链。如果你要部署 Rollup 链,请跳过此步骤。
为了使 Batch Poster 正常运行,与其当前配置相对应的密钥集在 SequencerInbox 合约中处于活动状态至关重要。 密钥集和密钥集哈希二进制 blob 的生成是强制性的,然后应将其用作 SequencerInbox 合约上 SetValidKeyset 方法的输入。
当前版本的 Orbit AnyTrust 链使用单个数据可用性服务器,并为其私钥分配空值以生成初始密钥集。 作为此交易流程的一部分,你将将此初始密钥集分配给最近生成的 SequencerInbox 合约。
单击“部署摘要”下方的“部署”按钮。 同样,你的钱包应该提示你向 Arbitrum 测试网提交交易。 Gas费的处理方式与之前的交易类似。
交易完成后,你将被引导至下载页面以继续链部署。
8、下载链的配置文件并启动链
你应该看到两个 JSON 代码块出现,标记为 Rollup Config 和 L3 Config。 使用每个代码块右上角的下载按钮将其保存在本地。
- 下载 Rollup JSON:这将生成 nodeConfig.json,其中包含链的节点配置。 请注意,这包括验证者(质押者)和批次发布者的私钥,它们用于签署将 RBlock 和批次发布到 L2 上链的基础合约的交易。
- 下载 L3Config JSON:这将生成 OrbitSetupScriptConfig.json,其中包含您的链的配置,包括支持您的令牌桥合约的配置。
9、克隆安装脚本存储库并添加配置文件
克隆 Orbit-setup-script 存储库:
git clone https://github.com/OffchainLabs/orbit-setup-script.git
将下载的 nodeConfig.json 文件移动到克隆的 Orbit-setup-script 存储库根目录中的 config 目录中。
将下载的 OrbitSetupScriptConfig.json 文件移动到克隆的 Orbit-setup-script 存储库根目录中的 config 目录中。
通过从轨道安装脚本存储库的根运行yarn install来安装依赖项。
10、运行链的节点和区块浏览器
运行 Docker,然后从 Orbit-setup-script 存储库的根目录运行 docker-compose up -d。
Nitro 节点和 BlockScout 浏览器实例将启动。 访问 http://localhost:4000/ 访问你的 BlockScout 浏览器实例 - 这将允许你查看链的交易和区块,这对于调试非常有用。
11、完成链设置
我们提供了一个 Hardhat 脚本来处理以下任务:
- 为底层 L2 链上的批发布者和验证者(质押者)账户提供资金。
- 使用链上新部署的网桥将 ETH 存入你在链上的账户。
- 在 L2 和本地 Orbit 链上部署你的 Token Bridge 合约。
- 配置链上参数。
要运行此脚本,请从 Orbit-setup-script 存储库的根目录发出以下命令,将 OxYourPrivateKey 替换为你用于部署链合约的所有者帐户的私钥,并将 http://localhost:8449 替换为你的链节点的 RPC URL。
使用 Arbitrum Goerli:
PRIVATE_KEY="0xYourPrivateKey" L2_RPC_URL="https://goerli-rollup.arbitrum.io/rpc" L3_RPC_URL="http://localhost:8449" yarn run setup
使用 Sepolia Arbitrum:
PRIVATE_KEY="0xYourPrivateKey" L2_RPC_URL="https://sepolia-rollup.arbitrum.io/rpc" L3_RPC_URL="http://localhost:8449" yarn run setup
12、结束语
恭喜!你的本地 Orbit 链现在正在运行。 你将在脚本文件夹的主目录中看到一个 outputInfo.json 文件 - 其中包含有关你的链的更多信息,包括你的链的基础合约的地址。
原文链接:Quickstart: Launch an Orbit chain
DefiPlot翻译整理,转载请标明出处