@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,
})
候选操作:
- 准备和验证规范的语句图事务;
- 要求完全符合要求接受所指定的挑战/响应体 对象,然后插入并独立地读取它们;
- 构建并签署XL1交易,并记录其确切证据;
- 验证签名是否只更改了签名/连续性元数据 不得更改签名者、索赔来源、有效载荷、订单或交易意图;
- 将完全签名的事务内容写入写入器;
- 通过独立的方法验证确切签名的事务内容 广播前阅读;
- 广播已经签名的事务;
- 观察具体的交易内容;和
- 独立观察到最终的纳入。
返回的结果包含事务哈希,语句图事件 哈希、附件哈希、包含证据和最终块。有界的 轮询选项控制包含/最终性观察。
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. 看到
上演了金丝雀.