Bitcoinのデータはどこにあるのか?

Bitcoinのデータが実際どこに入っているのか。調べたのでメモ。

Bitcoin Coreをダウンロードし、ファイルを調べる。
Bitcoin Coreの説明は以下のページがわかりやすい。
speakerdeck.com


データが保存されているファイル、ディレクトリは次のようになっている。

blocks/blk*.dat
実際のブロックチェーンのデータが格納される。ウォレットで欠如しているトランザクションを再スキャンしたり、同期中の他のノードにブロックを提供するのに使われる。
DBになっておらず、追記専用ファイルとして保存される。


chainstate
UTXOとトランザクションメタデータをコンパクトにしたDB(LevelDB)。
新しく受信したブロック、トランザクションの検証に使われる。
新しいブロックを受信すると、そのブロック内に含まれたトランザクションによって消費されたUTXOを削除し、そのアウトプットを追加する。


参照
bitcoin.stackexchange.com


ただ、デフォルトでは、自分に関連したUTXOしか保存されていない。

そこで、任意のトランザクションを見ることができるようにするには、Bitcoin Coreにtxindexというオプションを設定する必要がある。

ビットコインコア設定ファイルbitcoin.confでtxindex=1とし、再起動すると全てのUTXOのダウンロードが開始される。

gettransactionコマンドで、確認できると思う。