@estiva-app/protocol

中文文档
0.58.0发布于 2026/11/14MITTypeScriptES Module构建来源已验证近 30 天下载 7718

Estiva 有线格式:巴斯-形状的诺斯特事件构建器,NIP-01 ids,NIP-19 naddr,NIP-98 HTTP auth,以及中继客户端. 说协议; 解释什么.

中文使用文档
文档目录8 节
  1. 此软件包没有交叉的行
  2. 为什么一个执行, 当套房的整个要求是独立
  3. 这里的 MaJOR 是协议事件, 不是类型脚本事件
  4. 是什么使这个要求
  5. nostr-tools 被评估,属于依赖性而非依赖性
  6. 运行时间要求,以及为何不在类型中
  7. 消费者
  8. 释放

@ estiva- app/ protocol

Estiva线条格式,一次. 巴斯克形状的鼻孔事件构建器, NIP-01 id 国家实施计划-19 naddr, NIP-98 HTTP 认证, Schnor 签名, 以及两个中继器 客户.

npm install @estiva-app/protocol

无注册认证, 不 .npmrc没有标志。 这是 ADR 0002 §3。 。 。 .

此软件包没有交叉的行

在:字节. 所有正确之处 中继 法官-活动 构造 标记顺序 id 散列 签名输入, naddr,国家实施计划98 标题和 accepted hTTP桥的语义学.

不在:折叠,或解释事件的一切. 应用如何变成一个 将事件流入当前真理是应用程序所在之处 应该 差异 (ADR0001§8) (中文(简体) ). foldFolder 和预测 留在应用程序,和每个 应用的相容性固定不变。 对话折叠——线条, 编辑,反应,一个线程的分辨率——是规范的和共享的,所以它生活着 内 @estiva-app/conversation从来没有在这里(SPEC§10, ONE-2).

当在这里添加一些东西时,测试不是"两个应用程序都需要它". 没错 "会 如果两个应用程序不同意,则发出转发通知。”

为什么一个执行, 当套房的整个要求是独立

SPEC 第10节用来论证重复 曾经 架构:每个应用程序三个 执行 NIP-01 序列化 使得“ 应用程序共享不能在 同样的数据"是真实的陈述 而不是关于兄弟姐妹的说法.

说对了 说错机制了 第三份 解决了 第二次手写事件 id hash 不是证明 独立,它是一个分歧 转发通知,我们没有,而且它有 已经发生了。 皮克餐厅 buildMessage 长大了 about 参数排放 a 标记; 船从来没有这样做。 相同的逻辑消息产生了不同的字节 要看是哪个应用程序寄的, 没有失败,每个副本都是 自相相会. 在另外两个副本之间,a diff -r 必须有人 记得逃跑是整个安全机制.

使互通说法真实的是应用程序没有解释,没有 数据库——情况依然如此。 现在他们已经就电线格式达成一致了 而不是巧合 而不是因为巧合 SPEC 第10节经SHA-3修改为如此表述.

这里的 MaJOR 是协议事件, 不是类型脚本事件

应用程序的字节的更改 —— id 计算、 序列化顺序、 标记 语义学, 签名输入—— 是 maJOR 即使类型脚本签名是 不变 (ADR0002§4b). 每张发行单都会回答电线问题 明确,包括当答案是:

电线行为 : 不变.

一个缺失的行是让一个字节变化的放出通过作为重构符的.

是什么使这个要求

四张CI和五张手的支票 重要的是 没有一个是绿色的勾当 旁边的人选择的价值.

检查这是什么
test/wire.test.mjs21个向量 记录自 peek-app/convex/nostr/ 财务报告和审定财务报表 estiva-ship/lib/nostr/ 在此软件包存在之前 ——两个应用的字节已经发布. 所有12个形状的应用软件都具有相同的标识.
同样的文件, production kind:*7个事件取消 https://estiva.estiva.app他们 id 财务报告和审定财务报表 sig 这是 中继器复制对当局而不是对我们的ID检查 从96起抽样调查 记录 船上的折叠固定事件,而不是旁边的7起对抗事件——这些是手工建造的,从未出版过,其中一人坐在这组中,直到现场检查询问后无法找到.
test/oracle.test.mjsnostr-tools 作为独立的执行,带有负控,当字节错误时失败. 加上警犬NIP-19 npub 从规格的矢量, 这是唯一能捕获 bech32m 代替 bech32.
test/runtime.test.mjs枪管进口和与之合作 WebSocket, (中文(简体) ), fetch, (中文(简体) ), btoa, (中文(简体) ), document, (中文(简体) ), process, (中文(简体) ), Buffer 和朋友删除了——有自己的负面控制.

不重生( E) wire-vectors.json 来通过考试. 那会抹去 发现 只有在建造者被故意给予 新的形状,然后发布注释 说在 电线行为。 。 。 .

绿色套房仍然是不是最后一个字。 中继器是唯一在 线条格式是否正确,通过测试运行是否兼容 被拒绝的事件。 所以有第五张支票,这是手工操作,因为它需要一张 真正的工作空间证书——CI中的证书是常设保密的ADR 0002 §4c 使用失败的释放决定:

npm run build -w packages/protocol && set -a && . ~/.estiva-agent.env && set +a && npm run verify:live -w packages/protocol

它出版 真签名 kind:9007 命名已经存在的频道, 所以中继答案 200 {"accepted":false,"duplicate: channel already exists"} ——证明事件经过解析,其id重算并签名 已核实 。 然后两个负控,没有它" 作品"与"规则被去除"不可分:

  • 与 交换了两个标签 财务报告和审定财务报表 id编号 :sig 独自一人 这个 接力自有之词,2026-08-27: 400 invalid: invalid event id: computed 70f206d4…, got b9d1e606…。它独立地重算 ID,所以同意 好事是同意字节 而不是对他们漠不关心.
  • (单位:千美元) kind:0,哪个 /sign 无条件拒绝每个应用 422 policy_violation大门是直播的,不是打开的.

在标记任何释放前运行 电线行为 线条不是 "没有改变",然后再次反对 已公布的柏油球 而不是说 工作空间,因为已建没有发布 .

nostr-tools 被评估,属于依赖性而非依赖性

SHA-3要求在包装手卷起的散列花序之前,先用一个小时处理. 测量, 2026-08-27,反对: [email protected]数字 :

问题回复
已经 getEventHash 赞同 computeEventId? 吗?是的,所有103项活动 从生产记录, 和在这里的每一个矢量. verifyEvent 验证所有103个中继签名.
已经 nip19 绕来绕去我们的指针?对,没错 包括: d 包含结肠的标签.
这是它的 naddr 和我们的一样弦?没有. 它以不同的顺序将TLVs分出,因此同个指针编码成不同的字符串. 每个参与的解码器都按类型读取了TLV,并且是可容于命令的,因此它们相互操作——但Nadders绝不能被比作字符串.
它的NIP-98适合吗?没有. getToken 发射 u, (中文(简体) ), method, (中文(简体) ), payload 财务报告和审定财务报表 无非ce巴斯将每个认证事件 ID 记录在 Redis 重播集中 created_at 因此,在一秒钟内有两个相同的请求会碰撞,而第二个请求则因 NIP-98: replay detected我们的加一个非正因.
它的NIP -42吗?makeAuthEvent 发出中继挑战, 这恰好符合我们的。 巴斯从名字上看两个标签, 所以它不是负载方式.
依赖成本这需要 @noble/hashes@2 财务报告和审定财务报表 @noble/curves@2皮克上场了 ^1.8.0编号 :^1.9.2 和船舶指针 1.8.0编号 :1.9.2. 收养 二大类 @noble/* 在每棵消费者树上,贵族v2将其子路径重新命名(/sha256 → /sha2),所以它不是一个滴入.
根本不包括的巴斯那种常数, canonicalChannelName,标记布局将巴斯验证(h,NIP-10标记的复制形式 a 3080/30851/1851形状,以及 accepted- 桥的字典 不管怎么说,他们都是我们的.

决定:保持我们自己的薄弱执行和使用 nostr-tools 作为 测试套房中的独立甲骨文. 这绝对比两种选择都好 ——无依无靠的第三方交叉核对,无第二秒 高贵,没有字节给消费者。 这也是代替 diff -r: 一张支票 自己失败了 而不是一个人必须记得逃跑.

运行时间要求,以及为何不在类型中

软件包编译方式 types: [] 没有 lib: dom 所以一个出版 .d.ts 工作在 Peek 的 Convex 树, Peek 的浏览器捆绑和代理 tsx 运行 (ADR0002§4a). 无 URL, (中文(简体) ), btoa, (中文(简体) ), fetch, (中文(简体) ), WebSocket, (中文(简体) ), TextDecoder 或 计时器函数在 lib.es2022因此,每个是 在模块中声明: 需要它吗 财务报告和审定财务报表 在函数体内读取数字 :

  • (a) 在单元内申报并不意味着消费者在全球范围内的任何土地;
  • 在函数内读取它意味着导入软件包不会触动全局,所以 一个只想要事件构建者的后端不会崩溃于一个 WebSocket 它的运行时间从来没有听说过.

运输形状的参数以及全球参数: Relay 需要一个 选项 fetch, (中文(简体) ), createLiveRelay 选择 socketFactory,则 默认读取运行时间本身 .

一个诚实的例外,通过写测试发现: @noble/curves 读取 TextEncoder 而它的模块体运行. 因此,"根本没有全球"不是一个 属性 : @noble/*。 。 。 . TextEncoder, (中文(简体) ), TextDecoder 财务报告和审定财务报表 URL 在每套套间运行时,都有WhatWG 通用 目标,这就是线.

消费者

皮克、 船舶和 estiva-agent 看到了吗 顾问A级 打破更改不会发布 直到他们每个人都有公开的升级 PR, 作者:谁打破(ADR 0002§5).

释放

git tag [email protected] && git push origin [email protected]

release.yml 检查标签对应 package.json、建造和出版 通过信任的出版(OIDC). GitHub 中没有 npm 证书 。 见 重新读取 第一次出版的每册手册.

版本与发布记录

@estiva-app/protocol 共发布 67 个版本,首次发布于 2026/08/27;过去 12 个月发布了 67 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.58.0latest2026/11/14今天
0.57.02026/11/112 天前
0.56.02026/11/112 天前
0.55.12026/11/077 天前
0.55.02026/11/049 天前
0.54.02026/11/049 天前

关于 @estiva-app/protocol 的常见问题

@estiva-app/protocol 是什么?

Estiva 有线格式:巴斯-形状的诺斯特事件构建器,NIP-01 ids,NIP-19 naddr,NIP-98 HTTP auth,以及中继客户端. 说协议; 解释什么.

如何安装 @estiva-app/protocol?

在项目目录运行 npm install @estiva-app/protocol,或使用 pnpm add / yarn add / bun add。

@estiva-app/protocol 支持 TypeScript 吗?

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

@estiva-app/protocol 支持 ESM 还是 CommonJS?

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

@estiva-app/protocol 需要什么版本的 Node.js?

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

@estiva-app/protocol 可以商用吗?

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

@estiva-app/protocol 的下载量有多少?

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

@estiva-app/protocol 还在维护吗?

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