¿Hay alguna manera de encontrar la base de monedas para un bloque dado usando solo comandos de bitcoind?

ASICMiner incluye hex (Extraído por ASICMiner) en la base de monedas.

Me gustaría generar estadísticas semanales que incluyan los esfuerzos de minería en solitario de ASICMiner, pero no quiero tener que depender de blockchain.info o blockexplorer.com. ¿Hay alguna manera de usar los comandos de bitcoind para devolver la base de monedas para un bloque de altura dada (o hash)?

Respuestas (2)

Creo que esto se responde mejor con un ejemplo. Encontremos la base de monedas de un bloque en la red de prueba de Bitcoin.

Primero obtendremos el hash de un bloque que queremos ver. Echaremos un vistazo al último bloque (mientras escribo esto):

> bitcoind getblockcount
81626
> bitcoind getblockhash 81626
0000000000834f3933b50577b854692ed246728a17d10006ced1283a3fd8074c

Ahora necesitamos encontrar el hash de la transacción de generación de ese bloque. Siempre es el primero en la lista. En este ejemplo solo hay 1 transacción.

> bitcoind getblock 0000000000834f3933b50577b854692ed246728a17d10006ced1283a3fd8074c
[...]
    "tx" : [
        "f1fdeb7ced28f697c97b6a3ed7cc1946e1fc5e062ad8c17d05c88b1767b91b2a"
    ],
[...]

Y ahora podemos obtener la base de monedas de la transacción. El segundo parámetro del comando getrawtransaction se puede establecer en 1 para darnos partes individuales de la transacción para que podamos encontrar fácilmente la base de monedas. Alternativamente, podríamos omitir eso y nos daría un solo blob binario para navegar nosotros mismos.

> bitcoind getrawtransaction f1fdeb7ced28f697c97b6a3ed7cc1946e1fc5e062ad8c17d05c88b1767b91b2a 1
[...]
"coinbase" : "03da3e012cfabe6d6d18c47c97379852a93158528bb709355a0d38d05fedf072b610bb57442aad4e710400000000000000062f503253482f",
[...]

Y ahí está la base de monedas. Ahora podemos verificar si contiene fragmentos de texto ASCII o cualquier otra cosa que queramos hacer con él.

Pensé que "getrawtransaction" solo funcionaría para transacciones que están en el grupo de memoria. No para aquellos que ya han sido minados en bloques...
Veo lo que había estado haciendo: había estado probando getrawtransaction en el bloque de génesis (ya que sabía que contenía un mensaje) y, por supuesto, eso no funcionó. ¡Gracias DrH!
Olvidé agregar: este método solo funciona para bloques recientes.

Creo que no, no es posible usar el bitconind actual.

A menos que quiera usar no solo RPC, sino también el protocolo bitcoin. Luego, puede descargar cada bloque nuevo de su nodo (usando el comando getdata) y verificar que tenga "Extraído por ASICMiner" en el lugar esperado.

También puede buscar directamente en la base de datos de bloques: su nodo de bitcoin almacena los bloques en el disco, en un formato bastante sencillo.

-1 "Creo" no es una respuesta, o sabes o no sabes.
Lo es, cuando eres modesto :) Pero, dado que te preocupas tanto por las palabras: estoy muy seguro de que getrawtransaction no funcionará para transacciones antiguas gastadas. Siéntase libre de -1 la verdad una vez más, pero esto simplemente no arreglará el mundo :)