@xyo-network/event-kit-xl1

中文文档
2.3.4发布于 2026/11/03LGPL-3.0-onlyTypeScriptES Module

Event Kit的XL1链适配器(最终的头源)

中文使用文档
文档目录5 节
  1. 最终报表图的发布
  2. 为什么是验证而不是转发
  3. 证据
  4. 握手身体准备
  5. 手动阶段7金丝雀主机

@xyo-network/event-kit-xl1

Event Kit的XL1链适配器。

  • createXl1FinalizedHeadSource 为发行商读取最终的XL1头 过滤器和接收器的授予新鲜度检查
  • publishFinalizedStatements -通过发布语句图声明 显式内容写入、独立回读、包含和最终性 边界
  • preparePublisherService, prepareWakeSubscription, prepareWakeSubscriptionAcceptance 这五个 prepare*Revocation 函数-确切的握手声明和附件,没有 签名者、会话或I/O;匹配的 publish* 函数准确发布 这些
const gateway = await new GatewayBuilder().name('local').rpcUrl(RPC).build()
const headSource = createXl1FinalizedHeadSource({ viewer: gateway.connection.viewer })

结果使双方都满意 FinalizedHeadSource 和 接收器的 TrustedFinalizedHeadSource -申报结构相同的港口 本地的,所以这个包都不依赖。

最终报表图的发布

publishFinalizedStatements 接受单独的数据写入器和读取器端口。 生产调用程序应该提供指向的独立构造的客户机 相同的共享公共数据。

const result = await publishFinalizedStatements({
  attachments: [challenge, response],
  bodyReader: dataLakeViewer,
  bodyWriter: dataLakeRunner,
  journal,
  operationId,
  runner,
  signer,
  statements,
  viewer,
})

候选操作:

  1. 准备和验证规范的语句图事务;
  2. 要求完全符合要求接受所指定的挑战/响应体 对象,然后插入并独立地读取它们;
  3. 构建并签署XL1交易,并记录其确切证据;
  4. 验证签名是否只更改了签名/连续性元数据 不得更改签名者、索赔来源、有效载荷、订单或交易意图;
  5. 将完全签名的事务内容写入写入器;
  6. 通过独立的方法验证确切签名的事务内容 广播前阅读;
  7. 广播已经签名的事务;
  8. 观察具体的交易内容;和
  9. 独立观察到最终的纳入。

返回的结果包含事务哈希,语句图事件 哈希、附件哈希、包含证据和最终块。有界的 轮询选项控制包含/最终性观察。

FinalizedStatementPublicationJournal.load 和 save 形成耐久性 边界。第一个 signed 记录自动绑定链ID,声明来源, 操作ID,有序事件和附件哈希,以及精确签名的事务。 以后的记录提交 content-written, content-verified, broadcast, included, finalized。重新启动验证该绑定并恢复 最高阶段。不确定的广播可以重播确切签名的证据; 它永远不会重建或重新签署事务。完成的重试返回 同样的证据,但没有再次发表。

操作调用者应该使用由导出的文件系统日志 @xyo-network/event-kit-node/handshake 或者另一个原子实现。这个 包的内存日志只是一个结构测试夹具。

公共握手发布帮助程序接受单个未版本化的服务, 订阅和挑战合同。发布强制会话的固定 XL1授权链和匹配服务/订阅标识 写。同一索赔服务/授予/订阅的粉丝和最终接受 附件不变。以太坊区块和间隔节拍是源 位置;它们的授予和接受生命周期仍然属于XL1。

为什么是验证而不是转发

双方都将此数字视为可信的:发行商决定该范围 发射,栅极计算机就从它那里获得延迟。所以读数被检查了,不是 通过。

  • 不是非负JSON安全整数的头部在这里被拒绝 然后表面变成不透明的 grant-view-invalid.
  • 默认情况下,低于已观察到的头部将被拒绝。完成 高度是不可变的,所以回归意味着端点被回滚, 交换,或说谎-失败的封闭节拍承认对倒带视图。 禁用与 rejectRegression: false 只有在呼叫者真正容忍的情况下 它。

证据

脱机规范涵盖了验证和回归保护。现场规格如下 src/spec/api-local/ 对象引导的真实本地XL1链上运行 api-local 测试项目:头部读规范,通过真实进步 块状生产,永不退步。

单独的离线发布者规范验证发布阶段的顺序,拒绝 广播后独立数据验证失败,准确接受 附件绑定,拒绝签名者更改的事务内容,有界 轮询直到最终证据出现,无损安全块转换,以及 纳入证据和最终证据之间的精确一致。那些重点突出的规格 模拟XL1事务和数据帮助程序。

被接受的门2正在进行握手 @xyo-network/event-kit-statement-graph 调用相同 publishFinalizedStatements 一个真正的帮手 apiLocal XL1运行程序/查看器和 单独构建的XL1 SDK REST编写/读取客户机。它们的端点是a 在子进程中运行的文件系统支持的数据服务器。与声明 图 0.5.0, xyo-chain 5.3.0、XL1协议/SDK 5.4.0管理地方 在提升的有效负载槽中承载主题的声明,通过共识 验证,并从最终确定的块载体中扫描索赔主体。

用 pnpm test:live 从存储库根目录。他们是自愿加入的 默认套件保持离线状态。

已确定的头部适配器和已提升的声明发布路径是合格的 针对本地开发链。数据采集仍然是一个环回测试过程 而不是托管网络服务。这些包级测试不符合条件 一个托管共享公共数据,序列,主网,Proxmox,多虚拟机 操作,或生产交付;公共CLI有单独的本地和 包装好的消费者证据在路线图门3下。

握手身体准备

每个高级握手发布者现在准备它的声明,然后发布 它准备了什么。这个 prepare* 函数暴露了前半部分:给定 授权链ID、要签名的规范源地址以及 握手对象,它们返回 statements, attachments索赔, 声明哈希、主体和对象标识。它们应用每个绑定检查 应用发布者,不需要签名者或会话,也不执行I/O。

const prepared = await prepareWakeSubscription({
  chainId, source: controller, encryptionKey, grant, service, subscription,
})
// prepared.statements and prepared.attachments are what publishWakeSubscription sends.

准备不是权威。它接受主网链ID,因为它写 没有什么;每一个 publish* 功能仍然运行普通网络写检查 并拒绝主网。手工金丝雀作曲将准备好的身体传递给 拥有下面的主网主机,它应用自己的分组、分类账和终端 盖茨。相等的准备输入总是产生相同的Claim散列。

手动阶段7金丝雀主机

的节点只 @xyo-network/event-kit-xl1/mainnet-canary 入口出口 inspectMainnetCanaryPacket, inspectMainnetCanaryStage, prepareMainnetCanaryLedger, admitInteractiveMainnetCanaryStage 和 publishInteractiveMainnetCanary。它与普通的CLI/网络是分开的 选择,其中继续拒绝主网。中立的发布API也是如此 在没有主机私有非序列化许可的情况下拒绝主网。没有发行 是出口。看到 所有权联锁合同.

一个完整的严格审查包将规范链、公共身份、 HTTPS端点和SDK资源端点、工件/阶段0 - 6/恢复/资金 批准证据,有效性,预期交易数,累计上限,清理 保留和每个确切的出版/费用/脚本的意图。准备创造一个 私有SQLite分类账和不可变初始化标记。失踪的权威 必须恢复;打开进程不能重置计数器。没有真正的数据包 由合成测试夹具创建。

手动主机先从实终端读取报文绑定类型批准 之前打开签名者资源和新的事务哈希绑定类型批准 每次广播尝试。CI,无人值守输入,普通CLI标志,JSON审批 对象和调用方确认回调不授予权限。预订 在失败/重新启动/模棱两可的提交中存活;签名证据和公布 阶段保持精确。资金和主网直播是分开的 human-authorized。包/离线夹具资格不是一个活的金丝雀。

根包可以选择加入审查阶段包 stages: { max, until }. inspectMainnetCanaryStage 根据它的根解析一个阶段,并且 admitInteractiveMainnetCanaryStage 将它附加到根的分类账之后 输入终端批准。阶段添加操作,或刷新费用和有效性 Claim未更改的无保留操作。他们从不改变身份, 端点,证据或天花板,留在根部。发布阶段性操作 通过传递它的定义 stage 来 publishInteractiveMainnetCanary. 看到 上演了金丝雀.

版本与发布记录

@xyo-network/event-kit-xl1 共发布 22 个版本,首次发布于 2026/08/21;过去 12 个月发布了 22 个版本。

版本发布日期距今
2.3.4latest2026/11/03今天
2.3.32026/11/03今天
2.3.22026/10/313 天前
2.3.12026/10/303 天前
2.3.02026/10/295 天前
2.2.32026/10/286 天前

关于 @xyo-network/event-kit-xl1 的常见问题

@xyo-network/event-kit-xl1 是什么?

Event Kit的XL1链适配器(最终的头源)

如何安装 @xyo-network/event-kit-xl1?

在项目目录运行 npm install @xyo-network/event-kit-xl1,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:zod(^4.6)、ethers(^6.17)、async-mutex(^0.5)、@ariestools/sdk(^9.0)、@xyo-network/sdk(^8.1)、@opentelemetry/api(^1.10)、@xyo-network/xl1-sdk(^5.8)、@xyo-network/sdk-protocol(^8.0)、@xyo-network/xl1-statement-graph-sdk(^0.7)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@xyo-network/event-kit-xl1 支持 TypeScript 吗?

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

@xyo-network/event-kit-xl1 支持 ESM 还是 CommonJS?

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

@xyo-network/event-kit-xl1 需要什么版本的 Node.js?

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

@xyo-network/event-kit-xl1 可以商用吗?

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

@xyo-network/event-kit-xl1 还在维护吗?

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