En la red bitcoin, ¿habrá una ruta de cada nodo a todos los demás nodos?

En la red de chismes de bitcoin, ¿habrá una ruta de cada nodo a todos los demás nodos? Ciertamente puede tener diferente número de saltos.

Tengo una red de prueba privada en la que modifiqué un código fuente. Obtengo un gráfico como este

A->B->C 

Así que tenemos un camino de A a C pero no de C a A. Así que cuando C extrae un bloque, la información permanece con él y no envía mensajes inv . ¿No estoy seguro si me equivoco o esto es lo esperado?

Editar:

El único cambio que hice fue hacer que testnet funcione en mi servidor local. Eliminé la verificación IsLocal() de IsRoutable() y agregué mis propias semillas codificadas.

Para aclarar, ¿modificó algún código que impida que los nodos compartan bloques? Por ejemplo, si agregó un código que hizo que un nodo nunca aceptara un bloque de un nodo con un número de puerto más alto que él mismo, eso produciría el comportamiento que ve.
El único cambio que hice fue hacer que testnet funcione en mi servidor local. Eliminé la verificación IsLocal() de IsRoutable() y agregué mis propias semillas codificadas.

Respuestas (1)

La red bitcoin está tan conectada como cada nodo quiera estar. El protocolo está diseñado de tal manera que incentiva estar conectado a la red, por lo que en la práctica, casi todos los nodos completos están conectados a muchos otros nodos y, por lo tanto, hay al menos una gran probabilidad de que haya una ruta corta entre dos. nodos.

Sin embargo, eso no quiere decir que todos los nodos estén conectados. Es completamente posible ejecutar un nodo completo que no está conectado, como parece que lo ha hecho. En su caso, parece que C no tiene pares, por lo que el bloque minado de C no llegará a nadie más.

Ejecute este comando para ver qué compañeros tiene:

$ bitcoin-cli getpeerinfo

Querrá agregar conexiones de esta manera:

$ bitcoin-cli addnode <node ip and port> add
getpeerinfo me dice que no tiene ninguna conexión. El único cambio que hice fue que recogiera mis direcciones codificadas. Entonces, ¿quieres decir que esto es completamente posible en bitcoin? No quiero verificar manualmente y agregar nodos explícitamente. ¿Hay alguna manera en la que pueda lograr este descubrimiento entre pares automáticamente?
Entonces, si bitcoind alguna vez se conecta a la red, mantendrá una lista de pares previamente conectados y la usará cada vez que se inicie. Sólo necesitas hacer esto una vez.