Si ejecutas "bitcoind getpeerinfo" verás datos de cada par conectado, entre ellos el valor "startingheight", que indica hasta qué bloque ha sincronizado cada conexión. Creo que es esa información externa la que permite al cliente gráfico hacer la comparación con el número de bloques locales que retorna getblockcount para estimar los bloques que faltan por descargar.
No me encaja. En el portátil obtengo esto:
$ bitcoind getpeerinfo |grep startingheight
"startingheight" : 209950,
"startingheight" : 209950,
"startingheight" : 209950,
"startingheight" : 209951,
"startingheight" : 209955,
"startingheight" : 209957,
"startingheight" : 209964,
"startingheight" : 209969,
$ bitcoind getblockcount
209976
Y en otra máquina:
$ bitcoind getpeerinfo |grep startingheight
"startingheight" : 205758,
"startingheight" : 205815,
"startingheight" : 205256,
"startingheight" : 206839,
"startingheight" : 208035,
"startingheight" : 209654,
"startingheight" : 209741,
"startingheight" : 209883,
$ bitcoind getblockcount
209976
Más bien pienso (pero no tengo ni "pura" idea) que eso indica en qué bloque estaba cada peer cuando mi cliente estableció la conexión con él. Esto me cuadra al cruzar el valor de startingheight con el de conntime:
$ bitcoind getpeerinfo |grep -E 'startingheight|conntime'
"conntime" : 1351627422,
"startingheight" : 205758,
"conntime" : 1351665698,
"startingheight" : 205815,
"conntime" : 1351795800,
"startingheight" : 205256,
"conntime" : 1352275131,
"startingheight" : 206839,
"conntime" : 1352981218,
"startingheight" : 208035,
"conntime" : 1353922762,
"startingheight" : 209654,
"conntime" : 1353976897,
"startingheight" : 209741,
"conntime" : 1354058031,
"startingheight" : 209883,
$ bc
209883-205758 /* último bloque - primer bloque */
4125
1354058031-1351627422 /* último conntime - primer conntime */
2430609
2430609/4125 /* segundos por bloque */
589.2385
2430609/4125/60 /* minutos por bloque */
9.8206
Es decir, en el momento en que me conecto con un peer, se guardarían (no lo sé a ciencia cierta) el bloque que tiene ese peer en startingheight y el momento de la conexión en conntime. Luego, si pasados 10 minutos me conecto a otro peer, esperaría que startingheight fuera 1 más que antes y conntime fuera 600 más que antes. Haciendo las cuentas, este parece ser el caso.
Por tanto, no ayuda a averiguar si mi nodo está al día o no.