pipe

lushdog@outlook.com 6b4a838798 init 10 tháng trước cách đây
.env.example 6b4a838798 init 10 tháng trước cách đây
Dockerfile 6b4a838798 init 10 tháng trước cách đây
README.md 6b4a838798 init 10 tháng trước cách đây
docker-compose.yml 6b4a838798 init 10 tháng trước cách đây

README.md

Pipe Network CDN Node - Docker 部署

这是一个用于部署 Pipe Network CDN 节点的 Docker 项目。通过 Docker 和 Docker Compose,你可以快速搭建并运行自己的 PipeCDN 节点,参与网络并提供 CDN 服务以获得 $PIPE 代币奖励。

📋 目录

✨ 功能特性

  • 🐳 Docker 化部署:一键部署,无需手动配置
  • 🔄 自动重启:容器异常退出时自动重启
  • 💾 数据持久化:缓存数据自动保存,重启不丢失
  • 🏥 健康检查:自动监控节点健康状态
  • 📊 Prometheus 指标:支持监控和指标收集
  • ⚙️ 灵活配置:通过 .env 文件轻松管理配置

🔧 系统要求

操作系统

  • Linux(推荐 Ubuntu 24.04+ 或 Debian 11+)
  • macOS(用于开发)
  • Windows(使用 WSL2)

软件依赖

  • Docker 20.10+
  • Docker Compose 2.0+

硬件要求

  • 存储空间:至少 20 GB 可用空间
  • 内存:建议 2 GB 以上(可根据缓存配置调整)
  • 网络:需要开放 TCP 端口 80 和 443
  • 存储类型:SSD/NVMe 推荐用于缓存(提升性能)

🚀 快速开始

1. 克隆或下载项目

git clone <repository-url>
cd pipe

2. 创建配置文件

复制示例配置文件并编辑:

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"

3. 获取 Solana 钱包地址

如果你还没有 Solana 钱包,可以通过以下方式创建:

方式一:使用 Phantom Wallet

  1. 安装 Phantom Wallet 浏览器扩展
  2. 创建新钱包或导入现有钱包
  3. 复制公钥地址

方式二:使用 Solana CLI

# 安装 Solana CLI(如果未安装)
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

# 生成新密钥对
solana-keygen new

# 查看公钥地址
solana address

⚠️ 安全提示:永远不要分享你的私钥或助记词!

4. 构建并启动

# 构建 Docker 镜像
docker-compose build

# 启动服务(后台运行)
docker-compose up -d

# 查看日志
docker-compose logs -f

5. 验证运行状态

# 检查容器状态
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 配置

  • VPS/云服务器:建议设置 UPNP_ENABLED=false
  • 家庭网络:可以设置 UPNP_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

Prometheus 指标

# 查看指标
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

🔍 故障排除

常见问题

1. 端口被占用

错误信息:Bind for 0.0.0.0:80 failed: port is already allocated

解决方法:

# 查找占用端口的进程
sudo lsof -i :80
sudo lsof -i :443

# 停止占用端口的服务或修改 docker-compose.yml 中的端口映射

2. 容器启动失败

检查步骤:

# 查看容器日志
docker-compose logs pipe-node

# 检查容器状态
docker-compose ps

# 检查配置文件
cat .env

3. 健康检查失败

可能原因:

  • 节点还在启动中(等待 40 秒后重试)
  • 配置文件错误
  • 网络问题

解决方法:

# 查看详细日志
docker-compose logs -f pipe-node

# 手动检查健康端点
docker-compose exec pipe-node curl http://localhost:8081/health

4. 磁盘空间不足

解决方法:

# 减少缓存大小(修改 .env 文件)
DISK_CACHE_SIZE_GB=50  # 从 100 改为 50

# 清理未使用的 Docker 资源
docker system prune -a

5. 内存使用过高

解决方法:

# 减少内存缓存(修改 .env 文件)
MEMORY_CACHE_SIZE_MB=256  # 从 512 改为 256

6. UPnP 失败(家庭网络)

解决方法:

  • 在路由器中启用 UPnP
  • 或设置 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

网络优化

  • 确保服务器有足够的带宽
  • 使用 CDN 或负载均衡器(如果运行多个节点)
  • 监控网络流量和延迟

📚 参考文档

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📝 许可证

本项目遵循相应的开源许可证。

⚠️ 免责声明

  • 运行节点需要稳定的网络和足够的资源
  • 收益取决于网络使用情况和节点性能
  • 请妥善保管你的 Solana 钱包私钥
  • 本工具仅用于学习和合法用途

祝你的 Pipe Network 节点运行顺利! 🚀