5

ASICMiner includes hex(Mined By ASICMiner) in the coinbase.

I'd like to generate weekly statistics that include ASICMiner' solo-mining efforts, but I don't want to have to rely on blockchain.info or blockexplorer.com. Is there a way to use bitcoind commands to return the coinbase for a block of given height (or hash)?

4

I think this is best answered by an example. Let's find the coinbase from a block on the Bitcoin testnet.

First we'll get the hash for a block we want to look at. We'll have a look at the (as I write this) latest block:

> bitcoind getblockcount
81626
> bitcoind getblockhash 81626
0000000000834f3933b50577b854692ed246728a17d10006ced1283a3fd8074c

Now we need to find the hash of the generation transaction from that block. It's always the first one listed. In this example there is only 1 transaction.

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

And now we can grab the coinbase from the transaction. The getrawtransaction command's second parameter can be set to 1 to give us individual pieces of the transaction so we can easily find the coinbase. Alternatively we could leave that out and it would give us a single binary blob to navigate ourselves.

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

And there's the coinbase. Now we can check whether it contains pieces of ASCII text or whatever else we want to do with it.

  • I though "getrawtransaction" would only work for transactions that are in the memory pool? Not for those that have been mined into blocks already... – Gigi May 24 '13 at 17:57
  • I see what I'd been doing - I'd been testing getrawtransaction on the genesis block (since I knew that contained a message) - and of course that didn't work.Thanks DrH! – organofcorti May 25 '13 at 10:09
  • I forgot to add - this method only works for recent blocks. – organofcorti Dec 19 '13 at 3:12
0

I think no - it's not possible using the current bitconind.

Unless you want to use not only RPC, but also the bitcoin protocol. Then you can just download each new block from your node (using getdata command) and check it is has "Mined By ASICMiner" in the expected place.

You could also look into the blocks database directly - the blocks are stored on disk by your bitcoin node, in a pretty straight forward format.

  • -1 "I think" is not an answer, either you know or you do not know. – o0'. May 25 '13 at 21:23
  • It is, when you're modest :) But, since you care about words so much: I am very sure that getrawtransaction will not work for old spent transactions. Feel free to -1 the truth one more time, but this just won't fix the world :) – Gigi May 26 '13 at 15:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.