# @dappnode/dappnodesdk 中文文档

规范地址：https://npmcn.com/package/%40dappnode/dappnodesdk/

版本：0\.3\.56
npm 元数据更新时间：2026-11-10T10:20:18.797Z
中文译文更新时间：2026-11-11T11:40:29.499Z
软件包许可：GPL-3\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dappnode/dappnodesdk
原文对照：https://npmcn.com/package/%40dappnode/dappnodesdk/?lang=original
项目主页：https://github.com/dappnode/DAppNodeSDK#readme
源码仓库：https://github.com/dappnode/DAppNodeSDK

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

- 包体积（解压后）：1.1 MB，673 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.13\.0
- 运行依赖：26 个
- 首次发布：2018-09-08T21:54:20.106Z
- 最新版本发布：2026-11-10T10:20:18.338Z
- 近 30 天下载量：2692（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：173（近 12 个月 5 个）

## 中文简介

dappnodesdk是使新 dappnode 软件包的创建尽可能简单化的工具. 它有助于初始化并在乙烷区块链中发布

## 安装

```sh
npm install @dappnode/dappnodesdk
```

也可以使用：`pnpm add @dappnode/dappnodesdk`、`yarn add @dappnode/dappnodesdk`、`bun add @dappnode/dappnodesdk`

## README

# DAPP 节点SDK

达普诺德SDK `dappnodesdk` 是使创建和发布新的 Dappnode 软件包尽可能简单的工具。 它有助于初始化、构建、测试和发布Ethereum Mainnet上跟踪的APM新软件包/检索.

我们部署了一个公开的APM(阿拉贡包管理器)登记册,任何人都可以在登记册中创建自己的APM存储器: [公开. dappnode.eth](https://etherscan.io/address/public.dappnode.eth)

## 安装

```
$ npm install -g @dappnode/dappnodesdk
```

## 德莫尔

![](https://npmcn.com/img/demo.gif?raw=true)

## 初始化

此命令通过设置向导将您运行, 开始为新的 Dappnode 套件 Repo 创建基本文件 .

```
$ dappnodesdk init
```

## 构建

只生成 IPFS Hash 可以安装它而不需要创建 APM Repo

```
$ dappnodesdk build
```

### 根和变体文件

在多变量包中(`--all_variants` 或者说 `--variants`),每个版本从包根和变体目录组装(`package_variants/<variant>` 默认 :

-   `dappnode_package.json` 财务报告和审定财务报表 `docker-compose.yml` 被深深地融合, 变体压倒了根部.
-   `setup-wizard.*` 字段合并为 `id`,以及 `notifications.yaml` 结束点 `correlationId`。在匹配的条目中,变量的值超过根的值,以及变量的数组(例如: `enum`, (中文(简体) ), `conditions` 或者说 `alerts`)取代根的数组. 释放的内容完全正确.
-   单文件( avatar, `prometheus-targets.*`, (中文(简体) ), `disclaimer.md`, (中文(简体) ), `getting-started.md`, (中文(简体) ), `setup.schema.json`, (中文(简体) ), `setup-target.json`, (中文(简体) ), `setup-ui.json`, (中文(简体) ), `signature.json`)在有变体目录时取自变体目录,否则取自根.
-   格拉法纳仪表板`*grafana-dashboard.json`)从根和变种中收集.

Schema 校验一些值( 例如) `isBanner: "false"` 变成 `false`) (中文(简体) ). 释放会传送被胁迫值,而构建会打印出"Validate文件"步骤中的警告来使源文件可以被固定.

## 发布

它进行图像的构建并显示必要的交易,以便能够发布包. 第一次将创建寄存器,但其他的将是更新.

**要更新仓库, 您必须是授权的 dev .**

脚本根据指定的类型( patch, minual, major) 增加当前版本的寄存器, 除非一个版本尚未发布

关于版本检查的更多信息 [铸造](https://semver.org/)

```
$ dappnodesdk publish < patch | minor | major >
```

请考虑到 _软件包版本_ 这不是 _内部版本_ 软件包. 我们使用阿拉贡软件包管理器,它只允许从版本1开始逐个递增. 有效初始版本为: `1.0.0`, (中文(简体) ), `0.1.0` 或者说 `0.0.1`。 。 。 .

## 解决问题

如果系统找不到二进制 `dappnodesdk` 运行命令时,请尝试以下替代方法

-   运行 `npx` 可能处理更好的全球国家预防机制一揽子计划

```
npx @dappnode/dappnodesdk <command>
```

-   将二进制加在您全球国家防范机制软件包安装位置前, 例如:

```
~/.npm-packages/bin/dappnodesdk <command>
```

## Github 动作

### `bump-upstream` 动作

此 Github Action 自动创建了拉出请求, 将该版本在 DAppNode 包上连接到最新发布的上游版本 。 然后,它试验建造新的起伏的上游版本,并自动张贴一个IPFS散列,如果建造成功,以便与其他Github Actions和人类测试者一起进一步试验新的版本.

_说明: 这一行动还需要一个带有API Access Token的Pinata账户和存储在repo的,个人的,或组织的秘密中的Github个人Access Token,才能正常工作._

#### 样本使用

`.github/workflows/auto_check.yml`

```yaml
name: Bump upstream version

on:
  schedule:
    - cron: "00 */4 * * *"
  push:
    branches:
      - "master"

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx @dappnode/dappnodesdk github-action bump-upstream
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PINATA_API_KEY: ${{ secrets.PINATA_API_KEY }}
          PINATA_SECRET_API_KEY: ${{ secrets.PINATA_SECRET_API_KEY }}
```

您必须在软件包中指定该软件包正在追踪的上游 Github 。 并指明该多克编组文件中的构建变量应当更新.

`dappnode_package.json`

```json
{
  "name": "prysm.dnp.dappnode.eth",
  "upstreamVersion": "v1.0.0",
  "upstreamRepo": "prysmaticlabs/prysm",
  "upstreamArg": "UPSTREAM_VERSION"
}
```

`docker-compose.yml`

```yaml
version: "3.4"
services:
  beacon-chain:
    build:
      args:
        UPSTREAM_VERSION: v1.0.0
```

## 内部依赖性

Dappnode SDK 排出以下内部依赖性,以避免代码重复 `dappnodeSDK`, (中文(简体) ), `DNP_DAPPMANAGER` 财务报告和审定财务报表 `sdk-publish` 模块 :

-   `@dappnode/types`
-   `@dappnode/schemas`

为了获得更好的发展经验,这些模块生活在DNP DAPPMANAGER存储库内

## 发展

使用Node.js 22.13+或Node.js 24+(Node.js 20于2026年4月达到寿命结束),并安装精确锁定的依赖性与 `yarn install --frozen-lockfile`。 。 。 .

-   `yarn lint` 在不更改文件的情况下检查源和测试; `yarn lint:fix` 应用自动修正.
-   `yarn build` 检查和编译SDK.
-   `yarn test` 使用临时文件运行决定性回归,嘲笑多克命令,以及localhost HTTP服务器. 它不需要外部证书.
-   `yarn test:integration` 运行实时Docker/IPFS/Ethereum测试,并要求提供这些服务.

终端构建显示已编号的软件包/ architecture stages 和最近的完整日志行;在传输后上传显示一个单独的等待连接相.

## 许可证

该项目根据GNU通用公共许可证 v3.0 颁发许可证——见 [自由主义](https://npmcn.com/package/%40dappnode/dappnodesdk/LICENSE) 详细文件

## 常见问题

### @dappnode/dappnodesdk 是什么？

dappnodesdk是使新 dappnode 软件包的创建尽可能简单化的工具\. 它有助于初始化并在乙烷区块链中发布

### 如何安装 @dappnode/dappnodesdk？

在项目目录运行 npm install @dappnode/dappnodesdk，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dappnodesdk，可以用 npx dappnodesdk 直接运行。

### @dappnode/dappnodesdk 支持 TypeScript 吗？

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

### @dappnode/dappnodesdk 支持 ESM 还是 CommonJS？

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

### @dappnode/dappnodesdk 需要什么版本的 Node\.js？

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

### @dappnode/dappnodesdk 可以商用吗？

@dappnode/dappnodesdk 使用 GPL-3\.0 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以 GPL-3\.0 兼容许可开源，并附带专利与反锁定条款。仅内部使用不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @dappnode/dappnodesdk 的下载量有多少？

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

### @dappnode/dappnodesdk 还在维护吗？

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

