obtener el último bloque real

tengo este codigo:

from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
import logging
rpc_user='-------' #User name is hidden
rpc_password='-------' #Password hidden
logging.basicConfig()
logging.getLogger("BitcoinRPC").setLevel(logging.DEBUG)
rpc_connection = AuthServiceProxy("http://%s:%s@127.0.0.1:8332"%(rpc_user, rpc_password))
blockcount=rpc_connection.getblockcount()
print(blockcount)

El resultado:

DEBUG:BitcoinRPC:-1-> getblockcount []
DEBUG:BitcoinRPC:<-1- 94768
94768

Por supuesto, este es el último bloque en mi dispositivo, pero quiero el último bloque real.

¿Hay un "servidor externo o un sitio web" al que pueda llamar en lugar del servidor local '127.0.0.1'? (para enviar el método bitcoin RBC)

Respuestas (3)

En lugar de getblockcount, puede llamar getblockchaininfoy leer el headerscampo.

Sin embargo, si bien esto puede brindarle muchos más bloques que el conteo de bloques local, solo recibirá un conteo hasta el punto en que su nodo tenga encabezados sincronizados (que pueden estar limitados por el tiempo, la red, qué tan bien sincronizados están sus pares). )

No hay forma de obtener siempre la última altura de bloque de manera confiable desde un nodo no sincronizado.

Además, se podría verificar la marca de tiempo para saber al menos si se trata de un bloque reciente.

Tendría que intentar conectar nodos en vivo para obtener esa información.

https://bitnodes.earn.com/nodes/?q=Estados%20Unidos

Enumera los nodos activos de la red BTC.

Debería encontrar algún nodo que permita la conexión RPC en el puerto.

Por supuesto, este es el último bloque en mi dispositivo, pero quiero el último bloque real.

No existe tal cosa. Si hubiera un "último bloque real" que fuera clara e inequívocamente determinable, no necesitaríamos una cadena de bloques.

Lo mejor que puede hacer es ejecutar un nodo y preguntarle cuál es el mejor bloque que conoce. O puede confiar en alguien para ejecutar dicho nodo y preguntarles.

Quizás otra forma de verlo: no hay distinción entre un nodo sincronizado o no sincronizado . Su nodo siempre está tratando de sincronizarse con cualquier otro nodo en la red que le indique. No puede saber cuál es el último/mejor bloque real en la red, ya que al menos la velocidad de la luz en todo el mundo es limitada.