# @activeledger/nano-gateway 中文文档

规范地址：https://npmcn.com/package/%40activeledger/nano-gateway/

版本：5\.2\.0
npm 元数据更新时间：2026-11-06T07:09:29.726Z
中文译文更新时间：2026-11-07T06:36:06.004Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40activeledger/nano-gateway
原文对照：https://npmcn.com/package/%40activeledger/nano-gateway/?lang=original
项目主页：https://github.com/activeledger/activeledger
源码仓库：https://github.com/activeledger/activeledger

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：77.8 kB，77 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：5 个
- 首次发布：2026-09-01T12:13:09.511Z
- 最新版本发布：2026-11-06T07:09:29.546Z
- 近 30 天下载量：2035（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：39（近 12 个月 39 个）

## 中文简介

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

## 安装

```sh
npm install @activeledger/nano-gateway
```

也可以使用：`pnpm add @activeledger/nano-gateway`、`yarn add @activeledger/nano-gateway`、`bun add @activeledger/nano-gateway`

## README

![Activeledger](https://raw.githubusercontent.com/activeledger/activeledger/master/docs/assets/Asset-23.png)

# @ actionledger/nano-gateway (英语)

轻量级, 允许的SSE + 读取网关 [纳米](https://github.com/activeledger/nano) 轻节点客户端.

## 为什么会这样

活动核心( 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` (单位:千美元)`[]`)是在运行二进制的任何地方创建的。 在您将身份添加到许可列表之前, 无法连接 :

```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 是什么？

轻量级,允许的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 和提交记录判断。

