@dappnode/dappnodesdk

中文文档
0.3.56发布于 2026/11/10GPL-3.0TypeScriptES Module构建来源已验证近 30 天下载 2692

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

中文使用文档
文档目录12 节
  1. 安装
  2. 德莫尔
  3. 初始化
  4. 构建
  5. 根和变体文件
  6. 发布
  7. 解决问题
  8. Github 动作
  9. bump-upstream 动作
  10. 内部依赖性
  11. 发展
  12. 许可证

DAPP 节点SDK

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

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

安装

$ npm install -g @dappnode/dappnodesdk

德莫尔

初始化

此命令通过设置向导将您运行, 开始为新的 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) 增加当前版本的寄存器, 除非一个版本尚未发布

关于版本检查的更多信息 铸造

$ 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

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

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

docker-compose.yml

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 颁发许可证——见 自由主义 详细文件

版本与发布记录

@dappnode/dappnodesdk 共发布 173 个版本,首次发布于 2018/09/09;过去 12 个月发布了 5 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.56latest2026/11/101 天前
0.3.552026/08/242 个月前
0.3.542026/08/242 个月前
0.3.532026/07/163 个月前
0.3.522026/02/069 个月前
0.3.482025/11/041 年前

关于 @dappnode/dappnodesdk 的常见问题

@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 和提交记录判断。