# @confio/relayer 中文文档

规范地址：https://npmcn.com/package/%40confio/relayer/

版本：0\.12\.0
npm 元数据更新时间：2024-03-07T23:29:27.402Z
中文译文更新时间：2026-11-10T15:32:03.363Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40confio/relayer
原文对照：https://npmcn.com/package/%40confio/relayer/?lang=original
项目主页：https://github.com/confio/ts-relayer#readme
源码仓库：https://github.com/confio/ts-relayer

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：451 kB，96 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：20 个
- 首次发布：2021-03-16T13:32:10.332Z
- 最新版本发布：2024-03-07T23:29:26.917Z
- 近 30 天下载量：6340（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：105（近 12 个月 0 个）

## 中文简介

类型脚本中的 IBC 重置器

## 安装

```sh
npm install @confio/relayer
```

也可以使用：`pnpm add @confio/relayer`、`yarn add @confio/relayer`、`bun add @confio/relayer`

## README

# 更新

[![npm version](https://img.shields.io/npm/v/@confio/relayer.svg)](https://www.npmjs.com/package/@confio/relayer)

类型脚本执行 [中型散货箱](https://www.ibcprotocol.dev/) 复更相续.

为了了解它能做什么,请 [检查我们的特性矩阵](https://npmcn.com/package/%40confio/relayer/FEATURES.md)

你也会读 [我们的规格页面](https://npmcn.com/package/%40confio/relayer/spec/index.md),这解释了如何 中继器起作用了 但"快起步"或许能提供更好的介绍.

这种回波主要用作节点二进制来进行IBC接力. 但是,所有的逻辑是 可在库中找到,可在浏览器或节点中同样运行. 您可以看到将中继器嵌入到 [下面的网络应用](https://npmcn.com/package/%40confio/relayer/#readme-Web-App)。 。 。 .

## 所需资源

-   [节点.js](https://nodejs.org/) 18岁或以后
-   兼容、中型散货箱驱动链上两个完整节点的RPC地址
-   见 [下项连锁要求](https://npmcn.com/package/%40confio/relayer/#readme-Chain-Requirements) 详细介绍所支持的链条

## 重要说明

版本直到 `v0.1.6` 支持宇宙 SDK `v0.41.1+`。 。 。 . 从 `v0.2.0` 我们要求招标 `v0.34.9+` (用于 SDK ) `v0.42.4+`) (中文(简体) ). 如果您正在连接到 v0. 41 链, 请使用 `v0.1.x` 中继器.

与 `v0.2.0` 在 BeginBlock 和 EndBlock 中添加对中继包的支持。 然而,这需要 招标薄荷中不可用的额外的 rpc 端点 `v0.41.1`因此,我们增加 sDK最小相容版本.

## 安装

### 国家预防机制

安装 [最新发布](https://github.com/confio/ts-relayer/releases/latest)。 。 。 .

```sh
npm i -g @confio/relayer
```

或者从中安装 `main` 树枝.

```sh
npm i -g @confio/relayer@main
```

> **注:** 我们在完成一个预设的里程碑后,或者当它觉得正确时,做一个人工发布. 没有发布时间表 _现在_为了利用最新变化,使用 `main` 安装时标记.

## 使用量

安装后, `ibc-setup` 财务报告和审定财务报表 `ibc-relayer` 可执行文件.

### ibc 设置

收集命令以快速设置中继器并查询IBC/chain数据.

-   运行 `ibc-setup --help` 要打印用法
-   [ibc 设置光谱](https://npmcn.com/package/%40confio/relayer/spec/ibc-setup.md)

### ibc 重排器

读取配置并开始转发包.

-   运行 `ibc-relayer --help` 要打印用法
-   [ibc 重排光谱](https://npmcn.com/package/%40confio/relayer/spec/ibc-relayer.md)

## 快开始

### 配置并启动中继器

1.  输入配置
    
    ```sh
    ibc-setup init --src malaga --dest uni
    ```
    
    -   创建中继器主目录 `~/.ibc-setup`
    -   创建 `app.yaml` 内继器的家与 `src`, (中文(简体) ), `dest` 和新生成的 `mnemonic`
    -   拖动默认值 `registry.yaml` 到中继器的家
    -   基金余额 `malaga` 所以中继器可以在中继包时支付费用
    
    > **注:** 两个测试网都在公众中运行. 您不需要在当地启动任何块链来完成快速启动指南 .
    
    > **注:** 运行 `ibc-setup balances` 可以看到每个地址上的符号数量.
    
2.  获取测试网符号 `uni`
    
    -   通过: `ibc-setup keys list | grep uni`
    -   加入朱诺不和 [此邀请链接](https://discord.gg/NbB8zCPX)
    -   转到 `faucet` 频道
    -   在上述频道中请求此地址的令牌 : `$request iaa1fxmqew9dgg44jdf3l34zwa8rx7tcf42wz8ehjk`
    -   请检查access-date=中的日期值 (帮助) `ibc-setup balances`
    
    见 [原始说明](https://docs.junonetwork.io/validators/joining-the-testnets#get-some-testnet-tokens)
    
3.  创建 `ics20` 频道
    
    ```sh
    ibc-setup ics20 -v
    ```
    
    -   在源代码和去除链上创建新连接
    -   将连接 id 保存到 `app.yaml` 文件
    -   创建新频道
4.  在动词模式和10s频率投票中启动中继器
    
    ```sh
    ibc-relayer start -v --poll 15
    ```
    

### 链条之间发送符号

1.  确保 `wasmd` 二进制已安装在您的系统中
    
    -   您必须在 amd64 上运行 Linux 或 OSX( 不是 arm64/ Mac M1)
    -   [安装 Go 1.17+](https://golang.org/doc/install) 并确保 `$PATH` 包含 去二进制( 您可能需要重新启动您的终端会话)
    -   复制和安装 `wasmd`数字 :
        
        ```sh
        git clone https://github.com/CosmWasm/wasmd.git
        cd wasmd
        git checkout v0.27.0
        make install
        ```
        
2.  确保 `juno` 二进制已安装在您的系统中
    
    -   您必须在 amd64 上运行 Linux 或 OSX
    -   [安装 Go 1.17+](https://golang.org/doc/install) 并确保 `$PATH` 包含 去二进制( 您可能需要重新启动您的终端会话)
    -   复制和安装 `juno`数字 :
        
        ```sh
        git clone https://github.com/CosmosContracts/juno
        cd juno
        git checkout v6.0.0
        make install
        ```
        
3.  创建新账户并为其提供资金
    
    ```sh
    wasmd keys add sender
    JSON=$(jq -n --arg addr $(wasmd keys show -a sender) '{"denom":"usponge","address":$addr}')
    curl -X POST --header "Content-Type: application/json" --data "$JSON" https://faucet.malaga.cosmwasm.com/credit
    ```
    
4.  创建有效的 IRISnet 地址以发送令牌到
    
    ```sh
    junod keys add receiver
    ```
    
    [获取测试网符号](https://docs.junonetwork.io/validators/joining-the-testnets#get-some-testnet-tokens) 如果您想要向 `malaga`。 。 。 .
    
5.  发送令牌
    
    ```sh
    wasmd tx ibc-transfer transfer transfer <channel-id> $(junod keys show -a receiver) 200usponge --from $(wasmd keys show -a sender) --node http://rpc.malaga.cosmwasm.com:80 --chain-id malaga-1 --fees 2000usponge --packet-timeout-height 0-0
    ```
    
    -   替换 `<channel-id>` 在配置中继器( 第2分)时获得的频道 id
    -   如果您清除终端, 请查询频道
        
        ```sh
        ibc-setup channels --chain malaga
        ```
        
6.  监视中继器输出
    

## 配置概况

中继器配置被存储在中继器的主目录下. 默认它位于 `$HOME/.ibc-setup`不过,可以按客户定制 `home` 选项,例如:

```sh
# initialize the configuration at /home/user/relayer_custom_home
ibc-setup init --home /home/user/relayer_custom_home

# read the configuration from /home/user/relayer_custom_home
ibc-relayer start --home /home/user/relayer_custom_home
```

有3个文件住在中继器的家里.

-   **登记册.yaml** (必须)
    
    包含有相应信息的可用链条列表。 登记册的链条可通过下列方式查询: `ibc-setup` 二进制或内部 `app.yaml` 文档. [查看登记的例子。 雅姆尔文件.](https://npmcn.com/package/%40confio/relayer/demo/registry.yaml)
    
-   **app.yaml (英语)** (可选)
    
    持有源链或目的地链等针对中继器的选项. 这些选项可以被CLI旗或环境变量所压倒.
    
-   **最后- queried- higves.json (英语)** (可选)
    
    存储器在中继器启动时最后一次询问更高性能 。 中继器运行时不断被以新的高度覆盖. 只需删除此文件来扫描事件, 永远.
    

[更多地学习配置.](https://npmcn.com/package/%40confio/relayer/spec/config.md)

## 监测

中继器收集各种度量器为 a [普罗米修斯](https://prometheus.io/docs/introduction/overview/) 实例可以消耗.

为了能够收集指标,请通过 `--enable-metrics` 启动中继器时的旗帜 :

```sh
ibc-relayer start --enable-metrics
```

> **注:** 通过环境变量也可以启用计量 `RELAYER_ENABLE_METRICS=true`,或带有 `enableMetrics: true` 条目 `app.yaml` 文档,如 [配置规格](https://npmcn.com/package/%40confio/relayer/spec/config.md#configuration)。 。 。 .

这个 `GET /metrics` 端点默认会在端口被曝光 `8080`,您可以使用 `--metrics-port` 旗帜, `RELAYER_METRICS_PORT` env 变量,或 `metricsPort` 输入 `app.yaml`。 。 。 .

### 本地设置

#### 普罗米修斯

1.  用启用的度量衡启动中继器
2.  弹出普罗米修斯的例子:
    
    ```sh
    docker run -it -v $(pwd):/prometheus -p9090:9090 prom/prometheus --config.file=demo/prometheus.yaml
    ```
    
    > **注:** 确保 `the --config.file=<path>` 旗下指向现有配置文件。 如果你想用的话 [示例配置](https://npmcn.com/package/%40confio/relayer/demo/prometheus.yaml),只需在此寄存器根上运行命令。 否则,必须调整音量(`-v`)和配置您设置的文件路径 .
    
3.  在浏览器中打开普罗米修斯仪表板 [http://localhost:9090 (英语)](http://localhost:9090/)

#### 格拉法纳

1.  把Grafana的例子换掉:
    
    ```sh
    docker run -d --name=grafana -p 3000:3000 grafana/grafana
    ```
    
2.  导航到 [http://localhost:3:00 (英语)](http://localhost:3000/) 登录( n)`admin`编号 :`admin`(中文(简体) )
3.  [创建普罗米修斯数据源](https://prometheus.io/docs/visualization/grafana/#creating-a-prometheus-data-source)
    
    > **注:** 使用 `http://host.docker.internal:9090` 作为服务器 URL并 `Server` 作为访问方法.
    
4.  创建新图表和查询数据
    
    > **注:** 有用的指南:
    
    -   [https://grafana.com/docs/grafana/latest/getting-started/getting-started/#step-3-create-a-dashboard (中文(简体) )](https://grafana.com/docs/grafana/latest/getting-started/getting-started/#step-3-create-a-dashboard)
    -   [https://prometheus.io/docs/可视化/grafana/#创建-a-prometheus-graph](https://prometheus.io/docs/visualization/grafana/#creating-a-prometheus-graph)

## 发展

[参考开发页面.](https://npmcn.com/package/%40confio/relayer/DEVELOPMENT.md)

## 整合测试

ts-relayer既可以作为库也作为二进制. 这使得我们能制作强大的节点脚本,或者 方便测试 CosmWasm 合同的 CI 代码中的 IBC 流. 如何这样做,可以举出以下两个例子:

-   [简单 CW20-ICS20 与非 CosmWasm 节点交谈](https://github.com/confio/ibc-tests-ics20)
-   [一对CosmWasm合同在多条链子上交谈](https://github.com/confio/cw-ibc-demo/tree/main/tests)

## 所需链条

区块链必须基于 Cosmos SDK `v0.42.4+`特别是,它必须 [PR 8458 (中文(简体) )](https://github.com/cosmos/cosmos-sdk/pull/8458) 财务报告和审定财务报表 [9081卢比](https://github.com/cosmos/cosmos-sdk/pull/9081) 合并( 如果您正在使用叉) , 以便中继器正常工作 . `ibc-setup` 应努力 `v0.40.0+`

链必须具有巨大的价值 `staking.params.historical_entries` (常被设定为起源). 默认为"1000",这应该与"1000"相通,但如果设定为"0.

### 完全节点要求

理想的情况是你控制了中继器连接的节点. 如果不行,应该运行 由已知和信任的一方,您可以检查配置。 注意,恶意节点 可能导致中继器在气体上发送无效的包和废品符(但不创建无效状态).

应启用索引器(`tx_index.indexer = "kv"` 内 `config.toml`, (中文(简体) ), 所有事件均应编制索引`index-events = []` 内 `app.toml`) (中文(简体) ).

节点必须支持历史查询. `--pruning=nothing` 肯定有用,但会使用 巨大的磁盘空间。 也可以修剪为3周的数据 `--pruning=custom --pruning-keep-recent=362880 --pruning-keep-every=0 --pruning-interval=100`,已经 测试。 你可能会减少 `pruning-keep-recent` 和3600一样低,但这需要测试.

## 网络应用

此repo也可以被导入为库并被用入网络应用. @ 小时工作一直这么好 共享 a [使用中继器的 Vue.js 应用程序样本](https://github.com/clockworkgr/ts-relayer-example)。 。 。 . 包括一些很好的代码样本 [使用 CosmJS 发送 Ibc 传输消息](https://github.com/clockworkgr/ts-relayer-example/blob/main/src/App.vue#L153-L186) 以及 [设置](https://github.com/clockworkgr/ts-relayer-example/blob/main/src/App.vue#L218-L289) 财务报告和审定财务报表 [运行中继器](https://github.com/clockworkgr/ts-relayer-example/blob/main/src/App.vue#L187-L207)。 。 。 .

![screenshot](https://user-images.githubusercontent.com/6826762/116312118-b3f40e00-a7b4-11eb-879b-ce3135764460.png)

密钥导入为 `import { IbcClient, Link } from "@confio/relayer/build";`

## 常见问题

### @confio/relayer 是什么？

类型脚本中的 IBC 重置器

### 如何安装 @confio/relayer？

在项目目录运行 npm install @confio/relayer，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ibc-setup、ibc-relayer，可以用 npx ibc-setup 直接运行。

### @confio/relayer 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @confio/relayer 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @confio/relayer 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @confio/relayer 可以商用吗？

@confio/relayer 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @confio/relayer 的下载量有多少？

根据 npm 官方下载统计，@confio/relayer 在 2026/10/11 – 2026/11/09 这 30 天内被下载 6,340 次，日均约 211 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @confio/relayer 还在维护吗？

最新版本 0\.12\.0 发布于 2024/03/08（2 年前）；至今共发布 105 个版本，其中过去 12 个月发布了 0 个；首次发布于 2021/03/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

