En este momento, blockchain.info tiene más de 1900 nodos conectados a su cliente bitcoin.
He estado ejecutando un servidor m1.small ubuntu 12.04 y bitcoind durante aproximadamente 4 días seguidos sin reiniciar. Mi cliente bitcoind solo muestra ~60 conexiones como máximo cuando ejecuta un comando "./bitcoind getinfo".
¿Cómo puedo lograr más de 1000 conexiones con mi cliente bitcoind? ¿Y "vale la pena" en tu opinión?
EDITAR: He reiniciado mi cliente bitcoind con los parámetros -maxconnections=1000 y -timeout=15000 pero después de ~12 horas de ejecutar bitcoind, la cantidad de conexiones es solo de ~40. Y parece que todavía no estoy maximizando mi CPU, RAM o ancho de banda.
EDICIÓN 2: no he visto un "tiempo de conexión" de más de 8 horas en la lista proporcionada por blockchain.info , por lo que me dice que deben reiniciar su servidor cada 8 horas más o menos. ¿Eso o las conexiones se caen y se actualizan después de 8 horas? Estoy empezando a pensar que blockchain.info realiza un seguimiento de las direcciones IP que ejecutan bitcoin en una especie de base de datos... y se conecta a ellas cada vez que su bitcoind se reinicia. ¿Tengo razón?
El cliente bitcoind tiene una opción de configuración maxconnections. El cliente iniciado con -maxconnections=N permitirá que se establezcan hasta N conexiones entrantes simultáneamente.
Tal vez necesite aumentar el tiempo de espera de la conexión para tantos intentos de conexión desde un solo nodo (posiblemente con poca potencia). Tal vez configúrelo como 15 segundos (15000 ms).
-timeout= Especifica el tiempo de espera de la conexión en milisegundos (predeterminado: 5000)
[Editar: la respuesta de Pieter Wuille te lleva más allá. -addnode le permitirá forzar nuevas conexiones salientes a los nodos cuando tenga sus direcciones IP.]
Bitcoin por defecto no hará más de 8 conexiones salientes y -maxconnections
solo controla cuántas conexiones entrantes permite. Siéntase libre de configurarlo más alto, pero llevará tiempo antes de que otros se conecten a usted en grandes cantidades.
Por favor, no cambie esto, ya que no es necesario. Los pares conectables en la red son un recurso escaso y esencial para la descentralización. Si la gente trata de conectarse a todos ellos como lo hacen algunos sitios, nos agotamos muy rápidamente.
En caso de que sea comerciante o minero, tal vez desee configurar algunas conexiones fijas con otras personas de confianza (consulte la -addnode
opción de línea de comando/configuración), pero tener más conexiones no significa una verificación más sólida (el cliente de referencia siempre verifica todo) o incluso una retransmisión más rápida (ya que disminuirá la velocidad al distribuir nuevos bloques y transacciones a todos sus pares). Se trata principalmente de proporcionar un servicio a la red.
Las respuestas dadas no responden a la pregunta. Aunque puede que no tenga sentido lograr mil conexiones, así es como se hace en Debian. Desea realizar algunos cambios leves en el código y volver a compilar bitcoind:
Obtenga los paquetes necesarios para compilar:
$ aptitude install git make build-essential libssl-dev libboost-all-dev libdb-dev libdb++-dev libminiupnpc-dev
Clone el repositorio de git (asegúrese de que la versión sea la rama más reciente ):
$ cd /usr/src
$ sudo git clone -b 0.8.4 https://github.com/bitcoin/bitcoin
$ cd bitcoin/src
Edite el archivo net.cpp:
@@ -27,7 +27,7 @@
using namespace std;
using namespace boost;
-static const int MAX_OUTBOUND_CONNECTIONS = 8;
+static const int MAX_OUTBOUND_CONNECTIONS = 1000;
bool OpenNetworkConnection(const CAddress& addrConnect, CSemaphoreGrant *grantOutbound = NULL, const char *strDest = NULL, bool fOneShot = false);
@@ -1533,7 +1533,7 @@
OpenNetworkConnection(CAddress(vserv[i % vserv.size()]), &grant);
MilliSleep(500);
}
- MilliSleep(120000); // Retry every 2 minutes
+ MilliSleep(5000); // Retry every 5 seconds
}
}
1.) Al cambiar MAX_OUTBOUND_CONNECTIONS, el cliente continuará conectándose hasta llegar a 1000 conexiones proactivas.
2.) Al cambiar el tiempo de espera de suspensión, se intentan nuevas conexiones con más frecuencia.
Compile e instale bitcoind:
$ sudo make -f makefile.unix
$ sudo mv bitcoind /usr/bin
No olvide configurar las conexiones máximas en bitcoin.conf:
maxconnections=1000
Inicie bitcoind y listo. El cliente hará muchas conexiones muy rápido.
Descargo de responsabilidad: como señaló Pieter Wuille, ejecutar un cliente modificado como este puede dañar la red. Utilice esta solución solo con fines de investigación y no como una solución permanente.
Como nadie parece haberlo mencionado, lo agregaré para futuras referencias. Si su nodo bitcoind está detrás de un enrutador/NAT, entonces solo puede conectarse a otros, no pueden conectarse a usted. Supongamos que la mayoría de las personas se encuentran en esa situación, lo que hace que la mayoría de los nodos no se puedan conectar (al menos directamente). Si abre el puerto de su nodo en su enrutador, todos los nodos de bitcoin podrán conectarse con usted si lo desean, en lugar de que su nodo solo pueda conectarse con otros que hayan abierto su puerto. Lo mismo se aplica a Bittorrent y otros sistemas p2p.
¿Por qué necesita más de 1000 conexiones?
Por defecto, bitcoind no puede tener más de 125 conexiones. Debe iniciar bitcoind con el parámetro -maxconnections=<n>
o configurarlo maxconnections=<n>
en bitcoin.conf para poder conectarse a más pares.
Para verificar si permite la entrada, use esto: https://bitnodes.21.co Hay un botón para verificar su IP y si resulta en verde, está bien para tener una conexión entrante. Una vez que tenga eso, me dijeron que puede tener más conexión saliente. Buena suerte.
usuario418
usuario3145
gran lobo
-maxoutconnections
que le permite aumentar las conexiones salientes a sus pares. El valor predeterminado es8
, pero puede establecerlo en algo superior sin tener que volver a compilar el nodo desde la fuente modificada.vidadeguente
-maxconnections
algo alto, aparece el siguiente error: > Advertencia: Reduciendo -maxconnections de 4096 a 865, debido a limitaciones del sistema. Entonces, ¿parece que uno ni siquiera puede ir súper alto con las conexiones entrantes también?usuario10603
gran lobo
Foba