@agentplat/mesh-protocol
为AgentPlat Mesh同龄人订立封闭、限定和运输中立的电线合同.
安装( 开发者预览)
明确安装协调预览 :
npm install @agentplat/mesh-protocol@next
全部留着 @agentplat/* 软件包在同一版本中。 npm 的默认
latest 标记可以指向更古老的预览。 见
释放通道
用于发行状态和版本选择.
Beta 1 写 wireVersion: 1 并读取被冻结的当前版本和
上一个 wireVersion: 0 相容性简介. 一般解析器
接受两者; parseSignedMeshEnvelopeV0 财务报告和审定财务报表 parseSignedMeshEnvelopeV1
窄到一个精确的版本。 解析器限制覆盖可能只缩小已冻结
电线天花板.
执行工作规定:
- 严格 UTF-8 和 JSON 解析拒绝重复解码的密钥, 格式错误 明确结构界限以外的Unicode、模棱两可的语法和文件;
- 确定JSON用于散开和签署的能力;
- 闭塞校验
peer.hello, (中文(简体) ),peer.ping财务报告和审定财务报表peer.ping_ack· ; - 已关闭的阿尔法2号发现和能力记录
peer.card, (中文(简体) ),peer.goodbye, (中文(简体) ),capability.advertise财务报告和审定财务报表capability.withdraw· ; - 目标记录
objective.announce, (中文(简体) ),objective.revise财务报告和审定财务报表objective.cancel· ; - 已关闭的 Alpha 2 工作提议和工作投标记录
work.offer财务报告和审定财务报表work.bid· ; - 已关闭的 Alpha 2 裁决答复记录
work.award, (中文(简体) ),work.accept财务报告和审定财务报表work.decline· ; - 已关闭的 Alpha 2 执行记录
work.progress, (中文(简体) ),work.checkpoint财务报告和审定财务报表work.result· ; - 关闭、 限定的 Alpha 2 工作发布和工作取消记录
work.release财务报告和审定财务报表work.cancel· ; - a 已关闭、有界的Alpha 2 租赁更新记录
lease.renew· ; - 阿尔法2 租赁接管记录
lease.takeover_proposal· ; - sHA-256有效载荷文摘和Ed25519 电文ID的确切说明 证明;
- 对租户和网状建筑、观众、新鲜和 临界扩展支持;以及
- 被冻结的 v0 字节锁定着并签名的 v1 相符合定着
fixtures/v0财务报告和审定财务报表fixtures/v1。 。 。 .
使用 parseSignedMeshEnvelope 与被减压 Uint8Array 在电线上
边界。 接受字节而不是预解码文本防止丢失 UTF-8
替换时避免隐藏无效代表。 剖析器执行严格
解析和静态协议验证并返回深冻值。 应用
validateMeshEnvelopeContext 在接受该值为本地对等点之前.
使用 canonicalizeMeshPayload 以获取所覆盖的字节 payloadHash。 。 。 .
使用 createMeshSigningDocument 或者说 canonicalizeMeshSigningDocument 获取
信封证明所覆盖的文件。 签名文件故意
排除有效载荷和证明值,同时保留有效载荷文摘
证据头.
此包不计算或校验有效载荷文摘, 解析签名 键,验证签名,进行回放录入,或变异对等状态。 这些 结构有效性与 密码真实性或局部接受.
证据、信任和同龄人信息家族在 执行封闭有效载荷合同。 他们显然失败,而不是 输入通用有效载荷路径。 目标、工作、租赁更新、, 租赁接管提案、租赁选票和租赁证书记录 并进行结构验证,但在 Mesh 运行时仍明确不支持 边界,直到其削减器和国家授权得到执行.
冻结限制
协议v0和v1在有效载荷进入一个 减号 :
| 限制 | 最大值 |
|---|---|
| 解压信封 | 262,144 UTF-8 字节 |
| 有效载荷 | 196,608 UTF-8 字节 |
| 嵌入深度 | 第32条 |
| 一个对象中的总对象密钥/ 密钥 | 2 048个/256个 |
| 一个阵列中的数组项目总数 | 4 096个/1 024个 |
| 一个字符串 | 65,536 UTF-8 字节 |
| 扩展/关键扩展 | 16个/8个 |
| 标识符 | 256 UTF-8 字节 |
| 信封寿命 | 10分钟 |
| 钟表津贴 | 2分钟 |
| 重放窗口 | 2 048个序列 |
已执行的Alpha 2号发现和有效载荷被进一步冻结 这些较窄的限制:
| 外地 | 规则 |
|---|---|
protocolVersions | 1-8 排序出独有的非负式安全整数,必须包括同级卡信封的自有线版本 |
| 对等卡传输提示 | 最多8个排序的独有非空字符串;每个2 048个UTF-8字节和8 192个字节的总和 |
| 同伴卡能力标识 | 最多32个分类的独特标识符 |
| 能力键 | 非空;最多4,096 UTF-8字节 |
| 能力版本和可选变体 | 非空; 最多128 UTF-8 字节 |
| 输入或输出介质类型 | 每集最多16个排序出独有的非空字符串;每个128 UTF-8字节 |
| 能力属性 | 最多32个条目;非空键可达128 UTF-8字节,非空取值可达1 024字节,合计为16 384字节 |
| 同行卡或能力广告有效性 | 超过零,最多24小时 |
每个标有分类和独有的收藏都使用上升的词典顺序 超过 UTF-16 代码单位,匹配 JCS/RFC 8785 属性名称命令规则. 这不是故意的 Unicode 代码点顺序; 重复相邻值 拒绝.
信封 TTL 为 30 秒 peer.ping 财务报告和审定财务报表 peer.ping_ack60秒钟
peer.goodbye,120秒钟 peer.hello, (中文(简体) ), peer.card, (中文(简体) ),
capability.advertise 财务报告和审定财务报表 capability.withdraw这些家庭限制还包括:
以全球最长10分钟为界.
工作发布和工作取消信封有两分钟TTL. 释放是一个
关闭 owner编号 :assignee 权力和 reoffer编号 :close 处置对;
必须在宣布的租约到期之前将受让人释放。 取消为 a
关闭 award_pending 没有分支 acceptanceId 或者说 active 分支为
一个 这些只是结构限制; 当地国家决定接受者,
授权、终止、一能和会计.
租赁更新信封有30秒TTL,必须不迟于 目前申报的租约。 续约自封 受让人,需要直接 交货和将申报的期满延长最多24年 小时。 所接受的目标可能要求缩短期限并进行延长.
租赁接管提案信封有一分钟TTL. 他们需要一个直接 同伴受众、强制性因果关系和目标导向平等。 值得信赖的人 接收时钟和接受的客观政策——不是发送者宣布的时间——决定 租赁期满加追偿优惠是否已经过去.
租赁投票信封也有一分钟的TTL. 他们自相残杀证人, 要求直接交付和目标负责人平等,并因果地点名 接受他们认可的收购建议。 证人的成员资格和投票 独特性需要被接受的当地国家.
租赁证书信封有一个一分钟的TTL,并自封 组装员. 他们携带2到32个排序的独有票证,需要直接 执行、目标标题平等和建议因果关系。 被接受者 目标确定实际门槛值.
Alpha 2 域名限制、命令、有效性、自约束和前身
侵犯行为 invalid_payload. 信封终生违规事件退回
invalid_lifetime; 通用解析结构限制违规情况返回
structural_limit_exceeded。 。 。 .
目标限制
客观文件完全替换:宣布为修订版1,无
信封因果关系标识; 修改为修订版2或更多, 名称不同
previousObjectiveDocumentId,并需要信封 causationId; 取消名称
当前文件和修订,并需要信封 causationId。 。 。 .
那个信封 causationId 是一个消息ID,而不是替代有效载荷的
前一个文档编号。 三条消息都需要一个信封 objectiveId 那个
完全匹配有效载荷。 文件签发者必须自封给发送者.
结构接受 contentReference 不授权检索;
需要签发授权、参考授权和当前修订检查
已接受本地状态, 并且仍在协议解析器之外 .
| 外地 | 规则 |
|---|---|
| 摘要或内容参考 | 完全是一个非空代表;每个最多4 096 UTF-8字节 |
| 成功标准 | 1–32个非空字符串,每组有4,096个UTF-8字节和16,384个字节 |
| 允许的能力键 | 1–32 排序出独有的非空字符串,每个有 4,096 UTF-8 字节 |
| 工作/货币 | 工作项目1-1 000 000;通过工作项目上限的货币1 |
| 预算单位 | 非负式安全整数 |
| 计时器 | 投标窗口最多1小时;最多15分钟验收;最多24小时租赁;最多1小时回收优惠;每个窗口必须在有效范围内 |
| 续租 | 安全整数 0-100 |
| 追索证人 | 3-32 分类独特的识别标志和严格多数门槛 |
| 核定观察员 | 可选,最多32个分类的独特标识符 |
| 客观有效性 | 超过零,最多30天 |
目标宣布和修改有一个五分钟的信封TTL;取消有一个
两分钟TTL。 目标范围、约束、关闭、命令、修订、,
因果关系、定时和限制侵权行为 invalid_payload; 它们的 TTL
拒绝 invalid_lifetime。 。 。 .
工作报价和投标限额
工作提议名称不可更改的目标文件和工作项目修订。 这个
第一次尝试没有前作或信封的因果关系
两者,必须命名不同的 previousOfferId. 主动自封其主人
并可能针对一个端点或 work 主题。 工作标书
将投标人自封给发货人,要求提供因果关系
必须直接针对指定的所有人。 投标修订1没有前身;
后来的修订需要不同的修改 previousBidId。 。 。 .
| 外地 | 规则 |
|---|---|
| 所需容量键 | 1–32 排序出独有的非空字符串, 最多为 4 096 UTF-8 字节 |
| 匹配属性 | 最多32个条目;非空键可达128 UTF-8字节,非空取值可达1 024字节,合计为16 384字节 |
| 投入摘要或参考资料 | 完全是一个非空代表;每个最多4 096 UTF-8字节 |
| 完成标准 | 1–32个非空字符串,最多4,096个UTF-8字节,合计16,384个字节 |
| 投标假设 | 0–32 非空字符串, 最多为 4, 096 UTF-8 字节, 合计为 16, 384 字节 |
| 保留和预算单位 | 预算值是非负式安全整数;能力预留是1至1,000,000的安全整数 |
| 提供截止日期 | sentAt < bidDeadline < workDeadline;出价截止时间为寄出后最多1小时,出价截止时间为寄出后最多30天,信封过期不得超过出价截止时间 |
| 投标截止日期 | sentAt < bidExpiresAt <= bidDeadline < expectedCompletionAt <= workDeadline;适用相同的1小时出价和30天工作期限,信封期满不得超过出价期满 |
提供和投标信封 TTL是两分钟。 结构验证不决定 目标修订是否为当前,工作项目是否为当前,提议 尝试取代另一个报价,接受能力广告,a 投标具有能力或预算授权,或期限和保留有效 反对被接受的地方州。 这些检查需要减员授权状态 并且继续推迟.
工作奖、接受和减少限制
一个奖项名称 一个出价并选择了Bid和自封所有者发送者。 任意
直接同行受众在结构上是有效的;无论是受让人还是受让人
证人是当地人 它肩负着划时代的任务,
指定授权标识和栅栏标志。 寻常 authorityKind: "award"
分支要求两个ID相等 awardId 并禁止追索证明 这个
authorityKind: "recovery_certificate" 分支需要 recoveryCertificateId
和要求两个身份证明相同;可选的恢复检查点
仅是结构元数据.
接受和拒绝每个名称裁决,并自封受让人发送人. 接受在结构上接受任何直接同行受众;所有者或证人 授权是状态的。 衰落在结构上是针对主人的. 两者 需要一个信封因果关系标识。 解决裁决与选定投标的因果关系 对已接受的奖状信封的因果反应 本地因子日记和状态 。 三个记录都装入信封 目标身份 目标身份.
| 外地 | 规则 |
|---|---|
| 拥有者时代 | 正安全整数; 在 1 用于此协议切片 |
| 指定日期 | 正安全整数;恢复权限需要划时代 2 或超过 |
| 裁决时限 | sentAt <= leaseStartsAt < acceptanceDeadline <= leaseExpiresAt <= workDeadline |
| 奖励窗口 | 接收窗口最多15分钟;最多24小时租赁;最多30天工作时间 |
| 裁决期满 | 最多两分钟 最迟不得晚于 acceptanceDeadline |
| 答复时间 | sentAt < acceptanceDeadline; 过期时间最长为两分钟并不迟于最后期限 |
这些只是结构性合同。 选择当前出价, 当前所有者 和修订、预算保留、接受的独特性、最后期限, 因果参考解决办法和恢复证书的接受均需 继续推迟.
工作进展、检查站和结果限制
执行记录自封受让人发送人,需要直接的同行受众 目标与工作项目的修订、接受的任务 身份证 时代 授权证和租约到期 每个记录都有稳定的域名 ID独立于信封信息ID.
| 外地 | 规则 |
|---|---|
| 拥有者时代 | 正安全整数; 在 1 用于此协议切片 |
| 转让具有约束力 | 积极时代; assignmentAuthorityId 财务报告和审定财务报表 fencingToken 必须是相同的标识符 |
| 进展 | 最多4 096个 UTF-8 字节的正序和非空摘要; 检查站 ID 是可选的 |
| 检查站 | 阳性序列、犬科SHA-256摘要和确切的1个摘要或参考 |
| 检查点父 | 顺序 1 省略父词; 后序需要不同的 previousCheckpointId |
| 结果 | 通用SHA-256摘要、可选检查站身份证和确切的1个摘要或参考资料 |
| 内容 | 摘要和参考文献不空,最多4 096个UTF-8字节 |
| 执行期满 | 最多五分钟,严格地说 sentAt 并且不迟于签名 leaseExpiresAt |
结构解析器不能证明因果关系解决匹配
已接受 work.accept,接收者是授权所有人、观察员或
证人,或指定、日期、权限、标志、租赁和检查站
头是现相. 它也不执行进度命令或结果
独一无二。 这些检查需要当地接受的州,并继续推迟到
mesh 运行时缩小边界 .
租赁期限
租赁续期带有公认的转让权加
leaseRenewalId, (中文(简体) ), leaseRenewalSequence 财务报告和审定财务报表 renewedLeaseExpiresAt编辑
现有 leaseExpiresAt 是目前限制交货的租约
时间戳是拟议继任者。 顺序 1 省略
previousLeaseRenewalId;后期序列需要不同的前身ID.
发件人自带 assigneePeerId观众是一个直接的同伴
目标ID等于有效载荷 目标ID,因果关系是
所需经费。 第一次被接受的续约解决了因果 work.accept; 较后
续约决定于前 lease.renew 信封为
那个接受者 接收者授权,确切的前身和顺序,
目前的任务和租赁、工作期限、目标期限/计算政策、,
终极状态和一能仍然是状态降低检查.
租赁接管限额
租赁接管提案具有公认的转让权,目前
租赁期满加马厩 takeoverProposalId它识别自定义
proposerPeerId,关闭 candidate 或者说 witness proposalAuthority,则
不同 proposedAssigneePeerId,准确的下一个宣布的转让
时代。 它不提出栅栏标志
稳定的身份 以后变成这个标志.
leaseRenewalSequence 实值 0 最初接受的租赁和省略
latestLeaseRenewalId数值 1 结束 100 需要稳定更新的ID.
原因决定了接受的 work.accept 顺序 0,或
最近已接受 lease.renew 接收证人的信封.
解析器执行关闭的字段, 角色一致性, 直接交付, 强制 因果关系、目标平等和1分钟TTL。 它没有确定 租赁负责人被接受或期满,追偿优待已过,提议人和 候选人符合条件,收件人是配置的证人,或者工作项目 是当前和非最终的。 这些检查需要当地州接受,并且 信任的接收时钟 。 有效的建议书只记录追偿意图;它确实 不推进时代,不授予执行权,不改变栅栏或保留地 预算.
租赁限额
租赁票是肯定的证人 认可接受收购
提议。 其封闭有效载荷包含一个稳定 leaseVoteId,逻辑
takeoverProposalId,自我约束 witnessPeerId 和目标标识。 这个
不重复候选人、工作项目、任务、租赁、划时代或围栏
字段;这些字段根据因果被接受的提议得到解决,以便两个字段
签名快照不能有异议 .
观众是直接对等,信封 目标ID等于有效载荷 目标身份、因果关系和TTL最多1分钟。 解析器 不确定因果关系名称匹配的被接受的提案 发送者属于其固定的证人组,接收者是恢复者 或证人尚未赞同关于 同一工作项目的修订和拟议划时代。 这些都是状态降低检查. 单凭投票不能推进划时代,改变栅栏,允许执行 授权,激活候选人或变化的预算.
租赁证书限额
一份租赁证明书被接受的收购建议和证人
投票证明它。 其封闭有效载荷包含一个稳定 certificateId, (中文(简体) ),
自定义 certificateAssemblerPeerId, (中文(简体) ), takeoverProposalId中间
和 32 类独 leaseVoteIds还有目标标识 它不重复
工程项目、任务、租赁、划时代或围栏场
提议是他们犬科的来源.
观众是直接对等,信封 目标ID等于有效载荷 目标编号、因果名称、提案信封和TTL最多一个 一分钟。 剖析者不能证明提案或表决被接受 投票支持同一提案 由不同的证人组成 或满足目标阈值,或装配者和接收者为 授权。 这些是状态降低检查.
接受状态后, certificateId 成为下一个任务
当局的身份证和栅栏标志, 工作物品进入回收。 这个
证书本身不授予执行权限或激活
候选人;这需要现有业主颁发的追偿奖
接受流动.
导入软件包时没有进行解析、密钥解析、网络或存储 操作.