设置 P2Pool:点对点比特币挖矿指南
概述
P2Pool 是一个 开源、点对点的比特币挖矿池,消除了对中心化挖矿机构的需求。相反,每个矿工都参与共享的区块生成过程,按比例获得区块奖励。该项目主要使用 Python 编写,支持比特币和莱特币,并可在 Linux、macOS 和 Windows 上运行。
为什么选择 P2Pool? * 更高的去中心化和抵御审查性。 * 无单点故障或中心化收入泄漏。 * 透明且可审计的挖矿过程。
下面是一份综合教程,向您展示如何在自己的机器上安装、配置并运行 P2Pool。
1. 先决条件
| 项目 | 最低版本 | 备注 |
|---|---|---|
| Python | 2.7 或 3.5+ | 项目核心语言。 |
| Twisted | 10.0.0+ | P2Pool 使用的网络引擎。 |
python-argparse |
仅适用于 Python 2.6 | 对旧版 Python 的可选插件。 |
python-zope.interface |
4.4+ | Twisted 的依赖。 |
python-twisted-web |
10.0.0+ | Twisted 的 Web 组件。 |
python-zope.interface / python-win32api |
对 Windows | 必需 Win32 API 包装器。 |
git |
任意 | 克隆仓库。 |
apt-get、yum 或 brew |
不适用 | Linux/macOS 特定发行版包管理器。 |
小技巧:大多数 Linux 发行版在官方仓库中发布 Twisted 及其相关库。Windows 则先安装 Python,然后执行
pip install twisted zope.interface。
2. 克隆仓库
git clone https://github.com/p2pool/p2pool.git
cd p2pool
README.md,内容与下面说明保持一致。
3. 准备您的比特币或莱特币节点
P2Pool 需要本地 bitcoind(比特币节点)或 litecoind(莱特币节点),并且完全同步。
- 下载 您系统对应的最新二进制文件。
- 配置 节点:在数据文件夹中创建
bitcoin.conf(或litecoin.conf)。rpcuser=yourrpcuser rpcpassword=yourrpcpassword server=1 daemon=1 txindex=1 - 启动 守护进程:
(莱特币请使用
bitcoind -daemonlitecoind -daemon)。
警告:请妥善保管 RPC 凭证,避免在公共网络泄露。
4. 安装 P2Pool 依赖
对于 Linux:
sudo apt-get update
sudo apt-get install python-zope.interface python-twisted python-twisted-web python-argparse
pip install twisted zope.interface
pip 安装 python-argparse。
5. 运行 P2Pool
Linux & macOS
Windowspython run_p2pool.py此命令会启动一个绑定到python run_p2pool.py127.0.0.1:9333(比特币)或127.0.0.1:9338(莱特币)的 P2Pool 节点。查看可用参数,请执行:
python run_p2pool.py --help
与矿机配套使用示例
- 将矿机的
stratumURL 指向本地 P2Pool 实例。 - 设置矿机目标为
localhost(或127.0.0.1)以及正确端口。 - Bitcoin:
127.0.0.1:9332 - Litecoin:
127.0.0.1:9327 - 任何用户名/密码均可使用,P2Pool 会忽略它们。
6. NAT、端口转发与公网访问
若想让更广阔的互联网看到您的 P2Pool 节点:
1. 启用 TCP 端口转发:将路由器外部端口 9333(比特币)转发到运行 P2Pool 的机器本地 IP。
2. 对于莱特币,转发 9338。
3. 如需从多台主机挖矿,请确保您的 bitcoind/litecoind 也可以从公网访问。
安全提示:将端口暴露到互联网会使节点面临 DoS 攻击风险。建议仅允许必要端口通过防火墙。
7. 在莱特币上运行 P2Pool
- 编译 scrypt 模块(处理莱特币 PoW)。
cd litecoin_scrypt sudo python setup.py install - 以莱特币标志启动 P2Pool:
python run_p2pool.py --net litecoin - 挖矿:让矿机连接至
127.0.0.1:9327。
仓库同时提供了预编译的 Windows 安装包(位于 litecoin_scrypt 目录),并支持 Visual Studio 为高级 Windows 用户提供的编译方式。
8. 捐赠与社区
开发通过捐赠获得资金支持:
- 比特币地址:1HNeqi3pJRNvXybNX4FKzZgYJsdTSqJTbk
社区聚集在 GitHub 讨论区与比特币 Wiki: P2Pool Wiki。欢迎提交 bug 报告、功能建议或参与文档编写。
9. 常见问题 & 故障排除
| 问题 | 解决方案 |
|---|---|
python: command not found |
确保 Python 在 PATH 中,或使用 python3 |
Twisted 导入错误 |
通过 pip install twisted 重新安装 Twisted |
Port 9333 already in use |
停止之前的 P2Pool 实例,或使用 --port 更改端口 |
Network block height mismatch |
完全同步 bitcoind,随后重启两台节点 |
litecoin.conf 缺少条目 |
添加 rpcuser、rpcpassword 等必要设置 |
10. 小结
P2Pool 让您可以在不信任中心化矿池的情况下参与比特币(或莱特币)挖矿。按本教程操作后,您将拥有: - 一个完全集成的 P2Pool 节点。 - 一个同步好的本地区块链。 - 适用于网络对等端的 NAT 端口转发。 - 解决常见故障的知识。
立即开始挖矿,贡献更去中心化的区块链,并在拥有自己节点的安心中享受宁静。
进一步阅读: - P2Pool(比特币 Wiki) - P2Pool 扩展前端 - Windows 下 scrypt 模块构建指南