Set Up P2Pool: Peer‑to‑Peer Bitcoin Mining Guide
Visión general
P2Pool es un pool de minería Bitcoin peer‑to‑peer de código abierto que elimina la necesidad de una autoridad central de minería. En su lugar, cada minero contribuye a un proceso de generación de bloques compartido, ganando recompensas por bloque proporcionalmente. El proyecto está escrito principalmente en Python, soporta Bitcoin y Litecoin, y funciona en Linux, macOS y Windows.
¿Por qué P2Pool? * Mayor descentralización y resistencia a la censura. * Sin punto único de fallo ni punto central de fuga de ingresos. * Proceso de minería transparente y verificable.
A continuación se presenta un tutorial completo que muestra cómo instalar, configurar y ejecutar P2Pool en tu propia máquina.
1. Requisitos previos
| Artículo | Versión mínima | Notas |
|---|---|---|
| Python | 2.7 o 3.5+ | Lenguaje principal del proyecto. |
| Twisted | 10.0.0+ | Motor de red utilizado por P2Pool. |
python-argparse |
solo para Python 2.6 | Opcional para versiones antiguas de Python. |
python-zope.interface |
4.4+ | Dependencia de Twisted. |
python-twisted-web |
10.0.0+ | Componente web de Twisted. |
python-zope.interface / python-win32api |
Para Windows | Necesario para los wrappers de la API Win32. |
git |
Cualquiera | Para clonar el repositorio. |
apt-get, yum o brew |
N/A | Gestor de paquetes específico de la distribución Linux/macOS. |
Consejo: La mayoría de las distribuciones Linux incluyen Twisted y librerías relacionadas en sus repositorios. En Windows, instala Python y luego ejecuta
pip install twisted zope.interface.
2. Clonar el repositorio
git clone https://github.com/p2pool/p2pool.git
cd p2pool
README.md que replica las instrucciones siguientes.
3. Prepara tu nodo de Bitcoin o Litecoin
P2Pool requiere un bitcoind (nodo de Bitcoin) o litecoind (nodo de Litecoin) local que esté completamente sincronizado.
- Descarga los binarios más recientes para tu sistema operativo.
- Configura el nodo creando
bitcoin.conf(olitecoin.conf) en la carpeta de datos.rpcuser=tuusuario rpcpassword=tucontraseña server=1 daemon=1 txindex=1 - Inicia el demonio:
(Usa
bitcoind -daemonlitecoind -daemonpara Litecoin.)
Advertencia: Mantén tus credenciales RPC seguras. Evita exponerlas en redes públicas.
4. Instalar dependencias de P2Pool
Para Linux:
sudo apt-get update
sudo apt-get install python-zope.interface python-twisted python-twisted-web python-argparse
pip install twisted zope.interface
python-argparse a través de pip.
5. Ejecutar P2Pool
Linux & macOS
Windowspython run_p2pool.pyEl comando inicia un nodo P2Pool vinculado apython run_p2pool.py127.0.0.1:9333(Bitcoin) o127.0.0.1:9338(Litecoin). Para ver las opciones disponibles, ejecuta:
python run_p2pool.py --help
Ejemplo de uso con un minero
- Configura la URL
stratumde tu minero para que apunte al nodo local de P2Pool. - Apunta el minero a
localhost(o127.0.0.1) y al puerto correcto. - Bitcoin:
127.0.0.1:9332 - Litecoin:
127.0.0.1:9327 - Cualquier usuario/contraseña funcionará, ya que P2Pool las ignora.
6. NAT, redirección de puertos y acceso público
Si quieres que el internet pueda ver tu nodo P2Pool:
1. Activa la redirección de puertos TCP en tu router: reenvía el puerto externo 9333 (Bitcoin) al IP local del equipo que ejecuta P2Pool.
2. Para Litecoin, reenvía el puerto 9338.
3. Asegúrate de que tu bitcoind/litecoind también sea accesible desde la interfaz pública si planeas minar desde múltiples hosts.
Nota de seguridad: Exponer puertos al internet abre tu nodo a posibles ataques DoS. Considera bloquear puertos no esenciales con un firewall.
7. Executar P2Pool en Litecoin
- Compila el módulo scrypt que gestiona el PoW de Litecoin.
cd litecoin_scrypt sudo python setup.py install - Inicia P2Pool con la bandera de Litecoin:
python run_p2pool.py --net litecoin - Minera conectando tu minero a
127.0.0.1:9327.
El repositorio también ofrece un instalador Windows precompilado a través del directorio litecoin_scrypt y soporta compilaciones basadas en Visual Studio para usuarios avanzados de Windows.
8. Donaciones y comunidad
El desarrollo se financia mediante donaciones:
- Dirección de Bitcoin: 1HNeqi3pJRNvXybNX4FKzZgYJsdTSqJTbk
La comunidad se reúne en discusiones de GitHub y en el Wiki de Bitcoin: P2Pool Wiki. Contribuye con reportes de errores, ideas de características o ayuda en la documentación.
9. Problemas frecuentes y solución de problemas
| Problema | Solución |
|---|---|
python: command not found |
Asegúrate de que Python esté en el PATH o usa python3. |
Errores de importación de Twisted |
Reinstala twisted con pip install twisted. |
Puerto 9333 ya en uso |
Detén la instancia anterior de P2Pool o cambia el puerto mediante --port. |
| Desajuste de altura de bloque de la red | Sincroniza completamente tu bitcoind y reinicia ambos nodos. |
Falta de entradas en litecoin.conf |
Añade rpcuser, rpcpassword y otras configuraciones esenciales. |
10. Resumen
P2Pool te permite participar en la minería de Bitcoin (o Litecoin) sin confiar en un pool central. Siguiendo este tutorial tendrás: - Un nodo P2Pool totalmente funcional. - Una cadena de bloques local sincronizada. - Redirección de puertos con conocimiento de NAT para pares. - La capacidad de solucionar problemas comunes.
Comienza a minar hoy mismo, contribuye a una cadena de bloques más descentralizada y disfruta de la tranquilidad que aporta operar tu propio nodo.
Lecturas adicionales: - P2Pool en el Wiki de Bitcoin - P2Pool Extended Front End - Guía de compilación del módulo scrypt para Windows