|
|
3 週間 前 | |
|---|---|---|
| .env.example | 1 ヶ月 前 | |
| Dockerfile | 1 ヶ月 前 | |
| README.md | 1 ヶ月 前 | |
| docker-compose.yml | 3 週間 前 |
这是一个用于部署 Pipe Network CDN 节点的 Docker 项目。通过 Docker 和 Docker Compose,你可以快速搭建并运行自己的 PipeCDN 节点,参与网络并提供 CDN 服务以获得 $PIPE 代币奖励。
.env 文件轻松管理配置80 和 443git clone <repository-url>
cd pipe
复制示例配置文件并编辑:
cp .env.example .env
编辑 .env 文件,必须修改以下配置:
# 必需:你的 Solana 钱包地址(44 字符)
NODE_SOLANA_PUBLIC_KEY=your_solana_wallet_address
# 节点名称
NODE_NAME=my-pop-node
# 你的邮箱
NODE_EMAIL="operator@example.com"
# 节点位置
NODE_LOCATION="San Francisco, USA"
如果你还没有 Solana 钱包,可以通过以下方式创建:
方式一:使用 Phantom Wallet
方式二:使用 Solana CLI
# 安装 Solana CLI(如果未安装)
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
# 生成新密钥对
solana-keygen new
# 查看公钥地址
solana address
⚠️ 安全提示:永远不要分享你的私钥或助记词!
# 构建 Docker 镜像
docker compose build
# 启动服务(后台运行)
docker compose up -d
# 查看日志
docker compose logs -f
# 检查容器状态
docker compose ps
# 健康检查
curl http://localhost:8081/health
# 预期输出:{"status":"healthy"}
所有配置都在 .env 文件中,主要配置项说明:
| 配置项 | 说明 | 默认值 | 必需 |
|---|---|---|---|
NODE_SOLANA_PUBLIC_KEY |
Solana 钱包公钥地址 | - | ✅ 是 |
NODE_NAME |
节点名称 | my-pop-node |
否 |
NODE_EMAIL |
运营者邮箱 | - | 否 |
NODE_LOCATION |
节点地理位置 | - | 否 |
MEMORY_CACHE_SIZE_MB |
内存缓存大小(MB) | 512 |
否 |
DISK_CACHE_SIZE_GB |
磁盘缓存大小(GB) | 100 |
否 |
DISK_CACHE_PATH |
缓存路径 | ./cache |
否 |
HTTP_PORT |
HTTP 端口 | 80 |
否 |
HTTPS_PORT |
HTTPS 端口 | 443 |
否 |
UPNP_ENABLED |
启用 UPnP 自动端口转发 | false |
否 |
| 端口 | 用途 | 说明 |
|---|---|---|
| 80 | HTTP | CDN 服务端口 |
| 443 | HTTPS | CDN 服务端口(SSL/TLS) |
| 8081 | 健康检查 | 节点健康状态检查 |
| 9090 | Prometheus | 监控指标端口 |
UPNP_ENABLED=falseUPNP_ENABLED=true(需要路由器支持 UPnP)# 启动服务
docker compose up -d
# 停止服务
docker compose stop
# 停止并删除容器
docker compose down
# 停止并删除容器和数据卷(清理缓存)
docker compose down -v
# 查看日志
docker compose logs -f
# 查看最近 100 行日志
docker compose logs --tail=100
# 重启服务
docker compose restart
# 重新构建镜像
docker compose build --no-cache
修改 .env 文件后,需要重新构建镜像:
# 停止服务
docker compose down
# 重新构建(不使用缓存)
docker compose build --no-cache
# 启动服务
docker compose up -d
# 进入容器
docker compose exec pipe-node bash
# 查看节点状态
./pop status
# 查看收益
./pop earnings
# 退出容器
exit
# 使用 curl 检查
curl http://localhost:8081/health
# 使用 Docker 检查
docker inspect --format='{{.State.Health.Status}}' pipe-node
# 查看指标
curl http://localhost:9090/metrics
# 实时日志
docker compose logs -f pipe-node
# 查看特定时间段的日志
docker compose logs --since 1h pipe-node
# 查看最后 50 行日志
docker compose logs --tail=50 pipe-node
# 查看缓存使用情况
docker exec pipe-node du -sh /opt/pipe/cache
# 清理缓存(需要停止服务)
docker compose down
docker volume rm pipe_pipe-cache
docker compose up -d
错误信息:Bind for 0.0.0.0:80 failed: port is already allocated
解决方法:
# 查找占用端口的进程
sudo lsof -i :80
sudo lsof -i :443
# 停止占用端口的服务或修改 docker compose.yml 中的端口映射
检查步骤:
# 查看容器日志
docker compose logs pipe-node
# 检查容器状态
docker compose ps
# 检查配置文件
cat .env
可能原因:
解决方法:
# 查看详细日志
docker compose logs -f pipe-node
# 手动检查健康端点
docker compose exec pipe-node curl http://localhost:8081/health
解决方法:
# 减少缓存大小(修改 .env 文件)
DISK_CACHE_SIZE_GB=50 # 从 100 改为 50
# 清理未使用的 Docker 资源
docker system prune -a
解决方法:
# 减少内存缓存(修改 .env 文件)
MEMORY_CACHE_SIZE_MB=256 # 从 512 改为 256
解决方法:
UPNP_ENABLED=false 并手动配置端口转发对于高流量场景,可以调整以下配置:
# .env 文件
MEMORY_CACHE_SIZE_MB=8192 # 8 GB 内存缓存
DISK_CACHE_SIZE_GB=500 # 500 GB 磁盘缓存
DISK_CACHE_PATH=/mnt/nvme/cache # 使用 NVMe SSD
# 增加文件描述符限制(在 docker compose.yml 中已注释)
# 取消注释 ulimits 部分
# 使用 SSD/NVMe 存储
# 将缓存挂载到高性能存储设备
volumes:
- /mnt/nvme/cache:/opt/pipe/cache
欢迎提交 Issue 和 Pull Request!
本项目遵循相应的开源许可证。
祝你的 Pipe Network 节点运行顺利! 🚀