Cómo recuperar transacciones en tiempo real desde archivos bitcoind .dat

Quiero obtener todos los datos de los bloques a medida que se actualizan en mi nodo local. Abe ofrece un rendimiento muy bajo y fast-dat-parser crea otros archivos .dat y no tiene suficiente documentación para que entienda cómo obtener datos como el tamaño del bloque, la edad, la dificultad del hash, las transacciones y las tarifas de transacción. ¿Existe una herramienta alternativa, o al menos una documentación detallada que me permita escribir un analizador para el contenido de los archivos .dat?

¿Por qué no usar el RPC de Bitcoin Core? Se encargará de la recuperación y decodificación por usted.

Respuestas (1)

Intentar leer y analizar los archivos .dat mientras se ejecuta bitcoind es probablemente una buena manera de tener toneladas de errores debido a datos parcialmente escritos. En lugar de intentar leer los archivos .dat, puede usar bitcoind para notificarle sobre nuevos bloques y usar la interfaz RPC para decodificar y obtener la información del bloque por usted. Puede iniciar bitcoind con -blocknotify=<cmd>where <cmd>es un comando que bitcoind ejecutará cada vez que se acepte un nuevo bloque. Puede leer bitcoind -helppara obtener más información sobre lo que -blocknotifyhace. El comando que se ejecuta puede ser un script que llame a la interfaz RPC y obtenga los datos del bloque que necesita mediante el getblockcomando RPC.

Gracias por la aportación. ¿Es la interfaz RPC lo suficientemente rápida como para obtener información sobre las transacciones lo más rápido posible? Mi idea era acceder a las operaciones en un archivo .dat tan pronto como se crea el nuevo, por lo que estoy seguro de que bitcoind ha dejado de escribir en él.
Depende de qué tan rápido sea "lo suficientemente rápido". La interfaz RPC es bastante rápida. Sin duda, será más rápido que solo leer bloques cuando se crea un nuevo .dat a medida que varios bloques (cientos, si no miles) entran en cada .dat. Para los humanos, es imperceptible. Tarda unos milisegundos.
Bien, RPC es más rápido que leer un archivo .dat antiguo y mejor que corromper el que se está escribiendo en este momento. Muchas gracias. ¿Existe algún tipo de nodo de "escucha" que sirva para transmitir datos de transacciones, en lugar de funcionar como un nodo completo y una billetera?
bitcoind tiene una interfaz ZMQ que transmite bloques y transacciones a un oyente utilizando el protocolo de mensajería ZeroMQ. También puede simplemente conectarse al nodo utilizando el protocolo Bitcoin P2P y obtener bloques y transacciones una vez que se hayan verificado.