¿Cuál es la diferencia entre synced_blocks y synced_headers?

Mi P2P está un poco oxidado, pero según tengo entendido; si estamos ejecutando un nodo completo, otros nodos se conectarán a nosotros para compartir bloques. Así que puedo ver por qué sería útil poder ver qué tan atrás están las cadenas de bloques de otros nodos con el getpeerinfocomando.

Sin embargo, ¿cuál es la diferencia práctica entre synced_headersy synced_blocks?

Por ejemplo, ¿qué significa si un par tiene synced_headersuna altura igual a la de nuestra propia cadena de bloques, pero una synced_blocksde -1 ?

Respuestas (1)

Los clientes de Bitcoin pueden tener encabezados sin tener bloques. (Sin embargo, Bitcoin Core nunca tiene un bloque sin encabezado).


Un synced_blocksvalor de -1 significa que se desconoce el mejor bloque para el otro nodo.

synced_blocksse establece aquí:

https://github.com/bitcoin/bitcoin/blob/b3e42b6d02e8d19658a9135e427ebceab5367779/src/main.cpp#L557

stats.nCommonHeight = state->pindexLastCommonBlock ? state->pindexLastCommonBlock->nHeight : -1;

Un synced_headersvalor de -1 significa que se desconoce el mejor encabezado para el otro nodo.

synced_headersse establece aquí:

https://github.com/bitcoin/bitcoin/blob/b3e42b6d02e8d19658a9135e427ebceab5367779/src/main.cpp#L556

stats.nSyncHeight = state->pindexBestKnownBlock ? state->pindexBestKnownBlock->nHeight : -1;
Gracias de nuevo, Nick. Entonces, ¿sería correcto decir que si nCommonHeight es -1, entonces el otro nodo no está intentando enviar o recibir datos de bloque con nuestro nodo?
@inersha Creo que sí, sí.