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を参照。
この変更に伴うプルリクは↓あたり