¿Cómo construyo un gráfico de transacciones de bitcoin?

Estoy usando volcados de blockchain de http://dumps.webbtc.com/ en el esquema de la base de datos en el que se menciona que el resultado del script en pk_script debe especificar el destinatario de la transacción. Pero, ¿cómo obtengo la cantidad de bitcoins enviados y el remitente?

Respuestas (1)

El esquema de la base de datos se encuentra aquí: https://webbtc.com/api/schema

Es posible que se sienta decepcionado al descubrir que no es tan simple como una cantidad y un remitente para cada transacción. Lo que hay es una lista de entradas (referencias a salidas anteriores) y una lista de nuevas salidas. Cada salida con un importe y una dirección seudónima. Cada entrada tiene un TXID y un índice de salida para hacer referencia a qué salida anterior está gastando. Sin embargo, a menos que sepa quién posee direcciones específicas, no puede determinar la identidad de los remitentes.

Puede usar prev_outy prev_out_indexdesde una fila en la tabla de entradas para encontrar la salida anterior asociada, que le indicará la cantidad y la dirección.

Necesito el remitente en el sentido de obtener su clave pública o incluso un hash de clave pública, a lo que su comentario, si entiendo correctamente, se refiere como 'dirección'. Entonces, necesito buscar transacciones anteriores. ¿Y si la transacción anterior tiene muchos destinatarios y solo uno de ellos participa en la actual?
La pk_scripttabla de salidas te da eso, pero necesitarás convertir ese scriptPubKey en una dirección. No es muy fácil hacer eso, y la tabla no te da la dirección real. Por lo tanto, puede buscar los tipos de salida estándar y aprender a convertirlos en una dirección, o usar un conjunto de datos diferente que contenga las direcciones.
¿Podría sugerir un conjunto de datos diferente que ya tenga direcciones? Lo apreciaria mucho.
Si está buscando específicamente bases de datos descargables, lamentablemente no conozco ninguna. Hay servicios web de API que proporcionan esa información, pero lleva mucho tiempo analizar toda la cadena de bloques (y mucho ancho de banda) con una API.