Develop with pleasure!

福岡でCloudとかBlockchainとか。

Bitcoin Core 0.14.1のリリース

Bitcoin Core 0.14.1のマイナーアップデートがリリースされてたので主な変更内容を見ておく。

bitcoin/release-notes-0.14.1.md at master · bitcoin/bitcoin · GitHub

RPCの変更

  • createrawtransactionの最初の引数がtransactionsからinputsにリネームされた。
  • disconnectnodeの引数がnodeからaddressにリネームされた。

0.14.0からRPCコールする際に名前付き引数をサポートしているため、↑のインターフェースの変更はその点について0.14.0との互換性は無い。もし名前付き引数を使ってRPCを呼んでいるクライアントがあれば、更新する必要がある。

マイニング

以前のバージョンでは、getblocktemplateはネットワーク上でSegwitがアクティベートされたら、そのテンプレートを使用するクライアントやマイナーもSegwitをサポートする必要があった。0.14.1では、返されたブロックテンプレートから全てのSegwitトランザクションを削除することで、ネットワーク上でSegwitがアクティベートされた後もSegwitに対応していないクライアントをサポートするようになった。これによりSegwitがアクティベートされた後でも、非Segwitのマイナーは、非Segwitのトランザクションのみをマイニングし続けることができるようになる。

以前のバージョンまでの↑の制約により、getblocktemplateは非SegwitのクライアントにはSegwitのversion-bitをシグナリングをしないよう推奨してきた。今回のアップデートで、この必要は無くなり、getblocktemplateは、全てのマイナーにsegwitのシグナリングを推奨するようになっている。安全なアクティベーションにとって唯一必要な基準は、実際にSegwit対応のブロックを生成することではなく、ルールを実行する能力であるため、これは安全な取り組みである。

UTXOメモリの計算

Bitcoin CoreはUTXOのデータにより速くアクセスできるようUTXOをメモリ上にキャッシュしている。このUTXOキャッシュのフラッシュ時にメモリ使用量がピークになっても-dbcacheで設定された制限値を順守できるよう、UTXOキャッシュのメモリ使用量がより正確に計算されるようになった。(以前のリリースバージョンでは、実際のピーク使用率の半分しか使われていないと見積もられている。)

今回のリリースででデフォルトの-dbcacheのサイズも300MiBから450MiBに変更されている。現在-dbcacheを高い値に設定しているユーザーは、以前のリリースと同じキャッシュパフォーマンスを実現するためには、この設定値の増加を検討する必要がある。逆に低メモリシステム(1GB以下)のユーザーは、このパラメータの値を小さくすることを検討する必要がある。

低メモリシステムでの実行に関する追加情報は、reducing-bitcoind-memory-usage.mdを参照。

この変更に伴うプルリクは↓あたり

github.com

github.com