bitcoin-cliコマンド【gettxoutsetinfo】

gettxoutsetinfo

UTXOに関する統計を返却する。

このコマンドの実行には時間がかかる。環境やチェーンの長さによって変化すると思うので参考までに、2018年11月8日に実行した時は、結果が返ってくるまで4分50秒かかった。

引数

なし

実行例

経過時間を計測しているのでtimeコマンドを使用

$ time bitcoin-cli gettxoutsetinfo
{
  "height": 549155,
  "bestblock": "00000000000000000019582ac52d0caf6c5254892337be19ded3fa4430d15629",
  "transactions": 25673633,
  "txouts": 49928526,
  "bogosize": 3762888738,
  "hash_serialized_2": "26672d6c707d49a9b566ef391ac139df21c77e9a2efc96232a4fee705bee51b5",
  "disk_size": 2919433842,
  "total_amount": 17364267.32935391
}

real	4m50.376s
user	0m0.004s
sys	0m0.023s

出力内容

height (numeric)

現在のブロック高

bestblock (string)

チェーン先端ブロックのブロックハッシュ

transactions (numeric)

UTXOが存在するトランザクション数

txouts  (numeric)

UTXO数

bogosize (numeric)

UTXOセットサイズの無意味な(目的がない?)メトリック

hash_serialized_2 (string)

シリアライズ化されたハッシュ

disk_size (numeric)

チェーンのディスク上の予想サイズ

total_amount (numeric)

合計数量

全体的に出力内容の理解がイマイチだが、一部調べた内容を載せておく

transactionsとtxoutsの違い

1つのトランザクションからのアウトプットが1つだけということはあまりなく、お釣りを含めて1つのトランザクションから2つ以上のUTXOが出来上がるパターンの方が多い。

“transactions” はUTXOが1つ以上存在するtransactionを1つとしてカウントして合計した数で、”txouts” はトランザクションに関わらず、UTXOを1つとしてカウントしている。

以下の図で言えば、transactionsは1、txoutsは3がカウントされる。

bogosizeとdisk_sizeに付いて

“bogosize” という項目の説明が「ちょっと何言っているのかわからない」感じだったので、この項目が追加された時のリリースノートを引用しておく。

The gettxoutsetinfo response now contains disk_size and bogosize instead of bytes_serialized. The first is a more accurate estimate of actual disk usage, but is not deterministic. The second is unrelated to disk usage, but is a database-independent metric of UTXO set size: it counts every UTXO entry as 50 + the length of its scriptPubKey (See PR 10426).

https://bitcoin.org/en/release/v0.15.0#low-level-rpc-changes

“hash_serialized_2” も「なぜ “_2” なんだ?」と思ったが、このリリース時に合わせて名称が変更されていたから、関連するのだと思う。

正直引用した部分を読んでもイマイチどんな数値なのかわからない。開発者が参照するためのコマンドなのかな?