ビットコインの仕組みを追いかけてみる(3)

testnetのデータをターゲットに、ブロックの構成をたどってみる。

まずはchainの先頭(genesis)ブロックから。

getblockhash(ブロック高を指定してハッシュを取得する)
bitcoin-cli -testnet getblockhash 0

bitcoinにおけるブロックのハッシュ化は、ブロックヘッダとランダム値に対してSHA256暗号化アルゴリズムを使う。
testnetにおける、genesisブロックのハッシュ(1バイトごとにカッコで区切って、8バイトごとに改行)。

[00][00][00][00][09][33][ea][01]
[ad][0e][e9][84][20][97][79][ba]
[ae][c3][ce][d9][0f][a3][f4][08]
[71][95][26][f8][d7][7f][49][43]
getblock(ハッシュからブロックの情報を取得する)
bitcoin-cli -testnet getblock 000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943

testnetにおけるBlock0とBlock1の情報は以下のとおり。
f:id:ichou1:20171210145557p:plain

"nextblockhash"という値が得られるが、ブロックに含まれているものではないらしい。

ブロックチェーン情報取得 - ブロック - Bitcoin ClockUpMemo

(フルノードが、自分で保持しているブロック情報から算出したもの)