Bitcoin Core 0.15.1

Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.

Bitcoin Core バージョン 0.15.1 は以下から入手可能です。

https://bitcoincore.org/bin/bitcoin-core-0.15.1/

もしくは

https://bitcoin.org/bin/bitcoin-core-0.15.1/

これはさまざまなバグフィックスやパフォーマンスの改善、更新された翻訳を含む新しいマイナーバージョンリリースです。

バグを発見した場合はGitHubのIssue Trackerを使用して報告してください。

https://github.com/bitcoin/bitcoin/issues

セキュリティやアップデートの通知を受け取りたい場合は、以下に登録してください。

https://bitcoincore.org/en/list/announcements/join/

アップグレード方法

旧バージョンを起動している場合はシャットダウンしてください。 完全にシャットダウンするのを待ってから(旧バージョンでは数分かかるかもしれません)、 Windowsの場合はインストーラーを実行、Macの場合は/Applications/Bitcoin-Qtを上書き、 Linuxの場合はbitcoind/bitcoin-qtを上書きしてください。

初めてバージョン0.15.0を実行すると、chainstateデータベースが新しいフォーマットに変換されます。 これにはマシンの速度に応じて、数分から30分かかります。

fee_estimates.datのフォーマットがバージョン0.15.0で変更されました。 そのため、バージョン0.15へのアップグレードやバージョン0.15からダウングレードを行うとこれまでの手数料算出データは破棄されます。

blockデータベースのフォーマットも0.8.0から変更されており、0.8より前のバージョンからバージョン0.15.0に自動アップグレードするコードはありません。 0.7.xやそれより前のバージョンからアップグレードする場合、再度ブロックチェーンのダウンロードが必要です。 しかし、古いウォレットバージョンは引き続きサポートされます。

ダウングレードの警告

このリリースのchainstateデータベースは、前のリリースと互換性がありません。 そのため0.15.0を実行しており、前のバージョンに戻す場合は、旧バージョンを-reindex-chainstateオプションを付与して実行し、 chainstateのデータ構造を旧フォーマットで再構築する必要があります。

もしノードでプルーニングが有効になっている場合は、ブロックチェーンの全データを再ダウンロードして処理することになります。

互換性

Bitcoin CoreはLinuxカーネルやmacOS 10.8以降、Windows Vista以降などの複数のオペレーティングシステムで幅広くテストされています。 Windows XPはサポートされていません。

Bitcoin Coreは他のほとんどのUnixライクなシステムで動作するはずですが、それらで頻繁にテストはされていません。

主な変更点

ネットワークフォークの安全性強化

ブロックチェーンのフォークや異なる動作をするピアに対する安全対策として、Bitcoin Coreのピア接続と無効ブロックを処理する方法がいくつか変更されています。

  • minimum-chain-workより作業量の少ない不要なブロックは、tipより多くの作業があっても処理されなくなりました(tipが低作業量である場合のIBDの潜在的な問題)。 これによりピアがノードのリソースを無駄にするのを防ぎます。

  • IBD中にminimum-chain-workより少ない作業量を提供するピアはすぐに切断されます。

  • アウトバウンドピアに対しては、そのピアのベストブロックが少なくとも私達のピアのtipど同じくらいの作業をしているかどうかチェックします。 同様の作業量がなく20分のタイムアウト後も充分な作業をしているブロックが見当たらない場合、1つのgetheadersメッセージを送信し、さらに2分待ちます。 2分後にまたそのベストブロックの作業が不十分な場合、そのピアとの接続を切断します。このアルゴリズムの結果、過剰なネットワークトポロジーの変更が発生しないよう、 このロジックによって切断されない4つのアウトバウンドピアを確保し、偽のチェーン上にはない合理的なノードの数を確保します。

  • (BIP 152ではブロックの完全な検証が終わる前にCompact Blockを中継することが明示的に許可されているため、Compact Block以外のアナウンスにおいて) アウトバウンドピアが既に無効であることが分かっているブロックヘッダを提供した場合、接続が切断されます。

  • チェーンのtipが30分以上前進していない場合、tipが古いとみなし、追加のアウトバウンドピアに接続しようとします。 定期的なチェックにより、この追加のピア接続がされている場合、直近で新しいブロックのアナウンスが少ないピアとの接続を切断します。

  • 全ての既知の無効なブロック(チェーンに繋ごうとしたが無効であると判明したブロック)のセットは追跡され、 新しいヘッダが無効なチェーン上に構築されているかどうかチェックするのに使われます。これにより無効なブロックの子孫が全て同様にマークされます。

マイナーのブロックサイズ制限の廃止

0.13.0以降、getblocktemplateが返すブロックのサイズを制限するのにblockmaxweightの使用が推奨されるようになりましたが、 ブロックサイズを直接制限したいと思っていた人にとってはblockmaxsizeがオプションとして利用できました。 このオプションを使うといくつかのUIの問題と最適でない手数料の選択、わずかながらパフォーマンスの悪化が発生するため廃止されました。 さらにblockmaxsizeオプションは、ブロックサイズを直接制限するのではなく、暗黙的なblockmaxweightの計算にのみ使用されるようになりました。 weightではなくサイズでブロックを制限したいマイナーは、ブロックテンプレートから直接トランザクションを削除して手動で制限する必要があります。

リセット時のGUIの設定のバックアップ

GUIの設定は-resetguisettings引数が使われた際、設定が消去される前にdataディレクトリ内のguisettings.ini.bakに書き込まれるようになりました。 これはGUIの設定による問題の遡及的なトラブルシュートに使用できます。

重複ウォレットの禁止

以前は、ウォレットファイルを手動でコピーすることで同じウォレットを2回開くことができましたが、両方同時に開くと問題が発生しました。 このため同じウォレットのコピーを開くことはできなくなりました。

-minimumchainwork デバッグ引数の追加

隠れデバッグ引数-minimumchainworkが追加され、チェーンの検証時にカスタマイズしたminimum workの値を使用できるようになりました。

低レベルRPCの変更

  • getmininginfocurrentblocksizeの値は削除されました。

  • dumpwalletでファイルの上書きが許可されなくなりました。これは危険なユーザーの間違いを防ぐ安全策です。

  • backupwalletはウォレットを破壊することがないよう、元の同じファイルにバックアップしようとすると失敗するようになりました。

  • listsinceblockは未知のblockhash引数が渡された際に、ジェネシスブロックから全てのウォレットのトランザクションのリストを返すのではなく エラーを投げるようになりました。空の文字列が指定された場合もこの振る舞いは変わりません。

0.15.1 のチェンジログ

マイニング

  • #11100 7871a7d Fix confusing blockmax{size,weight} options, dont default to throwing away money (TheBlueMatt)

RPC と 他のAPI

  • #10859 2a5d099 gettxout: Slightly improve doc and tests (jtimon)
  • #11267 b1a6c94 update cli for estimate*fee argument rename (laanwj)
  • #11483 20cdc2b Fix importmulti bug when importing an already imported key (pedrobranco)
  • #9937 a43be5b Prevent dumpwallet from overwriting files (laanwj)
  • #11465 405e069 Update named args documentation for importprivkey (dusty-wil)
  • #11131 b278a43 Write authcookie atomically (laanwj)
  • #11565 7d4546f Make listsinceblock refuse unknown block hash (ryanofsky)
  • #11593 8195cb0 Work-around an upstream libevent bug (theuni)

P2Pプロトコルとネットワークコード

  • #11397 27e861a Improve and document SOCKS code (laanwj)
  • #11252 0fe2a9a When clearing addrman clear mapInfo and mapAddr (instagibbs)
  • #11527 a2bd86a Remove my testnet DNS seed (schildbach)
  • #10756 0a5477c net processing: swap out signals for an interface class (theuni)
  • #11531 55b7abf Check that new headers are not a descendant of an invalid block (more effeciently) (TheBlueMatt)
  • #11560 49bf090 Connect to a new outbound peer if our tip is stale (sdaftuar)
  • #11568 fc966bb Disconnect outbound peers on invalid chains (sdaftuar)
  • #11578 ec8dedf Add missing lock in ProcessHeadersMessage(…) (practicalswift)
  • #11456 6f27965 Replace relevant services logic with a function suite (TheBlueMatt)
  • #11490 bf191a7 Disconnect from outbound peers with bad headers chains (sdaftuar)

検証

  • #10357 da4908c Allow setting nMinimumChainWork on command line (sdaftuar)
  • #11458 2df65ee Don’t process unrequested, low-work blocks (sdaftuar)

ビルドシステム

  • #11440 b6c0209 Fix validationinterface build on super old boost/clang (TheBlueMatt)
  • #11530 265bb21 Add share/rpcuser to dist. source code archive (MarcoFalke)

GUI

  • #11334 19d63e8 Remove custom fee radio group and remove nCustomFeeRadio setting (achow101)
  • #11198 7310f1f Fix display of package name on ‘open config file’ tooltip (esotericnonsense)
  • #11015 6642558 Add delay before filtering transactions (lclc)
  • #11338 6a62c74 Backup former GUI settings on -resetguisettings (laanwj)
  • #11335 8d13b42 Replace save restoreWindowGeometry with Qt functions (MeshCollider)
  • #11237 2e31b1d Fixing division by zero in time remaining (MeshCollider)
  • #11247 47c02a8 Use IsMine to validate custom change address (MarcoFalke)

ウォレット

  • #11017 9e8aae3 Close DB on error (kallewoof)
  • #11225 6b4d9f2 Update stored witness in AddToWallet (sdaftuar)
  • #11126 2cb720a Acquire cs_main lock before cs_wallet during wallet initialization (ryanofsky)
  • #11476 9c8006d Avoid opening copied wallet databases simultaneously (ryanofsky)
  • #11492 de7053f Fix leak in CDB constructor (promag)
  • #11376 fd79ed6 Ensure backupwallet fails when attempting to backup to source file (tomasvdw)
  • #11326 d570aa4 Fix crash on shutdown with invalid wallet (MeshCollider)

テストとQA

  • #11399 a825d4a Fix bip68-sequence rpc test (jl2012)
  • #11150 847c75e Add getmininginfo test (mess110)
  • #11407 806c78f add functional test for mempoolreplacement command line arg (instagibbs)
  • #11433 e169349 Restore bitcoin-util-test py2 compatibility (MarcoFalke)
  • #11308 2e1ac70 zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke)
  • #10798 716066d test bitcoin-cli (jnewbery)
  • #11443 019c492 Allow “make cov” out-of-tree; Fix rpc mapping check (MarcoFalke)
  • #11445 51bad91 0.15.1 Backports (MarcoFalke)
  • #11319 2f0b30a Fix error introduced into p2p-segwit.py, and prevent future similar errors (sdaftuar)
  • #10552 e4605d9 Tests for zmqpubrawtx and zmqpubrawblock (achow101)
  • #11067 eeb24a3 TestNode: Add wait_until_stopped helper method (MarcoFalke)
  • #11068 5398f20 Move wait_until to util (MarcoFalke)
  • #11125 812c870 Add bitcoin-cli -stdin and -stdinrpcpass functional tests (promag)
  • #11077 1d80d1e fix timeout issues from TestNode (jnewbery)
  • #11078 f1ced0d Make p2p-leaktests.py more robust (jnewbery)
  • #11210 f3f7891 Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider)
  • #11234 f0b6795 Remove redundant testutil.cpp h files (MeshCollider)
  • #11215 cef0319 fixups from set_test_params() (jnewbery)
  • #11345 f9cf7b5 Check connectivity before sending in assumevalid.py (jnewbery)
  • #11091 c276c1e Increase initial RPC timeout to 60 seconds (laanwj)
  • #10711 fc2aa09 Introduce TestNode (jnewbery)
  • #11230 d8dd8e7 Fixup dbcrash interaction with add_nodes() (jnewbery)
  • #11241 4424176 Improve signmessages functional test (mess110)
  • #11116 2c4ff35 Unit tests for script/standard and IsMine functions (jimpo)
  • #11422 a36f332 Verify DBWrapper iterators are taking snapshots (TheBlueMatt)
  • #11121 bb5e7cb TestNode tidyups (jnewbery)
  • #11521 ca0f3f7 travis: move back to the minimal image (theuni)
  • #11538 adbc9d1 Fix race condition failures in replace-by-fee.py, sendheaders.py (sdaftuar)
  • #11472 4108879 Make tmpdir option an absolute path, misc cleanup (MarcoFalke)
  • #10853 5b728c8 Fix RPC failure testing (again) (jnewbery)
  • #11310 b6468d3 Test listwallets RPC (mess110)

その他

  • #11377 75997c3 Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (TheBlueMatt)
  • #11437 dea3b87 [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake)
  • #11318 8b61aee Put back inadvertently removed copyright notices (gmaxwell)
  • #11442 cf18f42 [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake)
  • #10957 50bd3f6 Avoid returning a BIP9Stats object with uninitialized values (practicalswift)
  • #11539 01223a0 [verify-commits] Allow revoked keys to expire (TheBlueMatt)

クレジット

このリリースに直接貢献されたみなさん、ありがとうございます :

  • Andreas Schildbach
  • Andrew Chow
  • Chris Moore
  • Cory Fields
  • Cristian Mircea Messel
  • Daniel Edgecumbe
  • Donal OConnor
  • Dusty Williams
  • fanquake
  • Gregory Sanders
  • Jim Posen
  • John Newbery
  • Johnson Lau
  • João Barbosa
  • Jorge Timón
  • Karl-Johan Alm
  • Lucas Betschart
  • MarcoFalke
  • Matt Corallo
  • Paul Berg
  • Pedro Branco
  • Pieter Wuille
  • practicalswift
  • Russell Yanofsky
  • Samuel Dobson
  • Suhas Daftuar
  • Tomas van der Wansem
  • Wladimir J. van der Laan

Transifexでの翻訳を手伝ってくれたみなさんもありがとうございます。