Estoy escribiendo una aplicación web de Bitcoin que se implementará en un servidor externo sobre el que no tengo control. Probablemente no tendré acceso al puerto estándar de Bitcoin (8333). ¿Causará esto un problema al conectarse a clientes estándar de Bitcoin, o pueden manejar la comunicación con un número de puerto no estándar? ¿Hay alguna aplicación relacionada con Bitcoin que también use otros puertos para comunicarse (como un grupo o similar)?
Si solo realiza conexiones salientes, no importará qué puertos use. Su cliente podrá participar plenamente en la red sin ningún problema.
El cliente de referencia evitará los nodos en la red que no se ejecutan en los puertos predeterminados (8333 para la red principal, 18333 para testnet) para no causar interrupciones en otros servicios. De lo contrario, si alguien anuncia un nodo falso que se ejecuta en otro puerto de aplicaciones, otros nodos en la red podrían causar un ataque de denegación de servicio cuando intentan conectarse sin éxito.
Un fragmento de código del cliente Bitcoin Core, que muestra que los nodos ignorarán los puertos no estándar a menos que estén muy desesperados por encontrar a alguien con quien puedan conectarse:
// do not allow non-default ports, unless after 50 invalid addresses selected already
if (addr.GetPort() != Params().GetDefaultPort() && nTries < 50)
continue;
Si desea respaldar activamente la red con conexiones entrantes, no debe cambiar la configuración de "puerto" del demonio bitcoin si es posible.
Tenga en cuenta que -addnode ignora la configuración del puerto
Por ejemplo, tanto el nodo 1 como el nodo 2 tienen -port=14444
nodo1> bitcoin-cli agregar nodo nodo2 agregar
2018-08-11 02:07:04 connect () al nodo 2: 18444 falló después de select (): conexión rechazada (111)
La solución es incluir el puerto en el nombre de host node1> bitcoin-cli addnode node2:14444 add
david schwartz
elpiachu