@ 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.mjs | 21个向量 记录自 peek-app/convex/nostr/ 财务报告和审定财务报表 estiva-ship/lib/nostr/ 在此软件包存在之前 ——两个应用的字节已经发布. 所有12个形状的应用软件都具有相同的标识. |
同样的文件, production kind:* | 7个事件取消 https://estiva.estiva.app他们 id 财务报告和审定财务报表 sig 这是 中继器复制对当局而不是对我们的ID检查 从96起抽样调查 记录 船上的折叠固定事件,而不是旁边的7起对抗事件——这些是手工建造的,从未出版过,其中一人坐在这组中,直到现场检查询问后无法找到. |
test/oracle.test.mjs | nostr-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 证书 。 见
重新读取 第一次出版的每册手册.