@dnsid-ai/protocol

中文文档
0.37.0发布于 2026/11/12Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 8094

DNSid协议核心合同,TXT记录解析,JWKS验证,以及身份验证引擎.

中文使用文档
文档目录5 节
  1. 责任
  2. 安装
  3. 示例
  4. 核查的背景和限制
  5. 高价值业务日志检查

校对:soup

DNSid TypeScript包的协议核心.

需要DNSid协议引擎和合同时使用此软件包,而无需运行时间特定的默认.

责任

  • IdentityManager
  • DNSid TXT 记录解析、验证、序列化和条形化
  • JWKS 验证和 JWK 拇指印
  • 协议数据类型和严格的协议状态验证
  • DNS、取取、缓存、密钥提供者和日志合同
  • 常见的 DNSid 错误和校验原始

这个包有意不包括节点DNS/HTTPS运输,本地文件系统密钥存储,环境可变加载,登记册特定生命周期行为,或配置特定方便.

安装

npm install @dnsid-ai/protocol

示例

import { IdentityManager } from '@dnsid-ai/protocol';

// config is data only; runtime objects are injected as dependencies.
const idm = new IdentityManager(
  {
    identity,                                  // omit for a verification-only manager
    verification: { dnssecMode: 'required', trustedEntities: [{ governanceId: 'agent.example' }] },
  },
  { keyProvider, entityKeyProvider, logRegistry, dnsResolver, cache, fetchJson },
);

verification.trustedEntities 是一个可选的对手许可列表, 请检查每个 verifyDomain 在协议验证后返回(包括缓存点击)。 条目匹配 已核实的记录治理 ID 准确; 可选 entityKeyThumbprints 针入 当前记录签名密钥。 允许它不作出接受的决定; [] 否认一切 A 类 拒绝提出 VerificationError 有代码 CounterpartyNotAccepted 只携带 观察 verifiedGovernanceId编号 :verifiedEntityKeyThumbprint。 。 。 .

核心没有默认的 DNS 或 HTTPS 执行, 因此 config.transport 设置是 在此拒绝; 使用 @dnsid-ai/sdk/node用来消化它们的缺省.

对于工程学节点默认值,使用 @dnsid-ai/sdk/node 与 @dnsid-ai/transport。 。 。 .

核查的背景和限制

verifyDomain(domain, peerCert?, { timeoutMs?, signal? }) 还有30秒 整个操作默认值。 每个联合呼叫者保留其最后期限;共享 身份工作也有一个30秒的上限,当其最后一个呼叫者离开时被取消. DNS,HTTPS重定向,生命周期证据分担其余预算. 喷出溶液 取取器 和日志工厂必须尊重 提供的信号, 保持信任配置不变,并在分配前将其回复绑定. 本地系统 DNS 工作可能会在平台的有限背景下完成 解析器重试限制; 已取消的校验不进行, 也不填充缓存 . TXT 输入限制为 65 535个字符 1, 024个块; JWKS 和状态获取 分别要求 256 KB 和 16 KB 限制 .

被注入的缓存被每个管理器命名空格,从未单独被域共享. 配置和日志方法选择在构建时被快照; 使用 a 更改了信托政策的新经理。 DNS的过期期从寻找开始, 未完成核查。 状态刷新从不扩展, 0- TTL 答案 永远不再重复使用,在返回前检查DNS/TLS/键龄界限.

refreshDomain(domain, peerCert?, options?) 进行完整的核查,不 重新使用缓存身份或失败后退后。 同时刷新 共享获取,但每个呼叫者仍然通过对等和验收检查. 注射JSON采集器和木工厂必须尊崇 revalidate: true 通过绕行 本地缓存并重新验证上游证据。 DNS 答案保留其正常的 TTL. 旧的飞行中检查无法覆盖成功的刷新 .

高价值业务日志检查

verifyDomain() 验证对每个身份具有约束力的双边出版物。 若为 经核实的记录广告 fl=logchk,申请必须附加 在依赖身份之前进行当前不撤销检查 它分类为高值或不可逆:

const verified = await idm.verifyDomain('agent.example');
if (verified.requiresLogCheck()) {
  const evidence = await verified.verifyNonRevocation();
  console.log(evidence.logReference, evidence.freshnessTime);
}

业务分类仍然是应用政策。 打电话 verifyNonRevocation() 不论当地政策公布的旗帜如何 需要它来。 返回的证据确定已核实的历史界限、完整性 (a) 机制、检查站和新鲜度边界; 无法提供日志或陈旧证据的检查失败.

版本与发布记录

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

版本发布日期距今
0.37.0latest2026/11/121 天前
0.36.02026/11/112 天前
0.35.02026/11/066 天前
0.34.02026/10/3014 天前
0.33.02026/10/2815 天前
0.32.02026/10/2716 天前

关于 @dnsid-ai/protocol 的常见问题

@dnsid-ai/protocol 是什么?

DNSid协议核心合同,TXT记录解析,JWKS验证,以及身份验证引擎.

如何安装 @dnsid-ai/protocol?

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

@dnsid-ai/protocol 支持 TypeScript 吗?

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

@dnsid-ai/protocol 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dnsid-ai/protocol 可以商用吗?

@dnsid-ai/protocol 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dnsid-ai/protocol 的下载量有多少?

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

@dnsid-ai/protocol 还在维护吗?

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