Bitcoin Core 0.18.0

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.18.0は以下から入手可能です。

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

これは新しいメジャーバージョンリリースで、新しい機能や様々なバグ修正とパフォーマンス改善、更新された翻訳を含みます。

バグを発見した場合は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分かかります。

blockデータベースのフォーマットも0.8.0から変更されており、0.8より前のバージョンから バージョン0.15.0以降に自動アップグレードするコードはありません。 0.7.xやそれより前のバージョンからブロックチェーンを再ダウンロードすることなく直接アップグレードすることはサポートされていません。 しかし、いつものように、旧ウォレットバージョンは引き続きサポートされています。

互換性

Bitcoin CoreはLinuxカーネルやmacOS 10.10以降、Windows 7以降を使用している オペレーティングシステムでサポートされ、広範囲にテストされています。 サポートされていないシステムでBitcoin Coreを使用するのはお勧めできません。

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

0.17.0以降、10.10未満のmacOSはサポートされなくなりました。0.17.0は Qt 5.9.xを使ってビルドされていますが、それが10.10未満のmacOSをサポートしていません。 さらに、macOSのダークモードが有効になってもBitcoin Coreの外観は変わりません。

これまでサポートされていたCPUプラットフォームに加えて、このリリースの コンパイル済みディストリビューションはRISC-Vプラットフォーム用のバイナリも提供しています。

contrib/init/bitcoind.serviceにあるsystemdのUnit設定ファイルを使用している場合は、 ~bitcoin/.bitcoinの代わりに/var/lib/bitcoindをデータディレクトリとして使用するように 変更されました。新しい設定ファイルに切り替える際は、/var/lib/bitcoindが存在するファイルシステムに 十分なスペースがあることを確認し(df -h /var/lib/bitcoindで確認できます)、必要に応じて 既存のデータディレクトリをコピーします。詳しくはsystemd initファイル セクションを ご覧ください。

既知の問題

ウォレットGUI

(1)コインコントロール機能を有効にし、(2)同時にロードされた複数のウォレットを使用している 上級ユーザーの場合:ドロップダウンメニューを使用してウォレットを切り替えると、コインコントロールの 選択ダイアログが誤ったウォレットの状態を保持することがあります。今のところ、複数のウォレットが ロードされた状態でコインコントロール機能を使用しないことをお勧めします。

主な変更点

マイニング

  • segwitルールが指定されていないとgetblocktemplateの呼び出しは失敗します。 segwitを指定せずにgetblocktemplateを呼び出すと、マイナーの報酬が下がることに なるため、ほとんど間違いなく設定ミスです。呼び出しに失敗すると、segwitルールを 有効にするための方法が記載されたエラーメッセージが表示されます。

設定オプションの変更

  • 設定ファイル内に認識できないセクション名が使用されている場合、警告が表示されます。 認識するセクションは[test], [main]および[regtest]です。

  • ZMQが追加のメッセージをドロップする前に、メモリ内のキューに入れるメッセージの最大数 (high water mark)を設定するための4つの新しいオプションが利用可能になりました。 デフォルト値は1000で、以前のリリースで使用されていた値と同じです。詳しくは ZMQのドキュメントを ご覧ください。

  • rpcallowipオプションを使って全てのネットワークインターフェースの待ち受けをすることは 出来なくなりました。代わりにrpcbindパラメータを使って待ち受けするIPアドレスを指定する 必要があります。パブリックネットワーク接続を介したRPCコマンドの待ち受けは安全ではないため 無効にする必要があります。そのためユーザーがそのような設定をした場合、警告が表示されるように なりました。Dockerなどのツールを使用するためにRPCを公開する必要がある場合は、必ずRPCを localhostにのみバインドするようにしてください。例:docker run [...] -p 127.0.0.1:8332:8332(通常のDockerのポート指定に対して:8332は余分です)

  • 設定ファイル内でrpcpasswordオプションで設定するパスワードにハッシュマーク(#)が 含まれていると、それがパスワードなのかコメントなのか曖昧になるため、起動時にエラーが 発生するようになりました。

  • whitelistforcerelayオプションはmempoolに受け入れられない場合でも、 ホワイトリストのピアからのトランザクションを中継するために使用されます。このオプションは デフォルトでオフになり、ポリシーや切断/BANの動作の変更により、他のノードに ホワイトリスト登録されているノードがピアによって削除されることはありません。 ユーザーはコマンドラインオプションを使用して、この機能を明示的に有効にすることができます (将来この機能は廃止される可能性があるため、必要な場合はBitcoin Coreプロジェクトに 連絡し、ユースケースについてお知らせください)。

systemd initファイル

systemdのinitファイル(contrib/init/bitcoind.service)は、~bitcoin/.bitcoin の代わりに/var/lib/bitcoindをデータディレクトリとして使用するように変更されました。 この変更によりBitcoin Coreは他のサービスとの一貫性が高まり、systemdのinitの設定は 既存のUpstartやOpenRCの設定との一貫性が高まります。

設定、PIDおよびデータディレクトリはsystemdによって完全に管理され、ファイルの作成や パーミッションなどを管理します。詳しくは systemd.exec(5) をご覧ください。

contrib/init以下で提供されるinitファイルを使用する際は、/etc/bitcoin/bitcoin.confdatadirオプションを上書きしても効果はありません。これはinitファイルで指定された コマンドライン引数が/etc/bitcoin/bitcoin.confで指定されたオプションよりも優先されるためです。

ドキュメンテーション

  • JSON-RPCインターフェースに関する新しいドキュメント では、ウォレットの状態やmempoolの状態など、RPCの結果に異なるサブシステムの データソース間の不整合が含まれる可能性がある場合について説明しています。 RESTインターフェースのドキュメント に同じルールが適用されることを示す注記が追加されています。

  • このインターフェースを保護する方法に関する詳細情報が JSON-RPCドキュメント に追加されています。

  • bitcoin.confに関する新しいドキュメント にBitcoin Coreを設定するための、その使用方法が記載されています。

  • Bitcoin CoreのBIP174 Partially-Signed Bitcoin Transactions (PSBT) について新しいドキュメントが追加されています。PSBTを使用すると 複数のプログラムが共同で作業して新しいトランザクションの作成、署名 およびブロードキャストができるようになります。これは、オフライン(コールドストレージ) ウォレットやマルチシグウォレット、CoinJoinの実装など、完全なトランザクションを 作成するために2つ以上のプログラムが対話する必要がある場合に役立ちます。

  • output script descriptor のドキュメントが、output scriptsを記述するためのまだ開発中の言語の (ウォレットや他のプログラムが、どのアドレスが支払いを受け取ったかなどの通知を 受け取りたいといった)新機能に関する情報で更新されました。 この言語は現在、これらのリリースノートに記載されている複数の資金および 更新されたRPCで使用されており、他のRPCおよび基盤となるウォレット構造にも 採用されると予想されています。

ビルドシステムの変更

  • 新しい--disable-bip70オプションを./configureに渡すと、Bitcoin-Qtへの BIP70のペイメントプロトコルのサポートやlibsslへのリンクを防止するすることができます。 ペイメントプロトコルが過去Bitcoin Coreにlibsslの脆弱性を露呈させたため、 BIP70のサポートを必要としないユーザーは、将来の脆弱性にさらされる可能性を 減らすためにこのオプションを使用することをお勧めします。

  • (GUIビルド時の)Qtの最小バージョンが5.2から5.5.1になりました (依存システム は5.9.7を提供します)。

新しいRPC

  • getnodeaddressesはこのノードが認識しているピアのアドレスを返します。 DNS seederを使わずに接続するノードを見つけるために使用されるかもしれません。

  • listwalletdirはウォレットディレクトリ(デフォルトのウォレットディレクトリ もしくは-walletdirパラメータで設定されたディレクトリのいずれか)内の ウォレットのリストを返します。

  • getrpcinfoはRPCサーバーのランタムの詳細を返します。現時点では、 現在アクティブなコマンドの配列と、ランタイムの実行時間を返します。

  • deriveaddressesoutput descriptor に対応する1つ以上のアドレスを返します。

  • getdescriptorinfoはdescriptorを受け取り、その計算されたチェックサムを含む descriptorに関する情報を返します。

  • joinpsbtsは複数の異なるPSBTを単一のPSBTにマージします。複数のPSBTは異なる インプットを持っている必要があります。結果のPSBTには、すべてのPSBTのすべての インプットおよびアウトプットが含まれます。いずれかのPSBTで提供される署名は すべてドロップされます。

  • analyzepsbtはPSBTを検査し、PSBTに含まれている情報および、トランザクションを 完成させるために必要な次の手順についての情報を提供します。PSBTのインプット毎に、 analyzepsbtはUTXOを提供する必要があるかどうか、どの公開鍵を提供する必要があるか、 どのスクリプトを提供する必要があるか、また必要な署名は何かといったものを含む そのインプットに欠けている情報を提供します。すべてのインプットに対し、その インプットを完成させるために必要な役割もリストされ、analyzepsbtではPSBTを 完成させるために一般的に必要な次の役割もリストする。analyzepsbtは、必要な情報が 十分あれば、完成されたトランザクションの手数料の見積もりおよび仮想サイズの見積もりも 提供します。

  • utxoupdatepsbtは部分トランザクションによって使用されているアウトプットを 見つけるため未使用のトランザクションアウトプット(UTXO)のセットを検索します。 署名アルゴリズムは使用されるUTXOの情報を必要とするため、PSBTはそれを提供するため UTXOを持つ必要があります。インプットがsegwitの場合、UTXO自体が必要です。 非segwitのアウトプットの場合は、署名者が正しいものに署名していることを 署名者自身が確認できるよう前のトランザクション全体が必要になります。 残念ながらUTXOセットにはUTXOしか含まれておらず、完全なトランザクションは 含まれていないため、utxoupdatepsbtはsegwitのインプットに対してのみUTXOを 追加します。

更新されたRPC

注:主にテストに役立ついくつかの低レベルのRPCのの変更は以下の「低レベルの変更」 セクションに記述しています。

  • getpeerinfoはピアのBIP133 fee filterに設定されたminfeefilterフィールドを 追加で返すようになりました。これを使用してデフォルトの最低中継手数料を 下回ってトランザクションを受け入れても構わないというピアがあるか検出することが できます。

  • verbose=trueがセットされたgetrawmempoolのようなmempool RPCは、 トランザクション(もしくはその未承認の先祖)がノードやマイナーに 同じインプットを使用したより手数料の高いトランザクションに置き換えるよう 依頼するオプトインが有効かどうかを示す”bip125-replaceable”の値を追加で 返すようになりました。

  • settxfeeはこれまで許可された最低額を下回る手数料を設定しようとする試みを 黙って無視していましたが、警告が表示されるようになりました。”0”という 特別な値は最低値を要求するのにまだ使用されます。

  • getaddressinfoはウォレットがそのアドレスをお釣りのアウトプットに 使用したかどうかを示すischangeフィールドを提供するようになりました。

  • importmultiはP2WSH, P2WPKH, P2SH-P2WPKHおよびP2SH-P2WSHをサポートするよう 更新されました。P2WSHやP2SH-P2WSHに対するリクエストではwitnessscript パラメータを追加で受け入れます。

  • importmultiはリクエスト毎にフィールドが無視されたり、矛盾がある場合は、 それを説明する文字列の配列を表示するwarningsフィールドを追加で返すように なりました。

  • getaddressinfoは、Bitcoin CoreがアドレスのscriptPubKeyやオプションで redeemScript、witnessScriptについて十分に知っている場合、そのアドレスに 送信された資金をインプットとして使用する未署名のトランザクションを 作成することができることを示すsolvablebooleanフィールドを追加で 返すようになりました。

  • getaddressinfolistunspentおよび scantxoutset RPCは、 全てのkey pathおよび(秘密鍵を除く)アドレスの署名情報を含む output descriptorを含むdescフィールドを追加で返すようになりました。 descフィールドはgetaddressinfoおよびlistunspentで、 そのアドレスがsolvableの場合のみ返されます。

  • importprivkeyはインポートされる秘密鍵に対応したアドレスもしくは 公開鍵に事前に設定されたラベルを保持します。例えば、以前のリリースの Bitcoin Coreで”cold wallet”というラベルが付いたwatch-onlyアドレスを インポートしていた場合、その後秘密鍵をインポートすると、デフォルトで アドレスのラベルがデフォルトの空文字列ラベル(”“)にリセットされます。 このリリースでは、”cold wallet”という以前のラベルは保持されます。 importprivkeyを呼び出す際にデフォルト以外の任意のラベルをオプションで 指定した場合は、新しいラベルがアドレスに適用されます。

  • getblocktemplateの変更点についてはマイニングセクションをご覧ください。

  • このノードでブロックがRPC経由で組み立てられない場合、getmininginfocurrentblockweightおよびcurrentblocktxを省略します。

  • getrawtransaction RPCおよびRESTエンドポイントはトランザクションの 未使用のUTXOセットをチェックしなくなりました。その他の動作は次のとおりです。
    1. ブロックハッシュが提供されている場合、対応するブロックをチェックします。
    2. ブロックハッシュが提供されない場合、mempoolをチェックします。
    3. ブロックハッシュは提供されないがtxindexが有効な場合、txindexもチェックします。
  • unloadwalletは同期的になりました。つまりウォレットを完全にアンロードされるまで 応答を返しません。

  • importmultiはdescriptorからのアドレスのインポートをサポートするようになりました。 リクエスト内で”scriptPubKey”の代わりに”desc”パラメータを指定することができます。 またオプションで範囲指定されたdescriptorの範囲として、インポートする範囲の 開始と終了を指定できます。importmulti経由でインポートされた鍵のオリジン情報を 持つdescriptorは、PSBTの作成に使用するため、それらの鍵のオリジン情報をウォレットに 格納します。descriptorに関する詳細情報は こちら をご覧ください。

  • listunspentはP2WSHやP2SH-P2WSHアウトプット場合、witnessScriptも 返すよう変更されました。

  • createwalletに空のウォレットを作成するためのblank引数がオプションで追加 されました。空のウォレットには鍵やHD seedはありません。また0.18より古い ソフトウェアで開くことはできません。空のウォレットに(sethdseedを使用して) HD seedをセットしたり、秘密鍵、スクリプト、アドレスや他の監視専用のものが インポートされると、空のウォレットではなくなり0.17.xで開くことができるように なります。空のウォレットを暗号化するとHD seedもセットされます。

廃止もしくは削除されたRPC

  • signrawtransactionはバージョン0.17.0で廃止され特別な設定オプションに 隠された後、削除されました。

  • ‘account’ APIはv0.17で廃止された後、削除されました。アカウントの代わりに ‘label’ APIが0.17で導入されました。’account’ APIから’label’ APIへの変更の 詳細についてはv0.17のリリースノート をご覧ください。

  • addwitnessaddressはバージョン0.16.0で廃止された後、削除されました。

  • generateは廃止され、今後のメジャーバージョンで完全に削除される予定です。 このRPCはテストにのみ使用されていますが、その実装は複数のサブシステム (ウォレットとマイニング)にまたがるため、ウォレットとノード間の インターフェースを単純化するために廃止されます。テスト目的でgenerateを 使用しているプロジェクトは、generatetoaddress RPCを使用するように移行 する必要があります。このRPCはウォレットコンポーネントを必要としないか 使用しません。getnewaddress RPCから返されたアドレスでgeneratetoaddress を呼び出すと、古いgenerate RPCと同じ機能が得られます。このバージョンで 引き続きgenerateを使用する場合は、-deprecatedrpc=generate設定オプションを 指定してbitcoindを再起動してください。

  • validateaddressコマンドの一部が廃止されgetaddressinfoに移動されこと を思い出してください。次の非推奨フィールドは、getaddressinfoに移動されました : ismineiswatchonlyscripthexpubkeyssigsrequiredpubkeyembeddediscompressedlabeltimestamphdkeypathkdmasterkeyid

  • addressフィールドは、validateaddressおよびgetaddressinfo RPCメソッドから 削除されました。このフィールドは、P2PKHアドレスを使用して公開鍵を参照していたため、 混乱の元でした。クライアントは、P2SHおよびP2WSHでラップされたアドレスに対して embedded.addressフィールドを使用し、マルチシグ参加者を検査するのにpubkeys を使用する必要があります。

RESTの変更点

  • 新しい/rest/blockhashbyheight/エンドポイントが追加され、 (Genesis Block後の何ブロックあるかを指定する)ブロックの高さをベースに 現在のベストブロックチェーンのブロックのハッシュを取得します。

GUI

  • 新しいウィンドウメニューが既存のファイル、設定、ヘルプメニューに加えて 追加されます。新しいウィンドウを開いた他のメニューのいくつかの項目は、 この新しいウィンドウメニューに移動します。

  • 送金タブでは、”要求手数料のみを支払う”チェックボックスは削除されました。 代わりに、ユーザーはカスタム手数料率フィールドの値を単純にノードに 設定されている最低中継手数料までずっと減らすことができます。

  • 概要タブでは、watch-onlyの残高は、ウォレットcreatewallet RPCを使って 作成され、disable_private_keysパラメータがtrueに設定されている場合に 表示される残高になります。

  • launch-on-startupオプションはmacosxの最小バージョン10.11以上でコンパイル されている場合、macOSでは使用できなくなりました(デプロイするSDKのバージョンを 設定するには、CXXFLAGS=”-mmacosx-version-min=10.11” CFLAGS=”-mmacosx-version-min=10.11”を使用します)。

ツール

  • 新しくbitcoin-walletツールがBitcoin Coreの他の実行ファイルと一緒に 配布されます。RPCを使用しなくても、このツールは現在、新しいウォレットを 作成したり、既存のウォレットについて、暗号されているか、HD seedを使っているか、 どれくらいの数のトランザクションが含まれているか、いくつのアドレス帳を 持っているかなどの基本情報を表示できます。

計画された変更

このセクションでは、他のBitcoinソフトウェアやサービスに影響を与える 可能性があるBitcoin Coreへの計画的な変更について説明します。

  • バージョン0.16.0以降、Bitcoin Coreの組み込みウォレットはユーザーが 支払いを受けたい時にデフォルトでP2SHでラップしたsegwitアドレスを生成します。 これらのアドレスは広く利用されている全てのソフトウェアと後方互換性が あります。(0.18から1年後に予定されている)Bitcoin Core 0.20からは、 Bitcoin Coreはデフォルトでネイティブのsegwitアドレス(bech32)を 使用するようになり、手数料の節約やその他の利点がもたらされます。 現在、多くのウォレットやサービスが既にbech32アドレスへの送金を サポートしており、Bitcoin Coreプロジェクトで十分な追加の採択が みられる場合は代わりにBitcoin Core 0.19.0で、デフォルトの受信アドレスが bech32になります(2019年11月頃)。ユーザーがGUIやRPCで要求した場合、 引き続きP2SHでラップされたsegwitアドレスは提供されます。 また更新を望まいない場合は、デフォルトのアドレスタイプを設定できます。 (同様に、デフォルトを変更したいと思っている先駆的なユーザーは、 Bitcoin Coreの0.16.0以上でaddresstype=bech32設定オプションを 設定しているかもしれません。)

廃止されたP2Pメッセージ

  • BIP61のrejectメッセージが廃止されました。rejectメッセージはP2Pネットワークでは 使用例がなく、ほとんどのネットワークノードによるデバッグのためにログに記録される だけです。さらに、それらは帯域幅を増加させ、プライバシーとセキュリティにとって 有害になる可能性があります。v0.17以降、-enablebip61=0オプションを使用して BIP61メッセージを無効にすることが可能です。BIP61メッセージは、完全に削除される前に 将来のバージョンでデフォルトで無効にされるでしょう。

低レベルの変更

このセクションでは主にテストに役立つRPCの変更について説明しますが、 運用環境にはほとんど関係がありません。変更は完全性のために言及されています。

RPC

  • submitblock RPCは以前、拒否されたブロックが最初にそのブロックを処理した際に 無効であった理由を返し、その後同じブロックを処理すると”duplicate”拒否メッセージを 返していました。それが無効なブロックを拒否する基本的な理由を常に返すようになり、 “duplicate”は既に受け入れられている有効なブロックに対してのみ返されます。

  • 新しいsubmitheader RPCでは、ブロックヘッダーをブロックとは別に送信できます。 これはおそらくテストにしか役立ちません。

  • signrawtransactionwithkey および signrawtransactionwithwallet RPCは P2WSHやP2SH-P2WSHアウトプットのケースにおいて、オプションでwitnessScriptを 受け入れるよう変更されました。これはlistunspentの変更と互換性があります。

  • walletprocesspsbt および walletcreatefundedpsbt RPCについて、 bip32derivsパラメータがtrueに設定されていても、公開鍵の鍵メタデータが まだ更新されていない場合、その鍵は独立した鍵であるかのように導出パスを持ちます (つまり、導出パスはなく、マスターフィンガープリントもその鍵自体のものになります)。

設定

  • -usehd設定オプションはバージョン0.16で削除されました。そのバージョン以降、 新しく作成されたウォレットは全て階層的決定性ウォレットです。このリリースでは、 -usehdの指定が無効な設定オプションになります。

ネットワーク

  • このリリースでは未使用の着信接続のスロットがある場合、(無効なデータを送信するなどの) 不正動作でノードが自動的に切断されたピアが、ノードに再接続できるようになります。 スロットがいっぱいになると、(不正動作をしたノードが、他の多くのピアのいない インターネットの一部に接続するなど、他の方法であなたのノードの役に立たない場合) 履歴に問題のないノードのためにスペースを空けるため、問題があったノードは切断されます。 以前は、Bitcoin Coreは不正動作したピアのIPアドレスを一定期間(デフォルトで1日) 禁止していましたが、これは複数のIPアドレスを持つ攻撃者によって簡単に回避されました。 setban RPCを使用するなどして手動でピアを禁止しても、そのピアからの接続は 依然拒否されます。

ウォレット

  • HD seedが最初に有効になった時、鍵メタデータをアップグレードする必要があります。 暗号化されていないウォレットの場合、これはウォレットのロード時に発生します。 暗号化されたウォレットの場合、初めてウォレットをアンロックした際に発生します。

  • 新しくウォレットを暗号化してもソフトウェアを再起動する必要がなくなりました。 代わりにウォレットは完全にアンロードされ、同じ効果を達成するため再ロードされます。

  • Bitcoin Coreのサブプロジェクトでは、コマンドラインユーザーがBitcoin Coreで いくつかの一般的なハードウェア鍵管理デバイスを使用できるようにする Hardware Wallet Interaction (HWI)スクリプトを提供します。 詳しくはプロジェクトページをご覧ください。

セキュリティ

  • このリリースでは、使用される乱数生成器(RNG)がOpenSSLのものからBitcoin Core 独自の実装に変更されていますが、Bitcoin Coreによって収集されたエントロピーは OpenSSLに送り出され、プログラムが強いランダム性を必要とする際に読み戻されます。 これにより、過去セキュリティ問題を引き起こしていた依存関係があるOpenSSLへの 依存がほとんど必要なくなります。新しい実装は、rdseed CPU命令をサポートする ハードウェアを含む複数のソースからエントロピーを収集します。

特定のプラットフォームに対する変更

  • macOSでは、初期ブロックチェーンダウンロード(IBD)中 、現在のチェーンの先頭から 100ブロック前まで追いつくまで、またはチェーンデータの再インデックス中は、 アプリケーションのCPUスロットリング(”app nap”)を止めます。これは、 オペレーティングシステムが 電力を節約しようとするためにこれらの操作に 過度に長い時間がかかるのを防ぐのに役立ちます。

0.18.0のチェンジログ

コンセンサス

  • #14247 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt)

マイニング

  • #14811 Mining: Enforce that segwit option must be set in GBT (jnewbery)

ブロックとトランザクションのハンドリング

  • #13310 Report progress in ReplayBlocks while rolling forward (promag)
  • #13783 validation: Pass tx pool reference into CheckSequenceLocks (MarcoFalke)
  • #14834 validation: Assert that pindexPrev is non-null when required (kallewoof)
  • #14085 index: Fix for indexers skipping genesis block (jimpo)
  • #14963 mempool, validation: Explain cs_main locking semantics (MarcoFalke)
  • #15193 Default -whitelistforcerelay to off (sdaftuar)
  • #15429 Update assumevalid, minimumchainwork, and getchaintxstats to height 563378 (gmaxwell)
  • #15552 Granular invalidateblock and RewindBlockIndex (MarcoFalke)
  • #14841 Move CheckBlock() call to critical section (hebasto)

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

  • #14025 Remove dead code for nVersion=10300 (MarcoFalke)
  • #12254 BIP 158: Compact Block Filters for Light Clients (jimpo)
  • #14073 blockfilter: Avoid out-of-bounds script access (jimpo)
  • #14140 Switch nPrevNodeCount to vNodesSize (pstratem)
  • #14027 Skip stale tip checking if outbound connections are off or if reindexing (gmaxwell)
  • #14532 Never bind INADDR_ANY by default, and warn when doing so explicitly (luke-jr)
  • #14733 Make peer timeout configurable, speed up very slow test and ensure correct code path tested (zallarak)
  • #14336 Implement poll (pstratem)
  • #15051 IsReachable is the inverse of IsLimited (DRY). Includes unit tests (mmachicao)
  • #15138 Drop IsLimited in favor of IsReachable (Empact)
  • #14605 Return of the Banman (dongcarl)
  • #14970 Add dnsseed.emzy.de to DNS seeds (Emzy)
  • #14929 Allow connections from misbehavior banned peers (gmaxwell)
  • #15345 Correct comparison of addr count (dongcarl)
  • #15201 Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes (practicalswift)
  • #14626 Select orphan transaction uniformly for eviction (sipa)
  • #15486 Ensure tried collisions resolve, and allow feeler connections to existing outbound netgroups (sdaftuar)

ウォレット

  • #13962 Remove unused dummy_tx variable from FillPSBT (dongcarl)
  • #13967 Don’t report minversion wallet entry as unknown (instagibbs)
  • #13988 Add checks for settxfee reasonableness (ajtowns)
  • #12559 Avoid locking cs_main in some wallet RPC (promag)
  • #13631 Add CMerkleTx::IsImmatureCoinBase method (Empact)
  • #14023 Remove accounts RPCs (jnewbery)
  • #13825 Kill accounts (jnewbery)
  • #10605 Add AssertLockHeld assertions in CWallet::ListCoins (ryanofsky)
  • #12490 Remove deprecated wallet rpc features from bitcoin_server (jnewbery)
  • #14138 Set encrypted_batch to nullptr after delete. Avoid double free in the case of NDEBUG (practicalswift)
  • #14168 Remove ENABLE_WALLET from libbitcoin_server.a (jnewbery)
  • #12493 Reopen CDBEnv after encryption instead of shutting down (achow101)
  • #14282 Remove -usehd option (jnewbery)
  • #14146 Remove trailing separators from -walletdir arg (PierreRochard)
  • #14291 Add ListWalletDir utility function (promag)
  • #14468 Deprecate generate RPC method (jnewbery)
  • #11634 Add missing cs_wallet/cs_KeyStore locks to wallet (practicalswift)
  • #14296 Remove addwitnessaddress (jnewbery)
  • #14451 Add BIP70 deprecation warning and allow building GUI without BIP70 support (jameshilliard)
  • #14320 Fix duplicate fileid detection (ken2812221)
  • #14561 Remove fs::relative call and fix listwalletdir tests (promag)
  • #14454 Add SegWit support to importmulti (MeshCollider)
  • #14410 rpcwallet: ischange field for getaddressinfo RPC (mrwhythat)
  • #14350 Add WalletLocation class (promag)
  • #14689 Require a public key to be retrieved when signing a P2PKH input (achow101)
  • #14478 Show error to user when corrupt wallet unlock fails (MeshCollider)
  • #14411 Restore ability to list incoming transactions by label (ryanofsky)
  • #14552 Detect duplicate wallet by comparing the db filename (ken2812221)
  • #14678 Remove redundant KeyOriginInfo access, already done in CreateSig (instagibbs)
  • #14477 Add ability to convert solvability info to descriptor (sipa)
  • #14380 Fix assert crash when specified change output spend size is unknown (instagibbs)
  • #14760 Log env path in BerkeleyEnvironment::Flush (promag)
  • #14646 Add expansion cache functions to descriptors (unused for now) (sipa)
  • #13076 Fix ScanForWalletTransactions to return an enum indicating scan result: success / failure / user_abort (Empact)
  • #14821 Replace CAffectedKeysVisitor with descriptor based logic (sipa)
  • #14957 Initialize stop_block in CWallet::ScanForWalletTransactions (Empact)
  • #14565 Overhaul importmulti logic (sipa)
  • #15039 Avoid leaking nLockTime fingerprint when anti-fee-sniping (MarcoFalke)
  • #14268 Introduce SafeDbt to handle Dbt with free or memory_cleanse raii-style (Empact)
  • #14711 Remove uses of chainActive and mapBlockIndex in wallet code (ryanofsky)
  • #15279 Clarify rescanblockchain doc (MarcoFalke)
  • #15292 Remove boost::optional-related false positive -Wmaybe-uninitialized warnings on GCC compiler (hebasto)
  • #13926 [Tools] bitcoin-wallet - a tool for creating and managing wallets offline (jnewbery)
  • #11911 Free BerkeleyEnvironment instances when not in use (ryanofsky)
  • #15235 Do not import private keys to wallets with private keys disabled (achow101)
  • #15263 Descriptor expansions only need pubkey entries for PKH/WPKH (sipa)
  • #15322 Add missing cs_db lock (promag)
  • #15297 Releases dangling files on BerkeleyEnvironment::Close (promag)
  • #14491 Allow descriptor imports with importmulti (MeshCollider)
  • #15365 Add lock annotation for mapAddressBook (MarcoFalke)
  • #15226 Allow creating blank (empty) wallets (alternative) (achow101)
  • #15390 [wallet-tool] Close bdb when flushing wallet (jnewbery)
  • #15334 Log absolute paths for the wallets (hebasto)
  • #14978 Factor out PSBT utilities from RPCs for use in GUI code; related refactoring (gwillen)
  • #14481 Add P2SH-P2WSH support to listunspent RPC (MeshCollider)
  • #14021 Import key origin data through descriptors in importmulti (achow101)
  • #14075 Import watch only pubkeys to the keypool if private keys are disabled (achow101)
  • #15368 Descriptor checksums (sipa)
  • #15433 Use a single wallet batch for UpgradeKeyMetadata (jonasschnelli)
  • #15408 Remove unused TransactionError constants (MarcoFalke)
  • #15583 Log and ignore errors in ListWalletDir and IsBerkeleyBtree (promag)
  • #14195 Pass privkey export DER compression flag correctly (fingera)
  • #15299 Fix assertion in CKey::SignCompact (promag)
  • #14437 Start to separate wallet from node (ryanofsky)
  • #15749 Fix: importmulti only imports origin info for PKH outputs (sipa)

RPCおよび他のAPI

  • #12842 Prevent concurrent savemempool (promag)
  • #13987 Report minfeefilter value in getpeerinfo RPC (ajtowns)
  • #13891 Remove getinfo deprecation warning (jnewbery)
  • #13399 Add submitheader (MarcoFalke)
  • #12676 Show bip125-replaceable flag, when retrieving mempool entries (dexX7)
  • #13723 PSBT key path cleanups (sipa)
  • #14008 Preserve a format of RPC command definitions (kostyantyn)
  • #9332 Let wallet importmulti RPC accept labels for standard scriptPubKeys (ryanofsky)
  • #13983 Return more specific reject reason for submitblock (MarcoFalke)
  • #13152 Add getnodeaddresses RPC command (chris-belcher)
  • #14298 rest: Improve performance for JSON calls (alecalve)
  • #14297 Remove warning for removed estimatefee RPC (jnewbery)
  • #14373 Consistency fixes for RPC descriptions (ch4ot1c)
  • #14150 Add key origin support to descriptors (sipa)
  • #14518 Always throw in getblockstats if -txindex is required (promag)
  • #14060 ZMQ: add options to configure outbound message high water mark, aka SNDHWM (mruddy)
  • #13381 Add possibility to preserve labels on importprivkey (marcoagner)
  • #14530 Use RPCHelpMan to generate RPC doc strings (MarcoFalke)
  • #14720 Correctly name RPC arguments (MarcoFalke)
  • #14726 Use RPCHelpMan for all RPCs (MarcoFalke)
  • #14796 Pass argument descriptions to RPCHelpMan (MarcoFalke)
  • #14670 http: Fix HTTP server shutdown (promag)
  • #14885 Assert that named arguments are unique in RPCHelpMan (promag)
  • #14877 Document default values for optional arguments (MarcoFalke)
  • #14875 RPCHelpMan: Support required arguments after optional ones (MarcoFalke)
  • #14993 Fix data race (UB) in InterruptRPC() (practicalswift)
  • #14653 rpcwallet: Add missing transaction categories to RPC helptexts (andrewtoth)
  • #14981 Clarify RPC getrawtransaction’s time help text (benthecarman)
  • #12151 Remove cs_main lock from blockToJSON and blockheaderToJSON (promag)
  • #15078 Document bytessent_per_msg and bytesrecv_per_msg (MarcoFalke)
  • #15057 Correct reconsiderblock help text, add test (MarcoFalke)
  • #12153 Avoid permanent cs_main lock in getblockheader (promag)
  • #14982 Add getrpcinfo command (promag)
  • #15122 Expand help text for importmulti changes (jnewbery)
  • #15186 remove duplicate solvable field from getaddressinfo (fanquake)
  • #15209 zmq: log outbound message high water mark when reusing socket (fanquake)
  • #15177 rest: Improve tests and documention of /headers and /block (promag)
  • #14353 rest: Add blockhash call, fetch blockhash by height (jonasschnelli)
  • #15248 Compile on GCC4.8 (MarcoFalke)
  • #14987 RPCHelpMan: Pass through Result and Examples (MarcoFalke)
  • #15159 Remove lookup to UTXO set from GetTransaction (amitiuttarwar)
  • #15245 remove deprecated mentions of signrawtransaction from fundraw help (instagibbs)
  • #14667 Add deriveaddresses RPC util method (Sjors)
  • #15357 Don’t ignore -maxtxfee when wallet is disabled (JBaczuk)
  • #15337 Fix for segfault if combinepsbt called with empty inputs (benthecarman)
  • #14918 RPCHelpMan: Check default values are given at compile-time (MarcoFalke)
  • #15383 mining: Omit uninitialized currentblockweight, currentblocktx (MarcoFalke)
  • #13932 Additional utility RPCs for PSBT (achow101)
  • #15401 Actually throw help when passed invalid number of params (MarcoFalke)
  • #15471 rpc/gui: Remove ‘Unknown block versions being mined’ warning (laanwj)
  • #15497 Consistent range arguments in scantxoutset/importmulti/deriveaddresses (sipa)
  • #15510 deriveaddresses: add range to CRPCConvertParam (Sjors)
  • #15582 Fix overflow bug in analyzepsbt fee: CAmount instead of int (sipa)
  • #13424 Consistently validate txid / blockhash length and encoding in rpc calls (Empact)
  • #15750 Remove the addresses field from the getaddressinfo return object (jnewbery)

GUI

  • #13634 Compile boost::signals2 only once (MarcoFalke)
  • #13248 Make proxy icon from statusbar clickable (mess110)
  • #12818 TransactionView: highlight replacement tx after fee bump (Sjors)
  • #13529 Use new Qt5 connect syntax (promag)
  • #14162 Also log and print messages or questions like bitcoind (MarcoFalke)
  • #14385 Avoid system harfbuzz and bz2 (theuni)
  • #14450 Fix QCompleter popup regression (hebasto)
  • #14177 Set C locale for amountWidget (hebasto)
  • #14374 Add Blocksdir to Debug window (hebasto)
  • #14554 Remove unused adjustedTime parameter (hebasto)
  • #14228 Enable system tray icon by default if available (hebasto)
  • #14608 Remove the “Pay only required fee…” checkbox (hebasto)
  • #14521 qt, docs: Fix bitcoin-qt -version output formatting (hebasto)
  • #13966 When private key is disabled, only show watch-only balance (ken2812221)
  • #14828 Remove hidden columns in coin control dialog (promag)
  • #14783 Fix boost::signals2::no_slots_error in early calls to InitWarning (promag)
  • #14854 Cleanup SplashScreen class (hebasto)
  • #14801 Use window() instead of obsolete topLevelWidget() (hebasto)
  • #14573 Add Window menu (promag)
  • #14979 Restore < Qt5.6 compatibility for addAction (jonasschnelli)
  • #14975 Refactoring with QString::toNSString() (hebasto)
  • #15000 Fix broken notificator on GNOME (hebasto)
  • #14375 Correct misleading “overridden options” label (hebasto)
  • #15007 Notificator class refactoring (hebasto)
  • #14784 Use WalletModel* instead of the wallet name as map key (promag)
  • #11625 Add BitcoinApplication & RPCConsole tests (ryanofsky)
  • #14517 Fix start with the -min option (hebasto)
  • #13216 implements concept for different disk sizes on intro (marcoagner)
  • #15114 Replace remaining 0 with nullptr (Empact)
  • #14594 Fix minimized window bug on Linux (hebasto)
  • #14556 Fix confirmed transaction labeled “open” (#13299) (hebasto)
  • #15149 Show current wallet name in window title (promag)
  • #15136 “Peers” tab overhaul (hebasto)
  • #14250 Remove redundant stopThread() and stopExecutor() signals (hebasto)
  • #15040 Add workaround for QProgressDialog bug on macOS (hebasto)
  • #15101 Add WalletController (promag)
  • #15178 Improve “help-console” message (hebasto)
  • #15210 Fix window title update (promag)
  • #15167 Fix wallet selector size adjustment (hebasto)
  • #15208 Remove macOS launch-at-startup when compiled with > macOS 10.11, fix memory mismanagement (jonasschnelli)
  • #15163 Correct units for “-dbcache” and “-prune” (hebasto)
  • #15225 Change the receive button to respond to keypool state changing (achow101)
  • #15280 Fix shutdown order (promag)
  • #15203 Fix issue #9683 “gui, wallet: random abort (segmentation fault) (dooglus)
  • #15091 Fix model overlay header sync (jonasschnelli)
  • #15153 Add Open Wallet menu (promag)
  • #15183 Fix m_assumed_blockchain_size variable value (marcoagner)
  • #15063 If BIP70 is disabled, attempt to fall back to BIP21 parsing (luke-jr)
  • #15195 Add Close Wallet action (promag)
  • #15462 Fix async open wallet call order (promag)
  • #15801 Bugfix: GUI: Options: Initialise prune setting range before loading current value, and remove upper bound limit (luke-jr)

ビルドシステム

  • #13955 gitian: Bump descriptors for (0.)18 (fanquake)
  • #13899 Enable -Wredundant-decls where available. Remove redundant redeclarations (practicalswift)
  • #13665 Add RISC-V support to gitian (ken2812221)
  • #14062 Generate MSVC project files via python script (ken2812221)
  • #14037 Add README.md to linux release tarballs (hebasto)
  • #14183 Remove unused Qt 4 dependencies (ken2812221)
  • #14127 Avoid getifaddrs when unavailable (greenaddress)
  • #14184 Scripts and tools: increased timeout downloading (cisba)
  • #14204 Move interfaces/* to libbitcoin_server (laanwj)
  • #14208 Actually remove ENABLE_WALLET (jnewbery)
  • #14212 Remove libssl from LDADD unless GUI (MarcoFalke)
  • #13578 Upgrade zeromq to 4.2.5 and avoid deprecated zeromq API functions (mruddy)
  • #14281 lcov: filter /usr/lib/ from coverage reports (MarcoFalke)
  • #14325 gitian: Use versioned unsigned tarballs instead of generically named ones (achow101)
  • #14253 During ‘make clean’, remove some files that are currently missed (murrayn)
  • #14455 Unbreak make clean (jamesob)
  • #14495 Warn (don’t fail!) on spelling errors (practicalswift)
  • #14496 Pin to specific versions of Python packages we install from PyPI in Travis (practicalswift)
  • #14568 Fix Qt link order for Windows build (ken2812221)
  • #14252 Run functional tests and benchmarks under the undefined behaviour sanitizer (UBSan) (practicalswift)
  • #14612 Include full version number in released file names (achow101)
  • #14840 Remove duplicate libconsensus linking in test make (AmirAbrams)
  • #14564 Adjust configure so that only BIP70 is disabled when protobuf is missing instead of the GUI (jameshilliard)
  • #14883 Add --retry 5 to curl opts in install_db4.sh (qubenix)
  • #14701 Add CLIENT_VERSION_BUILD to CFBundleGetInfoString (fanquake)
  • #14849 Qt 5.9.7 (fanquake)
  • #15020 Add names to Travis jobs (gkrizek)
  • #15047 Allow to configure –with-sanitizers=fuzzer (MarcoFalke)
  • #15154 Configure: bitcoin-tx doesn’t need libevent, so don’t pull it in (luke-jr)
  • #15175 Drop macports support (Empact)
  • #15308 Restore compatibility with older boost (Empact)
  • #15407 msvc: Fix silent merge conflict between #13926 and #14372 part II (ken2812221)
  • #15388 Makefile.am: add rule for src/bitcoin-wallet (Sjors)
  • #15393 Bump minimum Qt version to 5.5.1 (Sjors)
  • #15285 Prefer Python 3.4 even if newer versions are present on the system (Sjors)
  • #15398 msvc: Add rapidcheck property tests (ken2812221)
  • #15431 msvc: scripted-diff: Remove NDEBUG pre-define in project file (ken2812221)
  • #15549 gitian: Improve error handling (laanwj)
  • #15548 use full version string in setup.exe (MarcoFalke)
  • #11526 Visual Studio build configuration for Bitcoin Core (sipsorcery)
  • #15110 build_msvc: Fix the build problem in libbitcoin_server (Mr-Leshiy)
  • #14372 msvc: build secp256k1 and leveldb locally (ken2812221)
  • #15325 msvc: Fix silent merge conflict between #13926 and #14372 (ken2812221)
  • #15391 Add compile time verification of assumptions we’re currently making implicitly/tacitly (practicalswift)
  • #15503 msvc: Use a single file to specify the include path (ken2812221)
  • #13765 contrib: Add gitian build support for github pull request (ken2812221)
  • #15809 gitignore: plist and dat (jamesob)

テストとQA

  • #15405 appveyor: Clean cache when build configuration changes (Sjors)
  • #13953 Fix deprecation in bitcoin-util-test.py (isghe)
  • #13963 Replace usage of tostring() with tobytes() (dongcarl)
  • #13964 ci: Add appveyor ci (ken2812221)
  • #13997 appveyor: fetch the latest port data (ken2812221)
  • #13707 Add usage note to check-rpc-mappings.py (masonicboom)
  • #14036 travis: Run unit tests –with-sanitizers=undefined (MarcoFalke)
  • #13861 Add testing of value_ret for SelectCoinsBnB (Empact)
  • #13863 travis: Move script sections to files in .travis/ subject to shellcheck (scravy)
  • #14081 travis: Fix missing differentiation between unit and functional tests (scravy)
  • #14042 travis: Add cxxflags=-wno-psabi at arm job (ken2812221)
  • #14051 Make combine_logs.py handle multi-line logs (jnewbery)
  • #14093 Fix accidental trunction from int to bool (practicalswift)
  • #14108 Add missing locking annotations and locks (g_cs_orphans) (practicalswift)
  • #14088 Don’t assert(…) with side effects (practicalswift)
  • #14086 appveyor: Use clcache to speed up build (ken2812221)
  • #13954 Warn (don’t fail!) on spelling errors. Fix typos reported by codespell (practicalswift)
  • #12775 Integration of property based testing into Bitcoin Core (Christewart)
  • #14119 Read reject reasons from debug log, not P2P messages (MarcoFalke)
  • #14189 Fix silent merge conflict in wallet_importmulti (MarcoFalke)
  • #13419 Speed up knapsack_solver_test by not recreating wallet 100 times (lucash-dev)
  • #14199 Remove redundant BIP174 test from rpc_psbt.json (araspitzu)
  • #14179 Fixups to “Run all tests even if wallet is not compiled” (MarcoFalke)
  • #14225 Reorder tests and move most of extended tests up to normal tests (ken2812221)
  • #14236 generate –> generatetoaddress change to allow tests run without wallet (sanket1729)
  • #14287 Use MakeUnique to construct objects owned by unique_ptrs (practicalswift)
  • #14007 Run functional test on Windows and enable it on Appveyor (ken2812221)
  • #14275 Write the notification message to different files to avoid race condition in feature_notifications.py (ken2812221)
  • #14306 appveyor: Move AppVeyor YAML to dot-file-style YAML (MitchellCash)
  • #14305 Enforce critical class instance attributes in functional tests, fix segwit test specificity (JustinTArthur)
  • #12246 Bugfix: Only run bitcoin-tx tests when bitcoin-tx is enabled (luke-jr)
  • #14316 Exclude all tests with difference parameters in --exclude list (ken2812221)
  • #14381 Add missing call to skip_if_no_cli() (practicalswift)
  • #14389 travis: Set codespell version to avoid breakage (MarcoFalke)
  • #14398 Don’t access out of bounds array index: array[sizeof(array)] (Empact)
  • #14419 Remove rpc_zmq.py (jnewbery)
  • #14241 appveyor: Script improvement (ken2812221)
  • #14413 Allow closed RPC handler in assert_start_raises_init_error (ken2812221)
  • #14324 Run more tests with wallet disabled (MarcoFalke)
  • #13649 Allow arguments to be forwarded to flake8 in lint-python.sh (jamesob)
  • #14465 Stop node before removing the notification file (ken2812221)
  • #14460 Improve ‘CAmount’ tests (hebasto)
  • #14456 forward timeouts properly in send_blocks_and_test (jamesob)
  • #14527 Revert “Make qt wallet test compatible with qt4” (MarcoFalke)
  • #14504 Show the progress of functional tests (isghe)
  • #14559 appveyor: Enable multiwallet tests (ken2812221)
  • #13515 travis: Enable qt for all jobs (ken2812221)
  • #14571 Test that nodes respond to getdata with notfound (MarcoFalke)
  • #14569 Print dots by default in functional tests (ken2812221)
  • #14631 Move deterministic address import to setup_nodes (jnewbery)
  • #14630 test: Remove travis specific code (MarcoFalke)
  • #14528 travis: Compile once on xenial (MarcoFalke)
  • #14092 Dry run bench_bitcoin as part make check to allow for quick identification of assertion/sanitizer failures in benchmarking code (practicalswift)
  • #14664 example_test.py: fixup coinbase height argument, derive number clearly (instagibbs)
  • #14522 Add invalid P2P message tests (jamesob)
  • #14619 Fix value display name in test_runner help text (merland)
  • #14672 Send fewer spam messages in p2p_invalid_messages (jamesob)
  • #14673 travis: Fail the ubsan travis build in case of newly introduced ubsan errors (practicalswift)
  • #14665 appveyor: Script improvement part II (ken2812221)
  • #14365 Add Python dead code linter (vulture) to Travis (practicalswift)
  • #14693 test_node: get_mem_rss fixups (MarcoFalke)
  • #14714 util.h: explicitly include required QString header (1Il1)
  • #14705 travis: Avoid timeout on verify-commits check (MarcoFalke)
  • #14770 travis: Do not specify sudo in .travis (scravy)
  • #14719 Check specific reject reasons in feature_block (MarcoFalke)
  • #14771 Add BOOST_REQUIRE to getters returning optional (MarcoFalke)
  • #14777 Add regtest for JSON-RPC batch calls (domob1812)
  • #14764 travis: Run thread sanitizer on unit tests (MarcoFalke)
  • #14400 Add Benchmark to test input de-duplication worst case (JeremyRubin)
  • #14812 Fix p2p_invalid_messages on macOS (jamesob)
  • #14813 Add wallet_encryption error tests (MarcoFalke)
  • #14820 Fix descriptor_tests not checking ToString output of public descriptors (ryanofsky)
  • #14794 Add AddressSanitizer (ASan) Travis build (practicalswift)
  • #14819 Bugfix: test/functional/mempool_accept: Ensure oversize transaction is actually oversize (luke-jr)
  • #14822 bench: Destroy wallet txs instead of leaking their memory (MarcoFalke)
  • #14683 Better combine_logs.py behavior (jamesob)
  • #14231 travis: Save cache even when build or test fail (ken2812221)
  • #14816 Add CScriptNum decode python implementation in functional suite (instagibbs)
  • #14861 Modify rpc_bind to conform to #14532 behaviour (dongcarl)
  • #14864 Run scripted-diff in subshell (dongcarl)
  • #14795 Allow test_runner command line to receive parameters for each test (marcoagner)
  • #14788 Possible fix the permission error when the tests open the cookie file (ken2812221)
  • #14857 wallet_keypool_topup.py: Test for all keypool address types (instagibbs)
  • #14886 Refactor importmulti tests (jnewbery)
  • #14908 Removed implicit CTransaction constructor calls from tests and benchmarks (lucash-dev)
  • #14903 Handle ImportError explicitly, improve comparisons against None (daniel-s-ingram)
  • #14884 travis: Enforce python 3.4 support through linter (Sjors)
  • #14940 Add test for truncated pushdata script (MarcoFalke)
  • #14926 consensus: Check that final transactions are valid (MarcoFalke)
  • #14937 travis: Fix travis would always be green even if it fail (ken2812221)
  • #14953 Make g_insecure_rand_ctx thread_local (MarcoFalke)
  • #14931 mempool: Verify prioritization is dumped correctly (MarcoFalke)
  • #14935 Test for expected return values when calling functions returning a success code (practicalswift)
  • #14969 Fix cuckoocache_tests TSAN failure introduced in 14935 (practicalswift)
  • #14964 Fix race in mempool_accept (MarcoFalke)
  • #14829 travis: Enable functional tests in the threadsanitizer (tsan) build job (practicalswift)
  • #14985 Remove thread_local from test_bitcoin (MarcoFalke)
  • #15005 Bump timeout to run tests in travis thread sanitizer (MarcoFalke)
  • #15013 Avoid race in p2p_timeouts (MarcoFalke)
  • #14960 lint/format-strings: Correctly exclude escaped percent symbols (luke-jr)
  • #14930 pruning: Check that verifychain can be called when pruned (MarcoFalke)
  • #15022 Upgrade Travis OS to Xenial (gkrizek)
  • #14738 Fix running wallet_listtransactions.py individually through test_runner.py (kristapsk)
  • #15026 Rename rpc_timewait to rpc_timeout (MarcoFalke)
  • #15069 Fix rpc_net.py pong race condition (Empact)
  • #14790 Allow running rpc_bind.py –nonloopback test without IPv6 (kristapsk)
  • #14457 add invalid tx templates for use in functional tests (jamesob)
  • #14855 Correct ineffectual WithOrVersion from transactions_tests (Empact)
  • #15099 Use std::vector API for construction of test data (domob1812)
  • #15102 Run invalid_txs.InputMissing test in feature_block (MarcoFalke)
  • #15059 Add basic test for BIP34 (MarcoFalke)
  • #15108 Tidy up wallet_importmulti.py (amitiuttarwar)
  • #15164 Ignore shellcheck warning SC2236 (promag)
  • #15170 refactor/lint: Add ignored shellcheck suggestions to an array (koalaman)
  • #14958 Remove race between connecting and shutdown on separate connections (promag)
  • #15166 Pin shellcheck version (practicalswift)
  • #15196 Update all subprocess.check_output functions to be Python 3.4 compatible (gkrizek)
  • #15043 Build fuzz targets into seperate executables (MarcoFalke)
  • #15276 travis: Compile once on trusty (MarcoFalke)
  • #15246 Add tests for invalid message headers (MarcoFalke)
  • #15301 When testing with –usecli, unify RPC arg to cli arg conversion and handle dicts and lists (achow101)
  • #15247 Use wallet to retrieve raw transactions (MarcoFalke)
  • #15303 travis: Remove unused functional_tests_config (MarcoFalke)
  • #15330 Fix race in p2p_invalid_messages (MarcoFalke)
  • #15324 Make bloom tests deterministic (MarcoFalke)
  • #15328 travis: Revert “run extended tests once daily” (MarcoFalke)
  • #15327 Make test updatecoins_simulation_test deterministic (practicalswift)
  • #14519 add utility to easily profile node performance with perf (jamesob)
  • #15349 travis: Only exit early if compilation took longer than 30 min (MarcoFalke)
  • #15350 Drop RPC connection if –usecli (promag)
  • #15370 test: Remove unused –force option (MarcoFalke)
  • #14543 minor p2p_sendheaders fix of height in coinbase (instagibbs)
  • #13787 Test for Windows encoding issue (ken2812221)
  • #15378 Added missing tests for RPC wallet errors (benthecarman)
  • #15238 remove some magic mining constants in functional tests (instagibbs)
  • #15411 travis: Combine –disable-bip70 into existing job (MarcoFalke)
  • #15295 fuzz: Add test/fuzz/test_runner.py and run it in travis (MarcoFalke)
  • #15413 Add missing cs_main locks required when accessing pcoinsdbview, pcoinsTip or pblocktree (practicalswift)
  • #15399 fuzz: Script validation flags (MarcoFalke)
  • #15410 txindex: interrupt threadGroup before calling destructor (MarcoFalke)
  • #15397 Remove manual byte editing in wallet_tx_clone func test (instagibbs)
  • #15415 functional: allow custom cwd, use tmpdir as default (Sjors)
  • #15404 Remove -txindex to start nodes (amitiuttarwar)
  • #15439 remove byte.hex() to keep compatibility (AkioNak)
  • #15419 Always refresh cache to be out of ibd (MarcoFalke)
  • #15507 Bump timeout on tests that timeout on windows (MarcoFalke)
  • #15506 appveyor: fix cache issue and reduce dependencies build time (ken2812221)
  • #15485 add rpc_misc.py, mv test getmemoryinfo, add test mallocinfo (adamjonas)
  • #15321 Add cs_main lock annotations for mapBlockIndex (MarcoFalke)
  • #14128 lint: Make sure we read the command line inputs using UTF-8 decoding in python (ken2812221)
  • #14115 lint: Make all linters work under the default macos dev environment (build-osx.md) (practicalswift)
  • #15219 lint: Enable python linters via an array (Empact)

プラットフォームサポート

  • #13866 utils: Use _wfopen and _wfreopen on windows (ken2812221)
  • #13886 utils: Run commands using UTF-8 string on windows (ken2812221)
  • #14192 utils: Convert fs::filesystem_error messages from local multibyte to UTF-8 on windows (ken2812221)
  • #13877 utils: Make fs::path::string() always return UTF-8 string on windows (ken2812221)
  • #13883 utils: Convert windows args to UTF-8 string (ken2812221)
  • #13878 utils: Add fstream wrapper to allow to pass unicode filename on windows (ken2812221)
  • #14426 utils: Fix broken windows filelock (ken2812221)
  • #14686 Fix windows build error if --disable-bip70 (ken2812221)
  • #14922 windows: Set _WIN32_WINNT to 0x0601 (Windows 7) (ken2812221)
  • #13888 Call unicode API on Windows (ken2812221)
  • #15468 Use fsbridge::ifstream to fix Windows path issue (ken2812221)
  • #13734 Drop boost::scoped_array and use wchar_t API explicitly on Windows (ken2812221)
  • #13884 Enable bdb unicode support for Windows (ken2812221)

その他

  • #13935 contrib: Adjust output to current test format (AkioNak)
  • #14097 validation: Log FormatStateMessage on ConnectBlock error in ConnectTip (MarcoFalke)
  • #13724 contrib: Support ARM and RISC-V symbol check (ken2812221)
  • #13159 Don’t close old debug log file handle prematurely when trying to re-open (on SIGHUP) (practicalswift)
  • #14186 bitcoin-cli: don’t translate command line options (HashUnlimited)
  • #14057 logging: Only log using config file path_to_bitcoin.conf message on startup if conf file exists (leishman)
  • #14164 Update univalue subtree (MarcoFalke)
  • #14272 init: Remove deprecated args from hidden args (MarcoFalke)
  • #14494 Error if # is used in rpcpassword in conf (MeshCollider)
  • #14742 Properly generate salt in rpcauth.py (dongcarl)
  • #14708 Warn unrecognised sections in the config file (AkioNak)
  • #14756 Improve rpcauth.py by using argparse and getpass modules (promag)
  • #14785 scripts: Fix detection of copyright holders (cornelius)
  • #14831 scripts: Use #!/usr/bin/env bash instead of #!/bin/bash (vim88)
  • #14869 Scripts: Add trusted key for samuel dobson (laanwj)
  • #14809 Tools: improve verify-commits.py script (jlopp)
  • #14624 Some simple improvements to the RNG code (sipa)
  • #14947 scripts: Remove python 2 import workarounds (practicalswift)
  • #15087 Error if rpcpassword contains hash in conf sections (MeshCollider)
  • #14433 Add checksum in gitian build scripts for ossl (TheCharlatan)
  • #15165 contrib: Allow use of github api authentication in github-merge (laanwj)
  • #14409 utils and libraries: Make ‘blocksdir’ always net specific (hebasto)
  • #14839 threads: Fix unitialized members in sched_param (fanquake)
  • #14955 Switch all RNG code to the built-in PRNG (sipa)
  • #15258 Scripts and tools: Fix devtools/copyright_header.py to always honor exclusions (Empact)
  • #12255 Update bitcoin.service to conform to init.md (dongcarl)
  • #15266 memory: Construct globals on first use (MarcoFalke)
  • #15347 Fix build after pr 15266 merged (hebasto)
  • #15351 Update linearize-hashes.py (OverlordQ)
  • #15358 util: Add setuphelpoptions() (MarcoFalke)
  • #15216 Scripts and tools: Replace script name with a special parameter (hebasto)
  • #15250 Use RdSeed when available, and reduce RdRand load (sipa)
  • #15278 Improve PID file error handling (hebasto)
  • #15270 Pull leveldb subtree (MarcoFalke)
  • #15456 Enable PID file creation on WIN (riordant)
  • #12783 macOS: disable AppNap during sync (krab)
  • #13910 Log progress while verifying blocks at level 4 (domob1812)
  • #15124 Fail AppInitMain if either disk space check fails (Empact)
  • #15117 Fix invalid memory write in case of failing mmap(…) in PosixLockedPageAllocator::AllocateLocked (practicalswift)
  • #14357 streams: Fix broken streams_vector_reader test. Remove unused seek(size_t)
  • #11640 Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection (ryanofsky)
  • #14074 Use std::unordered_set instead of set in blockfilter interface (jimpo)
  • #15275 Add gitian PGP key for hebasto (hebasto)

ドキュメンテーション

  • #14120 Notes about control port and read access to cookie (JBaczuk)
  • #14135 correct GetDifficulty doc after #13288 (fanquake)
  • #14013 Add new regtest ports in man following #10825 ports reattributions (ariard)
  • #14149 Remove misleading checkpoints comment in CMainParams (MarcoFalke)
  • #14153 Add disable-wallet section to OSX build instructions, update line in Unix instructions (bitstein)
  • #13662 Explain when reindex-chainstate can be used instead of reindex (Sjors)
  • #14207 -help-debug implies -help (laanwj)
  • #14213 Fix reference to lint-locale-dependence.sh (hebasto)
  • #14206 Document -checklevel levels (laanwj)
  • #14217 Add GitHub PR template (MarcoFalke)
  • #14331 doxygen: Fix member comments (MarcoFalke)
  • #14264 Split depends installation instructions per arch (MarcoFalke)
  • #14393 Add missing apt-get install (poiuty)
  • #14428 Fix macOS files description in qt/README.md (hebasto)
  • #14390 release process: RPC documentation (karel-3d)
  • #14472 getblocktemplate: use SegWit in example (Sjors)
  • #14497 Add doc/bitcoin-conf.md (hebasto)
  • #14526 Document lint tests (fanquake)
  • #14511 Remove explicit storage requirement from README.md (merland)
  • #14600 Clarify commit message guidelines (merland)
  • #14617 FreeBSD: Document Python 3 requirement for ‘gmake check’ (murrayn)
  • #14592 Add external interface consistency guarantees (MarcoFalke)
  • #14625 Make clear function argument case in dev notes (dongcarl)
  • #14515 Update OpenBSD build guide for 6.4 (fanquake)
  • #14436 Add comment explaining recentRejects-DoS behavior (jamesob)
  • #14684 conf: Remove deprecated options from docs, Other cleanup (MarcoFalke)
  • #14731 Improve scripted-diff developer docs (dongcarl)
  • #14778 A few minor formatting fixes and clarifications to descriptors.md (jnewbery)
  • #14448 Clarify rpcwallet flag url change (JBaczuk)
  • #14808 Clarify RPC rawtransaction documentation (jlopp)
  • #14804 Less confusing documentation for torpassword (fanquake)
  • #14848 Fix broken Gmane URL in security-check.py (cyounkins-bot)
  • #14882 developer-notes.md: Point out that UniValue deviates from upstream (Sjors)
  • #14909 Update minimum required Qt (fanquake)
  • #14914 Add nice table to files.md (emilengler)
  • #14741 Indicate -rpcauth option password hashing alg (dongcarl)
  • #14950 Add NSIS setup/install steps to windows docs (fanquake)
  • #13930 Better explain GetAncestor check for m_failed_blocks in AcceptBlockHeader (Sjors)
  • #14973 Improve Windows native build instructions (murrayn)
  • #15073 Botbot.me (IRC logs) not available anymore (anduck)
  • #15038 Get more info about GUI-related issue on Linux (hebasto)
  • #14832 Add more Doxygen information to Developer Notes (ch4ot1c)
  • #15128 Fix download link in doc/README.md (merland)
  • #15127 Clarifying testing instructions (benthecarman)
  • #15132 Add FreeBSD build notes link to doc/README.md (fanquake)
  • #15173 Explain what .python-version does (Sjors)
  • #15223 Add information about security to the JSON-RPC doc (harding)
  • #15249 Update python docs to reflect that wildcard imports are disallowed (Empact)
  • #15176 Get rid of badly named doc/README_osx.md (merland)
  • #15272 Correct logging return type and RPC example (fanquake)
  • #15244 Gdb attaching to process during tests has non-sudo solution (instagibbs)
  • #15332 Small updates to getrawtransaction description (amitiuttarwar)
  • #15354 Add missing bitcoin-wallet tool manpages (MarcoFalke)
  • #15343 netaddress: Make IPv4 loopback comment more descriptive (dongcarl)
  • #15353 Minor textual improvements in translation_strings_policy.md (merland)
  • #15426 importmulti: add missing description of keypool option (harding)
  • #15425 Add missing newline to listunspent help for witnessScript (harding)
  • #15348 Add separate productivity notes document (dongcarl)
  • #15416 Update FreeBSD build guide for 12.0 (fanquake)
  • #15222 Add info about factors that affect dependency list (merland)
  • #13676 Explain that mempool memory is added to -dbcache (Sjors)
  • #15273 Slight tweak to the verify-commits script directions (droark)
  • #15477 Remove misleading hint in getrawtransaction (MarcoFalke)
  • #15489 Update release process for snap package (MarcoFalke)
  • #15524 doc: Remove berkeleydb PPA from linux build instructions (MarcoFalke)
  • #15559 Correct analyzepsbt rpc doc (fanquake)
  • #15194 Add comment describing fDisconnect behavior (dongcarl)
  • #15754 getrpcinfo docs (benthecarman)
  • #15763 Update bips.md for 0.18.0 (sipa)
  • #15757 List new RPCs in psbt.md and descriptors.md (sipa)
  • #15765 correct bitcoinconsensus_version in shared-libraries.md (fanquake)
  • #15792 describe onlynet option in doc/tor.md (jonatack)
  • #15802 mention creating application support bitcoin folder on OSX (JimmyMow)
  • #15799 Clarify RPC versioning (MarcoFalke)

クレジット

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

  • 1Il1
  • 251
  • Aaron Clauson
  • Adam Jonas
  • Akio Nakamura
  • Alexander Leishman
  • Alexey Ivanov
  • Alexey Poghilenkov
  • Amir Abrams
  • Amiti Uttarwar
  • Andrew Chow
  • andrewtoth
  • Anthony Towns
  • Antoine Le Calvez
  • Antoine Riard
  • Antti Majakivi
  • araspitzu
  • Arvid Norberg
  • Ben Carman
  • Ben Woosley
  • benthecarman
  • bitcoinhodler
  • Carl Dong
  • Chakib Benziane
  • Chris Moore
  • Chris Stewart
  • chris-belcher
  • Chun Kuan Lee
  • Cornelius Schumacher
  • Cory Fields
  • Craig Younkins
  • Cristian Mircea Messel
  • Damian Mee
  • Daniel Ingram
  • Daniel Kraft
  • David A. Harding
  • DesWurstes
  • dexX7
  • Dimitri Deijs
  • Dimitris Apostolou
  • Douglas Roark
  • DrahtBot
  • Emanuele Cisbani
  • Emil Engler
  • Eric Scrivner
  • fridokus
  • Gal Buki
  • Gleb Naumenko
  • Glenn Willen
  • Graham Krizek
  • Gregory Maxwell
  • Gregory Sanders
  • gustavonalle
  • Harry Moreno
  • Hennadii Stepanov
  • Isidoro Ghezzi
  • Jack Mallers
  • James Hilliard
  • James O’Beirne
  • Jameson Lopp
  • Jeremy Rubin
  • Jesse Cohen
  • Jim Posen
  • John Newbery
  • Jon Layton
  • Jonas Schnelli
  • João Barbosa
  • Jordan Baczuk
  • Jorge Timón
  • Julian Fleischer
  • Justin Turner Arthur
  • Karel Bílek
  • Karl-Johan Alm
  • Kaz Wesley
  • ken2812221
  • Kostiantyn Stepaniuk
  • Kristaps Kaupe
  • Lawrence Nahum
  • Lenny Maiorani
  • liuyujun
  • lucash-dev
  • luciana
  • Luke Dashjr
  • marcaiaf
  • marcoagner
  • MarcoFalke
  • Martin Erlandsson
  • Marty Jones
  • Mason Simon
  • Michael Ford
  • Michael Goldstein
  • Michael Polzer
  • Mitchell Cash
  • mruddy
  • Murray Nesbitt
  • OverlordQ
  • Patrick Strateman
  • Pierre Rochard
  • Pieter Wuille
  • poiuty
  • practicalswift
  • priscoan
  • qubenix
  • riordant
  • Russell Yanofsky
  • Samuel Dobson
  • sanket1729
  • Sjors Provoost
  • Stephan Oeste
  • Steven Roose
  • Suhas Daftuar
  • TheCharlatan
  • Tim Ruffing
  • Vidar Holen
  • vim88
  • Walter
  • whythat
  • Wladimir J. van der Laan
  • Zain Iqbal Allarakhia

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