Files
p2pool/README.md
T
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

92 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P2Pool
P2Pool 是 [SChernykh/p2pool](https://github.com/SChernykh/p2pool) 的定制打包——Monero 去中心化矿池的 sidechain 节点。对上游唯一定制是**禁用合并挖矿捐赠**(`-DWITH_MERGE_MINING_DONATION=OFF`),不改源码。
**本仓库只包含构建与打包基础设施**,不含 p2pool 源码:二进制在 CI 中从上游官方仓库 `github.com/SChernykh/p2pool` 编译,再打包分发到 [gitea.bcde.io](https://gitea.bcde.io) 的 Generic / Debian 包仓库。
## 产物
每次构建产出单个可执行文件(musl 纯静态,自带 boringssl/libuv/libzmq + 内置 gRPC,无外部动态库依赖,任意 Linux 发行版可跑):
| 二进制 | 作用 |
|---|---|
| `p2pool` | P2Pool sidechain 节点:连接 monerod、维护 sidechain、向矿工提供 stratum;支持与 Tari 合并挖矿 |
支持架构 `amd64` / `arm64`musl 纯静态,任意 Linux 发行版(Debian/Ubuntu/Alpine/CentOS 等)开箱即跑。静态构建仍保留 `--rpc-ssl`(连外部 SSL monerod 节点)与内置 gRPC`--merge-mine tari://...` 与 Tari 合并挖矿)。
## 安装
### APTDebian / Ubuntu
```bash
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.conf`postinst 复制到 `/etc/p2pool/params.conf` |
| 数据 | `/var/lib/p2pool/data-api` |
| 日志 | `/var/log/p2pool/` |
| 服务 | `p2pool.service` |
> 安装后服务**不会自动启动**(须先填钱包地址)。编辑 `/etc/p2pool/params.conf` 设置 Monero 钱包地址,再启用:
>
> ```bash
> sudo systemctl enable --now p2pool
> ```
### tar.gz(通用:Alpine / Ubuntu / Debian
从 Generic Package Registry 下载对应架构的 tar.gz,解压即用(单二进制):
```bash
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](.gitea/workflows/ci.yaml)
- **push 到 `main`/`develop`**:矩阵 `arch=[amd64,arm64]`,在原生 runner 上用 Dockermusl 纯静态)编译为 tar.gz 并打 `.deb`
- **打 tag**:产物上传到 Generic / Debian 包仓库并创建 Release。
本地构建:
```bash
# 编译某架构二进制(输出到 ./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 tag** 带 `v`(如 `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 默认配置模板
```