@activeledger/nano-gateway

中文文档
5.2.0发布于 2026/11/06MITTypeScriptES Module近 30 天下载 2035

轻量级,允许的SSE + 读取纳米轻节点客户端的网关 - 与真正的Activeledger节点并列运行,直接的DB访问像活生生的hybrid,没有Activecore依赖性.

中文使用文档
文档目录6 节
  1. 为什么会这样
  2. 这里"允许"是什么意思
  3. 配置
  4. 路线
  5. 重新连接/ 恢复
  6. 在一个运行的节点旁边部署这个
Activeledger

@ actionledger/nano-gateway (英语)

轻量级, 允许的SSE + 读取网关 纳米 轻节点客户端.

为什么会这样

活动核心( E)@activeledger/activecore前为 packages/core,在 5.0.0 中被移除)是纳米最初计划的数据源,但它不是运行在devnet上 这是针对, 以及它的SSE控制器(controllers/sse.ts)写作反对节点生平 http.IncomingMessage编号 :ServerResponse API - (英语) res.setHeader(), (中文(简体) ), res.write(), (中文(简体) ), res.flushHeaders(), (中文(简体) ), req.socket.setTimeout()编辑 @activeledger/httpd 今天的轮船实际上是建立在 uWebSockets.js (通过阅读其出版物确认) lib/httpd.js,没有假设) - 路由处理器获得生uWS HttpResponse,它没有这些方法。 Activecore的SSE路径如果被引用来反对,会立即抛出. 这很可能是Activecore不可靠 独立于其他任何事物的真正和长期的原因.

这个包是一个小得多的,目的建造的替换, 仅仅满足纳米的需求: 一个被允许的SSE订阅端点, 而少数读取纳米的迷你-SPI需求. 它的模型直接打开 packages/hybrid - 通过 ActiveDSConnect与真正的节点并列.

这里"允许"是什么意思

任何人都能读(GET /api/stream/*, (中文(简体) ), POST /api/stream, (中文(简体) ), GET /api/tx/*)——分类账数据按设计公开,与Activecore工作方式不变. 只有 订阅/推倒通道 被锁定: 纳米必须在这个网关的许可名单上, 并且必须证明它持有其声称的身份的私人钥匙, 在它得到直播之前。 见 src/auth.ts。 。 。 .

握手:纳米标志 ${identity}:${timestamp} 带有自己的密钥(它在本分类账上已经登入的同一身份,并标出证明交易的 - 没有单独的密钥分配步骤)并发送 {identity, timestamp, signature} 在订阅请求正文中。 网关检查, 顺序为: 许可列表中的这个身份 - > 是时间戳新鲜度( 在 authWindowSeconds,反重放) - > 签名是否对公钥进行实际验证 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}他们自己活下来的 :stream 元文件 (单位:千美元)meta.authorities[].public- 不是把钥匙交给乐队的网关 撤销纳米只是从允许列表文件中去除.

Auth在POST身体中旅行,而不是头- @activeledger/httpd是因为 listen() 只向路由处理器转发一组固定的硬码头( 读取源头确认) , 并自定义 x-nano-* 信头永远不会到.

配置

第一次运行,一个 config.json (从) src/default.config.json和一个空的 nano-allowlist.json (单位:千美元)[])是在运行二进制的任何地方创建的。 在您将身份添加到许可列表之前, 无法连接 :

[
  { "identity": "abc123...", "label": "adam's phone", "addedAt": 1788000000000 }
]

密钥配置字段( E)config.json:

  • db.url 编号 : db.database - 说吧 你必须填这个. 指向同一数据存储所, 您的 Activeledger 节点已经使用( 它的自主机端口, 或它的 CouchDB 兼容商店的住址 ) 。 这个软件包并不知道 如何拖出一个数据存储本身,不像 activehybrid是因为 selfhost 选项 - 它意在与已经运行的节点一起运行.
  • host - 说吧 0.0.0.0:5270 默认。 如果 5270 与主机上的其他东西相撞.
  • nanoGateway.allowlist - 允许列表文件的路径 .
  • nanoGateway.authWindowSeconds - 默认 60。 。 。 .
  • nanoGateway.heartbeatSeconds - 默认 5。故意短:uWS的默认闲置超时为~10s没有套接字流量,远短于Activecore自己的10个分钟 SSE 心跳( 秒数 )packages/core/src/heartbeat.ts——这种不匹配是Activecore的SSE即使运行地点也不可靠的另一个独立可信的原因. 不先检查UWS闲置超时,不要提起这个.

路线

GET  /                       health check
POST /api/activity/subscribe SSE, permissioned - body: {identity, timestamp, signature, streamIds}
POST /api/stream              batch read - body: string[] of stream ids -> {streams: [...]}
GET  /api/stream/:id          single read -> {stream: {...} | null}
GET  /api/tx/:umid            transaction lookup -> {transaction: {...} | null}

/api/stream 财务报告和审定财务报表 /api/tx/:umid 为: 没有 与 Activecore 的等同物相兼容的电线 - 两者都有真正的bug 发现这个会话,同时在 Activecore 的实际源头上构建了纳米客户端(Activecore )getStream() 滴数 _id 从其通过逗号表达错误的反应中; findUmid() 命名其响应字段 umid 当值是整个交易,而不是一个 umid 字符串时。 新代码也没有继承. 纳米公司自己的客户端( U)@activenano/core是因为 MiniSpiClient编号 :TransactionResolver)写作反对 这个 包的合同.

重新连接/ 恢复

每个被推出的框架由它从下面产生的 DB 变化序列来编号( )id:{seq} 在SSE框架上,与Activecore的自有SSE相同. 一个客户端重新连接到一个 Last-Event-ID 头条恢复从该点开始的更改种子, 而不是在断开时忽略任何更改 - Last-Event-ID 是固定标题之一 @activeledger/httpd 与自定义的认证头不同的是,它必须经由车体。 没有标题( 或带有新流代码集的新订阅) 起始于 "now"和以前一样. @activenano/core是因为 NanoLedgerEvents 客户端会自动这样做 - 查看自己的 doc 注释 .

在一个运行的节点旁边部署这个

  1. npm install -g @activeledger/nano-gateway (一旦出版)或从源(npm run build,则 node lib/index.js) (中文(简体) ).
  2. 在与您节点相同的主机上运行,或者在网络接入节点真实数据存储器的任何地方运行. 第一次运行生成 config.json - 编辑 db.url编号 :db.database 在真正开始之前.
  3. 将核准的纳米身份添加到 nano-allowlist.json 因为他们是供养的.
  4. 显示端口( O)5270 默认情况下),与节点自身端口已经被曝光的方式相同——多克端口映射和nginx location 块代理到它( SSE 需要) proxy_buffering off; 和长 proxy_read_timeout - 标准nginx SSE配置, 而不是任何纳米门道特定.

一旦承诺并发布,它将用自己的本件作为自己的包出版(nano-gateway),因此它可以作为同节点在同一容器中进行的兄弟会过程来运行.

版本与发布记录

@activeledger/nano-gateway 共发布 39 个版本,首次发布于 2026/09/01;过去 12 个月发布了 39 个版本。

版本发布日期距今
5.2.0latest2026/11/061 天前
5.1.82026/11/062 天前
5.1.72026/11/044 天前
5.1.62026/11/035 天前
5.1.52026/11/025 天前
5.1.42026/10/317 天前

关于 @activeledger/nano-gateway 的常见问题

@activeledger/nano-gateway 是什么?

轻量级,允许的SSE + 读取纳米轻节点客户端的网关 - 与真正的Activeledger节点并列运行,直接的DB访问像活生生的hybrid,没有Activecore依赖性.

如何安装 @activeledger/nano-gateway?

在项目目录运行 npm install @activeledger/nano-gateway,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 nano-gateway,可以用 npx nano-gateway 直接运行。

@activeledger/nano-gateway 支持 TypeScript 吗?

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

@activeledger/nano-gateway 支持 ESM 还是 CommonJS?

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

@activeledger/nano-gateway 需要什么版本的 Node.js?

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

@activeledger/nano-gateway 可以商用吗?

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

@activeledger/nano-gateway 的下载量有多少?

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

@activeledger/nano-gateway 还在维护吗?

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