# Across中继器教程：如何运行中继器机器人

By [MangoDAO](https://paragraph.com/@mangodao) · 2022-04-22

---

简单的介绍一下如何运行Across中继器机器人，其中也会有一些获利机会。如果你喜欢修补基础设施，或者喜欢运行节点，那么中继器机器人会很适合。

先介绍一下\*\*即时中继器和慢速中继器。\*\*如果机器人的钱包有足够的代币来满足请求，它将自动执行即时中继，如果没有，则运行缓慢的中继。

**即时中继器**

如果机器人有 10,000 USDC 并在 L2 上看到 5,000 USDC 的存款，它将执行即时中继，将 5,000 USDC 发送到 L1 上的接收地址，并从桥接池中索取缓慢和即时的中继费用。

在两个小时的挑战期后，如果中继没有争议，机器人将与桥池结算，收到机器人预付到接收地址的 5,000 USDC 的补偿，外加费用。

**慢速中继器**

如果同一个机器人在 L2 上看到一笔 60,000 USDC 的存款，因为它没有足够的代币来执行即时中继，它将与桥池启动一个慢速中继，并索取慢速中继费用。

如果中继没有争议，这个慢速中继将在两个小时的挑战期后通过向 L1 上的接收地址发送 60,000 USDC 来解决。

但是，中继器可以随时通过具有足够代币的中继器将中继器加速到即时中继器。原来的慢速中继者仍将获得慢速中继费，而加速交易的中继者将获得即时中继费。

**启动机器人**

`insured-bridge-relayer` UMA 协议 monorepo的 [包](https://github.com/UMAprotocol/protocol/tree/master/packages/insured-bridge-relayer)中有一个中继器机器人实现。设置一些配置选项后，您可以在本地或云端运行此机器人。

1.  1 .`git pullmaster`[UMA 协议 monorepo](https://github.com/UMAprotocol/protocol)分支的最新版本。
    
2.  2 .在 repo 的根目录下，运行`yarn clean && yarn && yarn qbuild`安装包并进行一些设置，包括编译合约和加载合约地址。
    
3.  3 .转到`insured-bridge-relayer`包中`./packages/insured-bridge-relayer`
    
4.  4 .设置环境变量。
    
5.  5 .跑`node ./dist/src/index.js --network mainnet_mnemonic`
    

请记住，与助记符相关的地址必须有 ETH 来支付 L1 上的 gas 以及它计划中继的一定数量的代币。

可用于中继的令牌包含在`IS_RELAY_VALID` [UMIP](https://github.com/UMAprotocol/UMIPs/blob/master/UMIPs/umip-136.md#data-specifications-and-implementation)的规范中。

**云托管和其他选项**

[运行 Optimistic Oracle 和 EMP 机器人的说明](https://docs.umaproject.org/developers/bots)对于设置本地或云环境以运行中继器机器人也很有用。

本技术教程介绍了在命令行上本地运行机器人、使用 Docker 或在生产中使用 Google Cloud Computer。甚至还有关于 Slack 集成的提示！

**环境变量**

你需要为你的中继器机器人定义一些环境变量。

`CHAIN_IDS`是一组用于监视存款的 L2 链 ID。目前支持的链是 Arbitrum、Boba 和 Optimism，因此值应该是`[42161,288,10]`.

`CUSTOM_NODE_URL`是您的以太坊节点的 URL。

`BRIDGE_ADMIN_ADDRESS`是 L1 上的网桥管理地址，当前`0x30B44C676A05F1264d1dE9cC31dB5F2A945186b6`.

`RATE_MODEL_ADDRESS`是当前费率模型智能合约的地址`0xd18fFeb5fdd1F2e122251eA7Bf357D8Af0B60B50`。

`MNEMONIC`是中继器机器人钱包地址的助记符。该地址在启动时必须有一些 ETH，因为它的第一个动作将是批准中继器将使用的所有令牌。要实际执行中继，它还需要一些计划中继的代币。

`RELAYER_ENABLEDtrue`如果和 可以设置为`true`或，则触发继电器`false`。如果要运行中继器，默认值是`false`并且应该设置为。`true`

`RELAYER_DISCOUNT`设置中继器愿意给予中继器相对于实际气体成本的百分比折扣。一个好的初始值是`50`确保您在打开机器人时不会立即拒绝中继。您可以将该值设置`0`为不提供折扣，但这将拒绝大多数继电器，除非捆绑了多个继电器。该值可以根据您的盈利能力偏好随着时间的推移进行调整。

`SETTLER_ENABLEDtrue`如果和 可以设置为`true`或，则设置继电器`false`。如果要运行终结器，则默认值是`false`并且应该设置为。`true`

`DISPUTER_ENABLEDtrue`如果和 可以设置为`true`或，则对无效中继提出异议`false`。如果要运行争议器，则默认值是`false`并且应该设置为。`true`

`L2_FINALIZER_ENABLEDtrue`如果并且可以设置为`true`或，则将资金从 L2 存款箱转移到 L1 桥接池`false`。如果要运行跨域终结器，则默认值是`false`并且应该设置为。`true`

`L1_FINALIZER_ENABLED`如果设置为 . 则让机器人完成 L1 中继`true`。

### 可选的环境变量

以下环境变量具有默认值，无需用户设置。

`L2_BLOCK_LOOKBACK`为 L2 网络上的存款设置回顾窗口。`9900`如果您使用免费的公共节点（如 mainnet.optimism.io 或 arb1.arbitrum.io/rpc），则符合回溯限制是一个很好的价值。`99999`如果未设置，则为默认值。

`RETRY_CONFIG_10`是一个对象，指定 Optimism 节点 URI 和机器人应尝试连接到该节点的重试次数。

`RETRY_CONFIG_42161`是一个指定 Arbitrum 节点 URI 和机器人应尝试连接到该节点的重试次数的对象。

`RETRY_CONFIG_288`是一个指定 Boba 节点 URI 和机器人应尝试连接到该节点的重试次数的对象。

**手动中继器**

可以手动提交中继，但由于第一个要求存款的中继者会获得中继费用，因此旨在监视 L2 上的存款并在 L1 上执行中继的机器人预计会更快，并最终负责大多数继电器。

提交手动中继的一个原因是，如果您想在 L1 上中继自己的存款并且愿意等待两个小时进行结算。您可以使用脚本从命令行执行此操作。`protocol/packages/scripts/src/ManualRelay`

[https://github.com/UMAprotocol/protocol/blob/master/packages/scripts/src/ManualRelay.js](https://github.com/UMAprotocol/protocol/blob/master/packages/scripts/src/ManualRelay.js)

这是如何运行中继器机器人的简单介绍。这里有官方的[文档](https://docs.across.to/bridge/developers/how-to-relay#cloud-hosting-and-other-options)和[视频](https://www.youtube.com/watch?v=iNReBvT2zMU)。说的很详细，有疑问更是可以进Across的[discord](https://discord.gg/VS7AJaqE)进行提问。

---

*Originally published on [MangoDAO](https://paragraph.com/@mangodao/across)*
