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