¿Dónde está el código para enviar el comando getblocks en el código fuente de bitcoin?

Estoy leyendo la parte del protocolo. Una pregunta tonta. Encontré la parte de procesamiento de getblocks, pero no encontré cuándo y dónde enviar el comando getblocks. O se elimina en la nueva edición de bitcoin. Cualquier idea, se lo agradeceré mucho.

Respuestas (1)

Tiene razón: la rama maestra de Bitcoin Core ya no envía el getblocksmensaje porque utiliza la sincronización de encabezados primero para obtener todos los encabezados (con el getheadersmensaje), lo que le permite codificar los encabezados, verificar su prueba de trabajo y solicitar los bloques correspondientes en paralelo de múltiples pares con getdatamensajes. Creo que se supone que la rama de la próxima versión 0.10 se bifurcará de la rama maestra más tarde hoy. (Actualizará la respuesta con el enlace cuando eso suceda).

Aquí hay algunos enlaces de código directo:

Bitcoin Core versión 0.10 continuará procesando el getblocksmensaje de pares remotos, como notó.

Realmente aprecio tu respuesta. Muchas gracias David.
Hola David, un punto me confundió. Es en paralelo que solicita los bloques correspondientes con mensajes getdata. Creo que está en un solo hilo. Podemos obtener como máximo 16 bloques de un par y luego iterar con otro par. ¿Es correcto? Gracias
@Eleven La primera extracción de encabezados vinculada en la respuesta dice: "Los bloques se obtienen en paralelo de todos los pares salientes disponibles, utilizando una ventana de movimiento limitada. Cuando un par detiene el movimiento de la ventana, se desconecta". Todavía no he revisado ese código, pero si encuentra algo que contradiga esa declaración, hágamelo saber y actualizaré la respuesta. ¡Gracias!