# @xyo-network/event-kit-cli 中文文档

规范地址：https://npmcn.com/package/%40xyo-network/event-kit-cli/

版本：2\.3\.4
npm 元数据更新时间：2026-11-02T22:24:53.486Z
中文译文更新时间：2026-11-02T23:58:48.958Z
软件包许可：LGPL-3\.0-only

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

原始 npm 页面：https://www.npmjs.com/package/%40xyo-network/event-kit-cli
原文对照：https://npmcn.com/package/%40xyo-network/event-kit-cli/?lang=original
源码仓库：https://github.com/XYOracleNetwork/event-kit

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

- 包体积（解压后）：565 kB，33 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26
- 运行依赖：22 个
- 首次发布：2026-08-20T22:45:35.469Z
- 最新版本发布：2026-11-02T22:24:53.288Z
- 已发布版本数：22（近 12 个月 22 个）

## 中文简介

Node 26+ CLI用于事件Kit握手和持久的源感知事件发布者

## 安装

```sh
npm install @xyo-network/event-kit-cli
```

也可以使用：`pnpm add @xyo-network/event-kit-cli`、`yarn add @xyo-network/event-kit-cli`、`bun add @xyo-network/event-kit-cli`

## README

# `@xyo-network/event-kit-cli`

要求Node 26或更新版本；存储库固定在Node 26.9.0上。

安装的二进制文件在固定的XL1上组成公共Node握手客户机 网关会话，定稿语句图重播，并选定公开 datalake。

## 命令

```text
event-kit publisher service publish|show|rotate-key|retire
event-kit publisher key show
event-kit publisher subscription show|challenge|accept
event-kit subscriber service show
event-kit subscriber subscription subscribe|show|revoke
event-kit publisher run --config publisher.json
```

发现命令需要 `--publisher`。精确的订阅发现和 发行商挑战/接受流程也需要独立 `--subscriber` 和 `--subscription` 选择器。读书不需要种子。

`--replay-floor-block <n>` 选择显式可信授权引导 边界和嵌入在持久重放标识。默认为genesis。 对于非零下限，必须设置第一个服务发布 `validFromBlock` 在那一层或之后；这种模式不要求完整的楼板前历史。

写要求 `--seed-file <path>` 和(可选) `--account-index <n>`。这个 种子文件必须是没有组或其他权限的常规非符号链接文件 位。发布者写入要求派生签名者为发布者声明 源;订阅者写入要求它是订阅者声明源。

生成的写入(`service publish`， `service rotate-key`, `subscription subscribe`)也要求 `--operation-id <32-lowercase-hex>`。生成新鲜 为每个新的逻辑突变随机操作ID，并在每次重试时保留它。 重复使用相同的ID与改变语义输入失败关闭；精确的重试 返回 `intentDisposition: "resumed"` 并重新发布或调和相同的内容 规范对象和签名的XL1事务。接受使用它的挑战 hash作为操作ID，而退役和撤销使用目标对象 散列，因此这些命令不接受单独的标志。

服务发布读取一个严格的公共JSON对象：

```json
{
  "deliveryMode": "durable",
  "sources": [{ "kind": "xl1-finalized", "chainId": "<40 lowercase hex source chain ID>" }],
  "maxPositionsPerWake": 32,
  "maxSubscriptionLifetimeBlocks": 100000
}
```

订阅发布读取一个严格的、受权限限制的JSON对象。 这个 `endpoint`， `audience`, `challengeSecret` 参数加密 并且永远不会被CLI返回：

```json
{
  "deliveryMode": "durable",
  "audience": "my-indexer",
  "challengeSecret": "<32-byte unpadded base64url>",
  "deploymentId": "my-indexer",
  "endpoint": "https://subscriber.example/event-kit/wake",
  "source": { "kind": "xl1-finalized", "chainId": "<40 lowercase hex source chain ID>" },
  "fromPosition": 0,
  "maxPositionsPerWake": 32,
  "expiresAtBlock": 100000
}
```

`publisher subscription challenge` 验证/解密选定的最终文件 Tuple和durable开始了它唯一被允许的挑战尝试。它只打印 公共挑战和选择器散列：它不执行HTTP请求，也从不执行 打印解密后的目标。将挑战传达给订阅者 运营商选择的专用信道。 `publisher subscription accept` 然后 需要 `--input <response.json>` 包含端点证明的：

```json
{
  "schema": "network.xyo.event.wake.challenge.response",
  "challenge": "<challenge object hash>",
  "proof": "<32-byte unpadded base64url>"
}
```

## 网络与状态

使用 `--network local|sequence|mainnet` 选择读配置文件。写命令 委派到XL1发布边界。本地命令需要显式的 `--chain-id`； 序列和主网标识来自已发布的SDK。 `--rpc-url` 和 `--datalake-url` 替换端点，而不是链身份。每一个 在重播之前和之后，根据所选链检查会话。

主网络读取可用。主网络写被XL1边界拒绝 在CLI读取种子文件或构造签名者/数据写入器之前；有 没有旁路标志。 `publisher run --network mainnet` 只提供了 （[d - 008](https://npmcn.com/package/docs/decisions/D-008-MAINNET-DELIVERY-ONLY-PUBLISHER.md)）. 它读取 要签名的种子醒来，不打开签名者、数据生成器或出版物，然后离开 对第7阶段宿主的挑战和接受。

`--state-dir` 默认为 `./event-kit-state`。重播检查点、发布 日志、变异意图、发布者加密密钥保管和挑战 记录在选定的网络、精确链ID和发布者下被隔离 地址在私有SQLite权限。CLI拒绝遗留文件系统状态 而不是默默地放弃加密保管或发布恢复。 突变意图是不可变的私有记录。出版商服务/关键 intent保留生成的加密私钥用于恢复；订阅者 意图保留确切的授权和密文以及私有输入指纹， 从来没有端点或挑战秘密明文。保护并备份这个 目录作为秘密操作状态。

使用 `--json` 的机器可读结果 哈希、身份、最终块和生命周期证据。

## 居民运行时

`publisher run --config publisher.json` 现在合成持久SQLite状态， D-005的发现/质疑/接受/撤销 有界HTTPS交付，以及环回健康探测。源合同支持定稿 XL1，最终确定了以太坊，完成了固定的UTC时间间隔。看到 [常驻出版商手册](https://npmcn.com/package/docs/RESIDENT_PUBLISHER.md) 的配置, 握手命令，Vercel预览证书， 恢复后，剩下的凭据和资格大门。

有一个未版本化的有线合同。 `--event-kind`版本后缀模式； 和 `maxBlocksPerWake` 被拒绝;使用明确的源和源位置。 XL1接受高度确定授权资格，而 订阅的 `fromPosition` 确定源追赶从哪里开始。

## 准备尽最大努力

服务和订阅JSON要求 `deliveryMode: "best-effort"`,匹配 `bestEffort: {"refreshIntervalSeconds":30,"maxHintAgeSeconds":300,"maxAttempts":3}` 和 `maxPositionsPerWake: 1`。本机现有的发布/订阅命令 继续使用 `--input`，需新鲜 `--operation-id`、固定网络和 私人 `--seed-file`； mode/policy是严格的JSON字段，而不是新的连接id。

使用新审查的授权投影，同时保留相同的 SQLite所有者/托管目录，所有握手命令支持：

```text
--replay-namespace ces-best-effort-v2 --replay-floor-block <H+1>
--replay-start-anchor-block <H> --replay-start-anchor-hash <rootH>
```

本机读取器验证确切确定的H/rootH，在H处开始为空，然后读取 H+1的权威。新服务/密钥/授权/订阅/接受声明必须 使用新的服务ID和版本1，没有遗留的替代 链接或隐含的旧权威。对应的运行时配置字段为 `authorizationReplayNamespace`， `authorizationFloorBlock`, `authorizationStartAnchor: {"block":H,"hash":"rootH"}`。保持发行商的身份； 种子、状态目录和历史密钥/检查点/意图不变。

尽力而为HTTP成功返回有界 `admissionId`， `eventHash`， `wakeId`， `acceptedAt`， `expiresAt`； 它从不声称是持久的 `receiptId`。接收机源 验证和应用过程必须独立观察。

## 常见问题

### @xyo-network/event-kit-cli 是什么？

Node 26\+ CLI用于事件Kit握手和持久的源感知事件发布者

### 如何安装 @xyo-network/event-kit-cli？

在项目目录运行 npm install @xyo-network/event-kit-cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 event-kit，可以用 npx event-kit 直接运行。

### @xyo-network/event-kit-cli 支持 TypeScript 吗？

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

### @xyo-network/event-kit-cli 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @xyo-network/event-kit-cli 需要什么版本的 Node\.js？

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

### @xyo-network/event-kit-cli 可以商用吗？

@xyo-network/event-kit-cli 使用 LGPL-3\.0-only 许可。弱 Copyleft：作为库被调用时通常不要求开源你自己的代码，但修改库本身需以 LGPL 开源；前端打包合并后的适用边界存在不同理解。以上为概括，不构成法律意见，请以许可原文为准。

### @xyo-network/event-kit-cli 还在维护吗？

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

