# @bsv/overlay-express 中文文档

规范地址：https://npmcn.com/package/%40bsv/overlay-express/

版本：2\.8\.0
npm 元数据更新时间：2026-10-28T01:34:36.204Z
中文译文更新时间：2026-11-08T17:27:50.108Z
软件包许可：SEE LICENSE IN LICENSE\.txt

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

原始 npm 页面：https://www.npmjs.com/package/%40bsv/overlay-express
原文对照：https://npmcn.com/package/%40bsv/overlay-express/?lang=original
项目主页：https://github.com/bsv-blockchain/ts-stack/tree/main/packages/overlays/overlay-express#readme
源码仓库：https://github.com/bsv-blockchain/ts-stack

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

- 包体积（解压后）：2 MB，334 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：11 个
- peer 依赖：@bsv/sdk ^2\.4\.0 \|\| ^3\.0\.0 \|\| ^4\.0\.1
- 首次发布：2024-12-01T03:15:29.329Z
- 最新版本发布：2026-10-28T01:34:35.730Z
- 近 30 天下载量：8599（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：84（近 12 个月 25 个）

## 中文简介

BSV 块链叠加快车

## 安装

```sh
npm install @bsv/overlay-express
```

也可以使用：`pnpm add @bsv/overlay-express`、`yarn add @bsv/overlay-express`、`bun add @bsv/overlay-express`

## README

# 重叠快递

BSV BLOCCHAIN QQ 重叠快车

有意见但可配置的重叠服务部署系统:

-   给定本地端口的 HTTP 使用快取
-   只需私人密钥和主机 URL 即可设置
-   按您想要的方式导入和配置您的话题管理器
-   添加查询服务, 为 Mongo 和 Knex 提供简易工厂
-   执行可配置的网络用户界面,向世界显示您的自定义覆盖服务
-   使用所有服务的通用Knex/SQL和Mongo数据库提高效率
-   支持 SHIP, SLAP,以及 GASP 同步出框( 或者可以禁用)
-   本地支持Arc召回生产( 或本地开发时为简单而禁用)
-   支持Arcade-First广播/防弹检查,Arc倒背广播, 链轨头验证、 BASM 重置流线和活动 监测驱动维护

内建的发现外溢探测器使用最多1000行的确定性页. 已配置的引擎结果上限和排外溢出错误仍在执行,包括标准和高通量配置.

发行候选人将包装的重叠依赖推进到支持可选保留录取历史. 这个软件包保留了它现有的行为,不能自动保留历史. 不需要消费者或数据库迁移.

可选 `@bsv/overlay-express/private-publication` 已核实条目曝光 通过共享的BRC-103/104获得私营出版商地位 认证实例 。 提供同样的持久服务和披露所有人; 在通用解析器和响应转换前挂起 。 检查原件 选中项和当前记录授权在签名后再次发送, 仅发送边框 公共预测和固定错误,并通过 默认。 它从不自动挂载或安装支付处理器. 见 [私人出版指南](https://npmcn.com/docs/guides/verified-private-publication.md)。 。 。 .

## 要求和安装

未公布的2.8.0名候选人还提供了可选条件 `@bsv/overlay-express/root-eviction-response` 伴侣 用中间器件2.3.0, SDK 3.3.0和一个共享根日记, `guardRootAdvertisementResponse` 检查当前 访问和每次在签名后披露的广告并排队 HTTP 在日记门下的反应。 全部答复改为: 单独授权签名重置。 在水合物和 提供完整的目标库存和安全控制反应头。 这个 [基础协调指南](https://npmcn.com/docs/guides/root-eviction-coordination.md) 解释储存、政策和全程一体化义务。 现有路线 不变; 导入此伴奏无法启用 BRC-199 配置 .

可选 `@bsv/overlay-express/root-eviction` 条目构成共享 `RootEvictionService` 带有精确认证的请求/状态路线。 它保存着 收到UTF-8字节限制并检查观察到的修订和当前访问 在寄件和 HTTP 签名后再次在本地排队。 常规前挂载 解析相同来源的认证中间软件和耐用日记. Creditive-free 通配符 CORS 是默认; 确切的出处是选入. 没错 不发布能力或安装决策调度器或服务适配器. 打电话 `configureRootEviction` 在此之前 `start()` 为当地东道方融合服务。 这个 配置的根身份必须匹配服务器钱包; root, 认证的查找 和管理员路线共享认证和主机请求能力。 关闭根 起源继承了主机的边缘策略,字节限制不能超过主机限制. 注入的日记和工人保留应用程序的所有权。 见根 安装和剩余债务的协调指南.

可选的查询路由器和 `configureOutputLookup` 接受结构 `disclosure` hTTP 签名后进行最后的当前会话检查. `LookupResponseDisclosure` 从 `@bsv/output-knowledge/lookup` 组成端口 带有持久 SQLite 会话. 它可以替换一次不合格数据响应 带有新授权的签名错误,或在控制时关闭无机 访问被拒绝。 选择此选项会保留已有的行为 。 见 [耐用查找指南](https://npmcn.com/docs/guides/durable-live-lookup.md#check-again-after-signing) 共享写作门、现行政策、实际工作和召回义务.

重叠快车需要节点.js 22或更新并单独安装 `@bsv/sdk` 相对依赖.

```bash
npm install @bsv/overlay-express @bsv/sdk
```

该套件提供了与无害环境管理和共同JS的切入点相匹配的组合 具体条件的声明:

```ts
import OverlayExpress, { OverlayMonitor } from '@bsv/overlay-express'
```

```js
const { default: OverlayExpress, OverlayMonitor } = require('@bsv/overlay-express')
```

5条公共BASM JSON POST路线验证非负安全整形高地 (包括已存在的数字字符串),32字节十六进制散列/xids,以及 请求计数限制。 空的原始交易请求仍然有效; 复合 证明请求需要 txid 。 原始交易路线不需要 `x-bsv-topic`缺少引擎/存储BASM能力保留了HTTP 400 `{ status: 'error', message, code: 'BASM_UNSUPPORTED' }`. CORS,准入规则, 配置限制,自动同步默认不变.

注入的话题锁定头解析器可能额外返回 `blockTransactionCount` 独立获得的同一峡谷块 散货 现有的链轨/提供者适配器仍然只有头;它们不 声称这种较强的立场证据。 见核心引擎的 [BASM 验证和回收限额](https://npmcn.com/package/%40bsv/overlay/README.md#basm-peer-validation-and-current-recovery-limits)。 。 。 .

GASP 路由失败使用已配置的日志并将已丢入的值序列化 单项逃出字段,在不允许请求的情况下保留诊断上下文 用于伪造更多日志记录的内容。 HTTP出错反应保持不变.

## 示例使用

这里有一个简单的例子:

```typescript
import OverlayExpress from '@bsv/overlay-express'
import dotenv from 'dotenv'
dotenv.config()

// Hi there! Let's configure Overlay Express!
const main = async () => {
  // We'll make a new server for our overlay node.
  const server = new OverlayExpress(
    // Name your overlay node with a one-word lowercase string
    `testnode`,

    // Provide the private key that gives your node its identity
    process.env.SERVER_PRIVATE_KEY!,

    // Provide the public FQDN without a scheme (for example, overlay.example)
    process.env.HOSTING_FQDN!
  )

  // Decide what port you want the server to listen on.
  server.configurePort(8080)

  // Public CORS is the default so wallet UIs and mobile-backed web apps can
  // call the protocol from previously unknown domains. Deployments with a
  // closed caller set can opt into exact origins and customize the UI CSP.
  server.configureEdgePolicy({
    allowedOrigins: process.env.OVERLAY_CORS_ALLOWED_ORIGINS?.split(','),
    securityHeaders: {
      contentSecurityPolicy: process.env.OVERLAY_CONTENT_SECURITY_POLICY
    }
  })

  // Connect to your SQL database with Knex
  await server.configureKnex(process.env.KNEX_URL!)

  // Also, be sure to connect to MongoDB
  await server.configureMongo(process.env.MONGO_URL!)

  // Here, you will configure the overlay topic managers and lookup services you want.
  // - Topic managers decide what outputs can go in your overlay
  // - Lookup services help people find things in your overlay
  // - Make use of functions like `configureTopicManager` and `configureLookupServiceWithMongo`
  // ADD YOUR OVERLAY SERVICES HERE

  // For simple local deployments, sync can be disabled.
  server.configureEnableGASPSync(false)

  // Production deployments should configure at least one transaction
  // propagation provider. Arcade can be used as the primary provider with Arc
  // as a fallback. A callback token is required before /arc-ingest is enabled.
  server.configureArcade(process.env.ARCADE_URL!, {
    apiKey: process.env.ARCADE_API_KEY,
    deploymentId: process.env.ARCADE_DEPLOYMENT_ID,
    chaintracksApiPrefix: '/chaintracks/v2'
  })
  if (process.env.ARC_API_KEY) {
    server.configureArcApiKey(process.env.ARC_API_KEY)
  }
  if (process.env.ARC_CALLBACK_TOKEN) {
    server.configureArcCallbackToken(process.env.ARC_CALLBACK_TOKEN)
  }

  // Chaintracks-compatible services provide block headers for BASM and can
  // stream reorg notifications. Arcade exposes go-chaintracks under
  // /chaintracks/v2.
  server.configureChaintracks(process.env.CHAINTRACKS_URL ?? process.env.ARCADE_URL!, {
    apiPrefix: '/chaintracks/v2',
    reorgStream: true,
    scanDepth: 3
  })

  // TerraTestNet nodes additionally select TTN. WhatsOnChain does not serve
  // this network, so configureChaintracks() (or an explicit ChainTracker) is
  // required before engine initialization.
  // server.configureNetwork('ttn')

  // Lastly, configure the engine and start the server!
  await server.configureEngine()
  await server.start()

  // Stop accepting work, stop background synchronization, and close the SQL
  // and MongoDB clients during process or embedding-runtime shutdown.
  const shutdown = async () => {
    await server.close()
  }
  process.once('SIGTERM', () => void shutdown())
  process.once('SIGINT', () => void shutdown())
}

// Happy hacking :)
main()
```

## 完整 API 文档

检查出来 [API.md (英语)](https://npmcn.com/package/%40bsv/overlay-express/API.md) aPI 文档.

## 其他特征

### 公共 HTTP 边缘政策

重叠节点为公共协议服务. 没有CORS配置, 重叠Express 返回 `Access-Control-Allow-Origin: *` 绝不允许 饼干证书。 设定 `OVERLAY_CORS_MODE=allowlist` 准确 `OVERLAY_CORS_ALLOWED_ORIGINS`,通过 `allowedOrigins` 改为 `configureEdgePolicy`,或使用 `OVERLAY_CORS_MODE=disabled` 为故意 关闭浏览器表面 .

`configureEdgePolicy` 也控制 JSON/二进制身体限制,每个进程 货币,节点HTTP超时,CSP等安全头. 环境 覆盖在 `.env.example`. 协议认证,管理员 仍然需要认证、召回符和输入验证 无论CORS模式.

CSP适用于这一过程所送达的文件;它不批准或拒绝API 召来者. 独立配置UI CSP和API COORS. 认证的交叉来源 请求需要准确的允许来源,决不能与 通配符来源.

打电话 `await server.close()` 在关闭期间。 这是天分,关闭 HTTP收听器,BASM维护计时器,再接回流,克能克克斯,和蒙戈DB.

Janitor, Arcade, 链轨, 重置电流, 并监视输出的连接 接受无证书的公共 HTTPS, 将解析后的公共地址精确到 源代码,不默认跟踪方向。 响应信头和流线 机构受时间限制. `allowPrivateHosts: true` 允许 HTTP 和 私人目标只针对明确孤立的地方发展;从未将目标结合起来 拥有生产证书。 选入必须是文字布尔 `true` 内 两者 `OverlayExpress` 配置和直接导出供应商构造器; 供应商证书和自定义信头在 构造,所以后来的调用器突变不能改变网络权威.

重置SSE流只是加速提示. 每一个报告的孤儿 块将降级到已承认状态的选项与配置 突变前的犬形头部解析器,以及缺失或仍然匹配 canonical header 关闭失败 。 溪流在被限制的闲置后重新连接 间隔和每次重接时,都会进行正常的再验证扫描,因为 上游流没有回放光标 .

行政页面为无记名UI. 它使用每个响应的非CSP, 将服务文件进行消毒,只装入精确版本 完整性固定显示库。 它不下载钱包 SDK 运行时间。 所提供的行政无记名证必须是独立的 生成至少 32 个 UTF-8 字节的随机秘密; 省略时, OverlayExpress 生成一个。 钱包相互认证仍然为直接管理API提供支持 客户端配置了服务器管理员身份密钥 .

### 高级引擎配置

我们采用了一种新的方法, `configureEngineParams`,这样您就可以将高级配置选项传递到基本的重叠引擎。 这里有一个例子:

```typescript
server.configureEngineParams({
  logTime: true,
  throwOnBroadcastFailure: true,
  overlayBroadcastFacilitator: new MyCustomFacilitator()
})
```

`throwOnBroadcastFailure` 仍应保留 `true` 对于大多数生产覆盖。 与 配置了供应商链广播,这意味着交易没有承诺 覆盖状态, 除非至少有一个提供者接受或返回已知的状态 成功吗? 准备吧 `false` 仅用于当地特意脱机/脱机工作流程 在不进行目前的网络传播的情况下,可以进行覆盖式接收.

### 交易传播供应商

重叠快递可以构成多个交易传播和证明来源:

```typescript
server.configureArcade('https://arcade-v2-us-1.bsvblockchain.tech', {
  apiKey: process.env.ARCADE_API_KEY,
  deploymentId: 'my-overlay-node',
  chaintracksApiPrefix: '/chaintracks/v2'
})

server.configureArcApiKey(process.env.ARC_API_KEY!)
server.configureArcCallbackToken(process.env.ARC_CALLBACK_TOKEN!)

server.configureChaintracks('https://arcade-v2-us-1.bsvblockchain.tech', {
  apiPrefix: '/chaintracks/v2',
  reorgStream: true,
  scanDepth: 3
})
```

-   `configureArcade` 将街机登记为第一选择的广播机和证据 寻取供养.
-   `configureArcApiKey` 将标准Arc广播机登记为倒置.
-   `configureArcCallbackToken` 为了实现 `/arc-ingest`; 输入 回调时必须显示预期的符号为 `Authorization: Bearer ...` 或者说 `x-callback-token`使用至少32个独立的高强度秘密 UTF-8 字节( 偏好 256 个随机比特), 远离 URL 和日志, 然后旋转 作为证书。 短、 有控制或白空加值 拒绝.
-   `configureChaintracks` 为块配置相容的链路服务 头部查找,BASM主播头部解析,可选重置SSE.

发送到 `/arc-ingest` 被归类为成功的证据, 终端无效,双重开支,或瞬态状态。 双笔和其他 终端无效状态从已接受的交易中删除受影响的交易 覆盖状态, 因此查询层不会继续服务网络拥有的数据 拒绝。 只有在Merkle路径包含 同意索赔的高度,并肯定地核实 对已配置的链式跟踪器.

重置 SSE 适配器将每个事件视为状态批判:一个畸形的事件或 处理器故障关闭溪流, 重新连接, 并运行追赶重验证 在以后的事件被消耗之前。 它将框架和孤儿设定并拒绝 重复或畸形散列而不是跳过事件的一部分.

### 巴哈马 还有未经证实的维护

BASM是选入的,因为它需要直接证明和块头解析:

```typescript
server.configureEnableBASMSync(true)
server.configureBASMBlockPollInterval(10 * 60 * 1000)
server.configureUnprovenMaintenance({
  intervalMs: 60 * 60 * 1000,
  thresholdBlocks: 144
})
```

配置时, 未验证的维护先尝试配置的证明提供者 用于未证实超过阈值的交易。 只有交易 仍然无法证明是被驱逐的。 运算符也可以手动通过 行政终点如下.

### 注册其他路由器

`registerRouter(path, factory)` 在服务器内挂载自己的路由器。 工厂经营 期间 `start()`,在BRC-103认证中间软件之后,在管理员路线和 404处理器,所以路由器继承了CORS,正体剖析,响应大小限制,以及 `req.auth.identityKey`。没有 BRC-103 信头的请求随 `req.auth.identityKey` 等于 `'unknown'`;需要认证的路径必须拒绝。 打电话之前 `start()`。 。 。 .

```ts
server.registerRouter('/', ({ engine, wallet }) => {
  if (wallet === undefined) throw new Error('A server wallet is required')
  const router = express.Router()
  router.get('/status', (_req, res) => res.json({ ok: true }))
  return router
})
```

这个 `wallet` 上下文为 BRC-103 认证钱包。 它没有储存 提供商,所以它会标出并验证但不能创造或内部化的动作: `createAction` 财务报告和审定财务报表 `internalizeAction` 掷出. 一个接受付款的路由器,例如BRC-178主机 `@bsv/eqc`, (中文(简体) ), 必须从与服务器相同的根密钥中构建自己的存储后背钱包,以便其 身份等于 BRC-103 会话密钥和 SLAP 广告密钥.

已注册路由器继承响应大小限制( R)`MAX_RESPONSE_BYTES`: 4个米B `small` 配置文件, 8 MiB 打开 `standard`) (中文(简体) ). 一个更大的JSON身体在操作员跑后被413所取而代之,所以 在回答之前支付的路由器必须将其自己的响应绑定在这个限度以下.

### 行政保护终点

我们还为先进的行动提供行政保护终点,如人工操作 同步广告,启动GASP/BASM同步,运行未经证实的维护, 驱逐特定的出入口, 并管理清洁工。 这些终点需要 手持证相. 您可以在构造器中提供自定义符号 `OverlayExpress`,或通过调用获取自动生成的符号 `server.getAdminToken()`. 经认证和拒绝的行政答复 以 `Cache-Control: no-store` 财务报告和审定财务报表 `Pragma: no-cache`; 维护 在任何反向代理中执行政策。 SHIP/SLAP记录搜索是一种有界限的文字搜索, 不是一个调用用户提供的 MongoDB 正则表达式, 并且只接受 pagination 精确正整数(加上文件 `-1`编号 :`unlimited` 限制表).

共同管理端点 :

-   `POST /admin/syncAdvertisements`
-   `POST /admin/startGASPSync`
-   `POST /admin/startBASMSync`
-   `POST /admin/refreshUnprovenProofs`
-   `POST /admin/evictUnproven`
-   `POST /admin/maintainUnproven`
-   `POST /admin/evictOutpoint`
-   `POST /admin/janitor`

### 卫生终点

重叠快车现在暴露出三个健康终点:

-   `GET /health/live`:用于进程级检查的仅活性状态.
-   `GET /health/ready`: Overlay 引擎, Knex 和 MongoDB 等关键依赖的准备状态.
-   `GET /health`:完整内容报告,结合活性,准备状态,服务元数据,以及任何已注册的自定义检查.

您可以附加额外的应用程序识别检查和上下文 :

```typescript
server.configureHealth({
  // Details and context are public only when deliberately enabled.
  includeDetails: true,
  contextProvider: async () => ({
    deployment: 'cars-project-backend',
    network: process.env.NETWORK
  })
})

server.registerHealthCheck({
  name: 'custom-cache',
  critical: false,
  handler: async () => ({
    status: 'ok',
    details: { warmed: true }
  })
})
```

健康细节和上下文默认被禁用,因为终点是 公开和组件细节可能披露部署地形。 明确 启用细节/文本对象为 JSON 序列化、大小限制和主题 到配置的 1–60,000 ms 检查截止日期。 所有健康反应都有标记 `no-store`门卫服务也理解富人 `/health` 回应 格式,因此现有的 Ship/SLAP 健康验证仍然兼容.

### 重叠监视器

`OverlayMonitor` 提供可重复使用的工人,用于监测重叠快件查询 行为,并在配置了管理员符后,运行维护动作. 已配置 `/lookup` 对任何重叠快递部署的探测器,措施 响应大小, 解析返回的 BEEF, 并报告是否响应输出 交易有直接的默克勒证明或正在提供更深入的证据 祖师相传.

计划通过部署作为长期监测程序或分组安排来进行。 它没有与具体的部署平台挂钩.

```typescript
import { OverlayMonitor } from '@bsv/overlay-express'

const monitor = new OverlayMonitor({
  intervalMs: 24 * 60 * 60 * 1000,
  targets: [
    {
      name: 'example-overlay',
      baseUrl: 'https://overlay.example',
      probes: [
        {
          name: 'example-topic',
          service: 'ls_example',
          query: { topic: 'tm_example' },
          maxOutputs: 20
        }
      ],
      maintenance: {
        adminToken: process.env.OVERLAY_ADMIN_TOKEN,
        startBASMSync: true,
        maintainUnproven: {
          thresholdBlocks: 144
        },
        janitor: true
      }
    }
  ],
  onReport: async report => {
    console.log(JSON.stringify(report.summary))
  }
})

monitor.start()
```

维护请求与探测器一起报告,以便操作人员能够发出警报 与检查/防形状警告分开处理。 显示器 每个探测器默认时最多分析100个返回的BEEF输出,并在 每个响应最多64个米B; 调 `maxAnalyzedOutputs` 财务报告和审定财务报表 `maxResponseBytes` 当部署需要不同的上限时. `maxOutputs` 可以设置 更小的每个测试分析上限.

## 发展

从寄存器根 :

```bash
pnpm --filter @bsv/overlay-express format:check
pnpm --filter @bsv/overlay-express lint
pnpm --filter @bsv/overlay-express typecheck
pnpm --filter @bsv/overlay-express test
pnpm --filter @bsv/overlay-express test:coverage
pnpm --filter @bsv/overlay-express test:live
pnpm --filter @bsv/overlay-express pack:check
```

包检查为 Overlay Express 构建本地包装的放行对象 及其工作空间重叠的依赖关系,然后用 npm 沥青球验证 publint,严格类型的分辨率,以及清洁的无害环境管理/共同JS消费者项目. `test:live` 单独核查无终点的公共拱廊/Chaintracks 私人证书;是预定/释放的证据,而不是决定性公关 覆盖.

## 许可证

当前 TS Stack 更改根据 Open BSV 许可证版本 6 获得许可; 参见 [LICENSE.txt (英语)](https://npmcn.com/package/%40bsv/overlay-express/LICENSE.txt)。该软件包还保留了统一前代码 在开放BSV许可证版本4下. 补给者必须保留 [第三次议会 NoTICES.md](https://npmcn.com/package/%40bsv/overlay-express/THIRD_PARTY_NOTICES.md) 和适用的文本在 [`LICENSES/`](https://npmcn.com/package/%40bsv/overlay-express/LICENSES/)。 。 。 .

感谢您参与BSV区块链重叠快车项目. 让我们一起打造BSV区块链的未来!

## 可选的进步和现场调查

打电话 `configureOutputLookup` 在此之前 `start`,或导入 `createOutputLookupRouter` 从 `@bsv/overlay-express/output-lookup` 独立快递的构成。 这个 新的适配器需要SDK 3.3.0 耐用提供者伴机,签名匹配 能力显示、当前授权和明确的浏览器来源。 这个 常规根仅在启用时加载此适配器 。 现有的有限查询路线 而默认启动保持不变.

主机共享其认证实例, 验证服务钱包身份 并贴出广告 字节预算到其现有的边缘极限。 供应商存储 生命周期仍由呼叫者负责。 见 [提供者指南](https://npmcn.com/docs/guides/durable-live-lookup.md) 用于初始化,精确的再试恢复, 披露守护,多程序唤醒, 保留和独立的路由器命令 。 候选人未公布 完成BRC-192-199的整合仍符合资格.

## 可选经认证的建议

`configureProposals` 在此之前 `start` 或单独的 `@bsv/overlay-express/proposals` 路由器是耐用建议服务, 服务拥有的披露验证器和共享的日记/内存门. 本条目需要 SDK 3.3.0 和 认证中件 2.3; 遗留的根对等层 路线保持不变。 读取的当前信道不同于回收 保留出版物ACK。 两者均需当前授权和原件 合同在答复签署后具有约束力。 一个消毒替换错误可能是 签名,在本地排队前需要独立检查控制许可.

主机共享认证和手握所有权 与浏览/根相伴, 通过结算、夹子字节限制和 继承主机 CORS 政策,除非明确推翻。 储存能力 出版物、经核实的恢复、期满和入境工作人员仍然是东道主. 见 [建议书指南](https://npmcn.com/docs/guides/non-final-proposals.md) 组成和回收合同.

### 私人购置和出版

明确 `configurePrivateAcquisition` 财务报告和审定财务报表 `configurePrivatePublication` 方法 以主机的单一认证组成已安装的私人服务 钱包/会话。 出版物名称空间之前的私人收购路线 倒背和普通身体剖析器 默认的公用CORS政策仍然存在 无证书;保留了明确的起源和主机字节天花板. 获取配置的听众单独选择一个有边框的 128-KiB HTTP 标题 bRC-105付款证据的备抵。 独立应用程序可以导入 `createPrivateAcquisitionRouter` 从 `@bsv/overlay-express/private-acquisition`。 。 。 . 应用程序拥有耐用保管、权限、钱包回收和工人 关闭。 见 [购置和回收](https://npmcn.com/docs/guides/private-acquisition-recovery.md) 构成、原始义务语义、付款/回收请求和 代理限制 。 这些选入配置需要新的 SDK 输出 API; 遗留启动 保留其支持的SDK地板.

### 公约采购伙伴

`configurePrivatePurchase` 或可选 `@bsv/overlay-express/private-purchase` 路由器增加了拟议的BRC-196 `/overlay/v1/purchases/prepare`, (中文(简体) ), `/submit` 财务报告和审定财务报表 `/recover` 业务 配置了基础路径 。 使用共享主机认证钱包, 准确 选定能力和本地实物披露所有人。 《公约》规定的付款 在独立验证的交易中发生; 这些路径拒绝 HTTP 付款头,不采用第二次BRC-105收费.

采购、购置和出版共用一个握手所有人并保存 普通类 `/submit`/寻找行为,要求天花板和无证书的CORS. 该应用程序拥有原始的保护保管,全域/释放验证 并停止/裁员协调员,然后关闭其本土领域。 见 [购买权](https://npmcn.com/docs/guides/private-purchase-custody.md) 联 合 国 组件边界和其余端到端的资格要求.

## SDK4 热补丁对等要求

SDK4 对等替代开始于 `@bsv/sdk ^4.0.1`,恢复数字 钱包结果和遗留线条相容性。 现有的SDK2/3替代品和 下限不变。 SDK4 用户应安装 4. 0.1 个热补丁; 不 需要应用程序-wallet线或数据迁移.

## 常见问题

### @bsv/overlay-express 是什么？

BSV 块链叠加快车

### 如何安装 @bsv/overlay-express？

在项目目录运行 npm install @bsv/overlay-express，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@bsv/sdk（^2\.4\.0 \|\| ^3\.0\.0 \|\| ^4\.0\.1）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bsv/overlay-express 支持 TypeScript 吗？

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

### @bsv/overlay-express 支持 ESM 还是 CommonJS？

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

### @bsv/overlay-express 需要什么版本的 Node\.js？

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

### @bsv/overlay-express 可以商用吗？

@bsv/overlay-express 使用 SEE LICENSE IN LICENSE\.txt 许可。许可条款写在包内的独立文件中，请阅读该文件确认可否商用。以上为概括，不构成法律意见，请以许可原文为准。

### @bsv/overlay-express 的下载量有多少？

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

### @bsv/overlay-express 还在维护吗？

最新版本 2\.8\.0 发布于 2026/10/28（11 天前）；至今共发布 84 个版本，其中过去 12 个月发布了 25 个；首次发布于 2024/12/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

