wangdefaandClaude Opus 4.8 893e0dc74d
Build and Release / release (push) Successful in 38s
Build and Release / build-and-test (amd64) (push) Successful in 4m33s
Build and Release / build-and-test (arm64) (push) Successful in 22m28s
更新 p2pool 到 4.17.1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 20:33:10 +08:00
2026-06-28 20:33:10 +08:00
2026-06-22 18:17:03 +08:00
2026-06-28 20:33:10 +08:00
2026-06-28 20:33:10 +08:00
2026-06-28 20:33:10 +08:00

P2Pool

P2Pool 是 SChernykh/p2pool 的定制打包——Monero 去中心化矿池的 sidechain 节点。对上游唯一定制是禁用合并挖矿捐赠-DWITH_MERGE_MINING_DONATION=OFF),不改源码。

本仓库只包含构建与打包基础设施,不含 p2pool 源码:二进制在 CI 中从上游官方仓库 github.com/SChernykh/p2pool 编译,再打包分发到 gitea.bcde.io 的 Generic / Debian 包仓库。

产物

每次构建产出单个可执行文件(musl 纯静态,自带 boringssl/libuv/libzmq + 内置 gRPC,无外部动态库依赖,任意 Linux 发行版可跑):

二进制 作用
p2pool P2Pool sidechain 节点:连接 monerod、维护 sidechain、向矿工提供 stratum;支持与 Tari 合并挖矿

支持架构 amd64 / arm64musl 纯静态,任意 Linux 发行版(Debian/Ubuntu/Alpine/CentOS 等)开箱即跑。静态构建仍保留 --rpc-ssl(连外部 SSL monerod 节点)与内置 gRPC--merge-mine tari://... 与 Tari 合并挖矿)。

安装

APTDebian / Ubuntu

sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key -o /etc/apt/keyrings/gitea-wangdefa.asc
echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian stable main" | sudo tee /etc/apt/sources.list.d/wangdefa.list
sudo apt-get update && sudo apt-get install p2pool

安装布局:

路径
二进制 /opt/p2pool/p2pool
默认配置 /opt/p2pool/params.confpostinst 复制到 /etc/p2pool/params.conf
数据 /var/lib/p2pool/data-api
日志 /var/log/p2pool/
服务 p2pool.service

安装后服务不会自动启动(须先填钱包地址)。编辑 /etc/p2pool/params.conf 设置 Monero 钱包地址,再启用:

sudo systemctl enable --now p2pool

tar.gz(通用:Alpine / Ubuntu / Debian

从 Generic Package Registry 下载对应架构的 tar.gz,解压即用(单二进制):

curl -fSL -o p2pool.tar.gz \
  https://gitea.bcde.io/api/packages/wangdefa/generic/p2pool/4.17.1/p2pool-amd64-linux-static-4.17.1.tar.gz
tar -xzf p2pool.tar.gz
./p2pool --params-file params.conf   # 配置模板见仓库 conf/params.conf.example

构建与发布

CI 定义于 .gitea/workflows/ci.yaml

  • push 到 main/develop:矩阵 arch=[amd64,arm64],在原生 runner 上用 Dockermusl 纯静态)编译为 tar.gz 并打 .deb
  • 打 tag:产物上传到 Generic / Debian 包仓库并创建 Release。

本地构建:

# 编译某架构二进制(输出到 ./output/linux_<arch>/p2pool
docker buildx build --platform linux/amd64 \
  --build-arg P2POOL_VERSION=v4.17.1 \
  --output type=local,dest=./output \
  -f docker/Dockerfile .

# 校验纯静态(应输出 "not a dynamic executable"
ldd output/linux_amd64/p2pool

# 用产物 tar.gz 打 .deb
./debian/build-deb.sh amd64 4.17.1 p2pool-amd64-linux-static-4.17.1.tar.gz

版本号约定

  • 上游源码 git tagv(如 v4.17.1),CI 用 P2POOL_VERSION=v${PACKAGE_VERSION} 检出。
  • 包版本tar.gz / deb / registry 路径)一律用数字(如 4.17.1),符合 Debian 版本规范。

发版只需改 ci.yaml 的 PACKAGE_VERSION

目录结构

.gitea/workflows/   CI 流水线
docker/             Dockerfile(musl 纯静态,从上游官方源码编译)
debian/             .deb 打包:control 模板、维护脚本、systemd 服务
conf/               params.conf.example 默认配置模板
S
Description
No description provided
Readme
163 KiB
2026-06-28 20:33:10 +08:00
Languages
Dockerfile 100%