bitcoin core logo

Bitcoin Core 0.21.0

{% include download.html %} {% githubify https://github.com/bitcoin/bitcoin %} 0.21.0 リリースノート

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

{% include download_release.html %}

このリースには新しい機能やさまざまなBug Fixおよびパフォーマンス改善、 更新された翻訳が含まれます。

バグの報告にはGitHubのIssue Trackerを使用してください。

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

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

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

アップグレード方法 {#how-to-upgrade}

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

EOLに達したBitcoin Coreのバージョンから直接アップグレードすることは可能ですが、 データディレクトリを移行する必要がある場合は時間がかかる可能性があります。 Bitcoin Coreの旧ウォレットバージョンが一般的にサポートされます。

互換性 {#compatibility}

Bitcoin CoreはLinuxカーネルやmacOS 10.12以降、Windows 7以降を使用している オペレーティングシステムでサポートされ、広範囲にテストされています。 Bitcoin Coreは他のほとんどのUNIXライクなシステムでも動作するはずですが、 それらの環境では頻繁にテストされていません。 サポートされていないシステムでBitcoin Coreを使用するのはお勧めできません。

Bitcoin Core 0.20.0以降、10.12より前のmacOSはサポートされなくなりました。 さらに、macOSのダークモードが有効になっていてもBitcoin Coreの外観は変わりません。

ノードの既知のピアはディスク上のpeers.datというファイルに永続化されます。 このファイルのフォーマットは、Tor v3および他のBIP155アドレスの保存に対応するため、 後方互換性のない形で変更されました。つまり、ファイルが0.21.0以降で変更された場合、 旧バージョンでは読み取れなくなります。ダウングレードする場合、旧バージョンでは、 “Incorrect keysize in addrman deserialization”というエラーメッセージがログに記録され、 ファイルが見つからなかった場合のように通常の操作が続行され、新しい空のファイルが作成されます。 (#19954, #20284)

主な変更点 {#notable-changes}

P2Pおよびネットワークの変更 {#p2p-and-network-changes}

  • mempoolは、ウォレットまたはRPCを介して送信されたトランザクションが 正常にブロードキャストされたかどうかを追跡するようになりました。 ピアがgetdataメッセージを介してそのトランザクションを要求するか、 他の理由によりmempoolから削除されるまで、ノードは10-15分毎に非ブロードキャスト トランザクションの通知を試みます。ノードは、P2Pリレーによりノードに 送信されたトランザクションのブロードキャストステータスを追跡しません。 このバージョンでは、ウォレットを実行しているノードに対するP2Pを介して送信された ウォレットトランザクションの初期ブロードキャストの保証を縮小します。(#18038)

  • ピアが通知し、リクエストを検討するトランザクションセットのサイズが(ピアあたり) 100000から5000に縮小され、その制限に達すると、それ以降の通知は無視されます。 もし、(非常に)大規模なトランザクションの束を投げる必要がある場合は、 “relay”ネットワーク権限を使って信頼できるピアに対して例外を作成することができます。 例えばローカルホストの場合、コマンドラインオプション-whitelist=relay@127.0.0.1 で有効にできます。(#19988)

  • このリリースでは、Tor v3 hidden serviceのサポートが追加され、 BIP155を使用して ネットワーク経由で他にピアにそれらが拡散されます。v2 hidden serviceは引き続き Bitcoin Coreでサポートされていますが、Torネットワークは今後数ヶ月のうちに それらを非推奨にし始めます。 (#19954)

  • -listenonion設定パラメーターを設定することで自動的に作成されるTor onion serviceは、 Tor v2ではなくTor v3のサービスとして作成されるようになりました。 Tor v2で使用された秘密鍵は(存在する場合)、データディレクトリ(-datadir参照)内の onion_private_keyファイルにそのまま残され、必要がなければ削除できます。 Bitcoin Coreがそれを読み取ることはありません。Tor v3 serviceの秘密鍵は、 onion_v3_private_keyという名前のファイルに保存されます。非推奨のTor v2 serviceを 使用するには(お勧めしませんが)、onion_private_keyonion_v3_private_keyに コピーできます。例:cp -f onion_private_key onion_v3_private_key。(#19954)

  • クライアントはシャットダウン時に、(“anchors”とよばれる)ブロックリレーのみを行う ノードの2つのアウトバウンドピアのネットワークアドレスをファイル(anchors.dat)に 書き込みます。次回ノードが起動すると、ノードはこのファイルを読み取り、同じ2つのピアへの 再接続を試みます。これにより、エクリプス攻撃の一部として使用される可能性のある、 攻撃者がノードの再起動を使ってピアの完全な変更をトリガーすることができなくなります。 (#17428)

  • このリリースでは、-blockfilterindex=1 -peerblockfilters=1で有効にすると、 ネットワーク上のピアにBIP157 Compact Filterを提供するためのサポートが追加されています。(#16442)

  • このリリースでは、既存のmainnet、testnetおよびregtestネットワークに加えて、 signet(BIP325)の サポートが追加されています。signetは集中管理されたネットワークであるため、 古いtestnetよりも予測可能なテスト環境にすることができます。 1つのパブリックsignetが維持され、-signetを使って選択できます。また、個人用の signetを作成することも可能です。(#18267)

  • このリリースではBIP339 wtxidリレーが実装されています。ネゴシエートされると、トランザクションはtxidではなく wtxidを使って通知されます。(#18044)

  • このリリースでは、Taprootコンセンサスルール(BIP341 およびBIP342)を実装しています。 ただしmainnetではアクティベートされいません。Taprootの実験は、そのルールが既にアクティベートされている signetで実行できます。(#19553)

更新されたRPC {#updated-rpcs}

  • getpeerinfo RPCには、ピアが接続したネットワークのタイプ(“ipv4”、“ipv6”もしくは”onion”)を 提供する新しいnetworkフィールドが追加されました。(#20002)

  • getpeerinfo RPCには、他のピアから受信した最新のブロックおよび最新の 有効なトランザクションのUNIXエポックタイムを返すlast_blocklast_transaction フィールドが追加されました。(#19731)

  • getnetworkinfoはインバウンドおよびアウトバウンドのピア接続の数を提供する2つの新しいフィールド connections_inconnections_outを返すようになりました。これらの新しいフィールドは、 ピア接続の総数を返すconnectionsフィールドに追加されます。(#19405)

  • トランザクションのバージョン番号は、符号付き32bit整数ではなく、符号なし32bit整数として 扱われるようになりました。これはコンセンサスロジックでの扱いと同じになります。 2より大きなバージョンは引き続き非標準です(1より小さい場合や2より大き場合は非標準となる これまでの動作と一致しています)。これには最も高いバージョン番号を選択することで、 部分的に署名されたトランザクション(PSBT)を結合するjoinpsbtコマンドが含まれることに 注意してください。(#16525)

  • getmempoolinfoは、追加のunbroadcastcountフィールドを返すようになりました。 mempoolはローカルで送信されたトランザクションを、最初のブロードキャストがピアによって 確認されるまで追跡します。このフィールドは確認待ちのトランザクション数を返します。

  • getmempoolentryverbose=trueを指定したgetrawmempoolなどのmempool RPCは、 追加のunbroadcastフィールドを返すようになりました。このフィールドは、 トランザクションの最初のブロードキャストがピアによって確認されたかどうかを示します。 getmempoolancestorsgetmempooldescendantsも更新されています。

  • getpeerinfo RPCは、設定オプション-deprecatedrpc=banscoreが使用されていない限り、 banscoreフィールドを返さなくなりました。banscoreフィールドは、次のメジャーリリースで 完全に削除されます。(#19469)

  • testmempoolaccept RPCは、トランザクションが検証に合格する場合、vsizebase手数料を持つfeesオブジェクトを返します。(#19940)

  • getpeerinfo RPCはconnection_typeフィールドを返すようになりました。 このフィールドはピアとの間に確立された接続のタイプを示します。 6つのオプションのいずれかを返します。詳細についてはgetpeerinfoのヘルプドキュメントを 参照してください。(#19725)

  • getpeerinfo RPCはデフォルトでaddnodeフィールドを返さなくなりました。 このフィールドは次のメジャーリリースで完全に削除されます。設定オプション -deprecatedrpc=getpeerinfo_addnodeを使用するとアクセスできます。 しかし、代わりに(addnodeがtrueの場合はmanualを返す)connection_typeフィールドを 使用することをお勧めします。(#19725)

  • getpeerinfo RPCはデフォルトでwhitelistedフィールドを返さなくなりました。 このフィールドは次のメジャーリリースで完全に削除されます。設定オプション -deprecatedrpc=getpeerinfo_whitelistedを使用するとアクセスできます。 しかし、代わりにpermissionsフィールドを使用して特定の権限がピアに付与されているか どうかを理解することをお勧めします。(#19770)

  • walletcreatefundedpsbt RPCは、インプットが手動で選択されそれがアウトプットと手数料を カバーするのに十分でない場合、Insufficient fundsで失敗するようになりました。 新しいadd_inputsオプションを使うと、追加のインプットを自動的に追加できます。(#16377)

  • fundrawtransaction RPCはadd_inputsオプションをサポートするようになりました。 falseの場合、必要に応じてインプットを追加できないためRPCは失敗します。

ウォレットやGUIに関連するRPCの変更は、以下のGUIおよびウォレットのセクションにあります。

新しいRPC {#new-rpcs}

  • getindexinfo RPCは、現在の同期ステータスと高さを含む、ノードのアクティブに 実行されているインデックスを返します。また、index_nameを受け入れて、 そのインデックスのステータスのみを返すよう指定することも可能です。(#19550)

ビルドシステム {#build-system}

更新された設定 {#updated-settings}

  • 同じZeroMQ通知(例:-zmqpubhashtx=address)を複数回指定して、同じ通知を異なる ZeroMQソケットに公開できるようになりました。 (#18309)

  • 不適切な振る舞いをするピアを切断、抑止するためのデフォルトの閾値を変更する-banscore 設定オプションは、0.20.1およびこのリリースにおいて、不適切な振る舞いをするピアの処理に 関する変更の一部として削除されました。詳細については、0.20.1のリリースノートの “ピアの誤動作に関する変更”を参照してください。(#19464)

  • 0.20で非推奨になり、coindbと区別するために-debug=walletdbに置き換えられた -debug=dbログカテゴリは削除されました。(#19202)

  • noban権限からdownload権限が摘出されました。互換性のためnobandownload権限を意味しますが、これは将来のリリースで変更される可能性があります。 詳細については影響を受ける設定-whitebindおよび-whitelistのヘルプを参照してください。 (#19191)

  • 0 bitの後に1 bitを含むネットマスク(255.0.255.255のように左側に1 bitが連続していない) は受け入れられなくなりました。RFC 463によるとこれらは無効です。ネットマスクは -rpcallowipおよび-whitelist設定オプションとsetban RPCで使われています。(#19628)

  • -blocksonly設定は、手数料の見積もりを完全に無効にするようになりました。(#18766)

ウォレットやGUIに関連する設定の変更は、以下のGUIおよびウォレットのセクションにあります。

ツールとユーティリティ {#tools-and-utilities}

  • 新しいbitcoin-cli -netinfoコマンドは、getpeerinfoおよびgetnetworkinfo RPCの データを人が読める形式で表示するネットワークピア接続のダッシュボードを提供します。 オプションで、0から4までの整数の引数を渡して詳細レベルを上げることができます。 (#19643)

  • 新しいbitcoin-cli -generateコマンドは、generatenewaddress RPCの後に generatetoaddress RPCが続くのと同等で、テスト目的でコマンドラインでブロックを 生成できます。これは以前のgenerate RPCのクライアントサイドバージョンです。 詳細についてはヘルプを参照してください。(#19133)

  • bitcoin-cli -getinfoコマンドは、(マルチウォレットモードなどで)複数のウォレットが ロードされていて、-rpcwalletでウォレットが指定されていない場合に、 ロードされたウォレットのそれぞれのウォレット名と残高を表示するようになりました。 (#18594)

  • bitcoin-cli -getinfoconnectionsフィールドが拡張され、ピア接続の inおよびouttotal数を含むJSONオブジェクトを返すようになりました。 以前はピア接続の総数について単一の整数値を返していました。(#19405)

新しい設定 {#new-settings}

  • startupnotifyオプションは、Bitcoin Coreが起動シーケンスを終えた時に 実行するコマンドを指定するのに使用されます。(#15367)

ウォレット {#wallet}

  • 0.20のリリースノートで通知されているように、2つのgetaddressinfo RPCの 非推奨事項について、後方互換性が失われました。非推奨のlabelフィールドは削除され、 namepurposeのkey-valueペアを含むJSONオブジェクトを返す非推奨のlabelsの 動作も削除されました。0.20以降、labelsフィールドはラベル名のJSON配列を返すようになりました。 (#19200)

  • ウォレットのプライバシーを改善するため、ウォレットの再ブロードキャストの 試行頻度が15分毎から12〜36時間毎に1回に減らされています。ウォレットトランザクションの 初期ブロードキャストに対して同様のレベルの保証を維持するために、mempoolは 新しく導入された非ブロードキャストセットの一部として、これらのトランザクションを追跡します。 非ブロードキャストセットの詳細について”P2Pとネットワークの変更”を参照してください。 (#18038)

  • sendtoaddressおよびsendmany RPCは、オプションでverbose=True引数を受け入れ、 送信されたトランザクションに関する手数料の理由を返すことができます。

  • ウォレットはkeypoolが空であってもお釣りなしでトランザクションを作成できます。 以前は失敗していました。(#17219)

  • -salvagewallet起動オプションは削除されました。 -salvagewalletが行っていたサルベージ操作を行う新しいsalvageコマンドが bitcoin-walletに追加されました。(#18918)

  • 最大avoid partial spends (APS)手数料を設定する新しい設定フラグ-maxapsfee が追加されました。デフォルトは0です(つまり、手数料はAPSの有無に限らず同じ)。 -avoidpartialspendsが設定されていない限り、-1にするとAPSが無効になります。(#14582)

  • 非APSの一部と比較して手数料に差が生じない場合、ウォレットはavoid partial spends (APS)が デフォルトになりました。許容される手数料の閾値は新しい-maxapsfee設定オプションを 使って調整できます。(#14582)

  • createwalletloadwalletおよびunloadwallet RPCは、load_on_startupオプションで 設定リストを変更できるようになりました。オプションが明示的にtrueもしくはfalseに設定されていない限り、 リストは変更されないため、RPCには後方互換性があります。(#15937)

  • コイン選択とカスタム手数料率を含む、walletcreatefundedpsbtと同様のシンタックスを持つ 新しいsend RPCが追加されました。send RPCは、実験的なものであり、 今後のリリースで変更される可能性があります。(#16378)

  • estimate_modeパラメーターは、bumpfeeおよびfundrawtransactionsendmanysendtoaddresssendwalletcreatefundedpsbt RPCで大文字と小文字を区別しなく なりました。(#11413)

  • bumpfee RPCは、オプションでconfTargetではなくconf_targetを使用するようになりました。(#11413)

  • fundrawtransactionwalletcreatefundedpsbtlockUnspents引数と一緒に使用すると、 自動的に選択されたコインに加えて、手動で選択されたコインがロックされるようになりました。 ロックされたコインは、自動コイン選択では使用されることはありませんが、手動で選択出来ることに 注意してください。(#18244)

  • -zapwallettxes起動オプションが削除され、その機能がウォレットから削除されました。 このオプションはもともとmalleability攻撃の影響影響を受けたウォレットを救済することが 目的でした。最近では、RBFを通知しなかったトランザクションの手数料を上げるのに使用されています。 この機能はabandon transaction機能に置き換えられました。(#19671)

  • ウォレットがロードされていない時にウォレットRPCが呼び出された場合のエラーコードが -32601 (method not found)から-18 (wallet not found)に変更されました。(#20101)

ウォレットの自動作成機能の削除 {#automatic-wallet-creation-removed}

Bitcoin Coreは起動時に新しいウォレットを自動的に作成しなくなりました。 コマンドラインもしくはbitcoin.confsettings.jsonファイルの-walletオプションで 指定された既存のウォレットをロードします。また、デフォルトではトップレベルの名前のない("") ウォレットもロードされます。ただし、指定されたウォレットが存在しない場合、 Bitcoin Coreはこれまでのリリースのように新しい鍵とアドレスで新しいウォレットを作成するのではなく、 警告をログに記録するようになりました。

新しいウォレットは(より目立つウォレット作成オプションのある)GUIや、bitcoin-cli createwalletおよび bitcoin-wallet createコマンド、createwallet RPCを介して作成できます。(#15454, #20186)

実験的なDescriptor Wallet {#experimental-descriptor-wallets}

Descriptor Walletはまだ実験段階で、期待されるすべての機能が利用できるわけではないことに 注意してください。さらに、いくつかのバグがあり、現在の機能が将来変更される可能性があります。 バグや不足している機能はIssue Trackerに報告できます。

0.21では新しいタイプのウォレットであるDescriptor Walletが導入されています。 Descriptor Walletはoutput descriptorを使用してscriptPubKeyの情報を保存します。 これはキーを使用して暗黙的にscriptPubKeyとアドレスを生成するレガシーウォレットの構造とは 対照的です。キーベースではなくスクリプトベースへの移行により、レガシーウォレットが招いた多くの混乱は、 Descriptor Walletでは発生しません。Descriptor Walletでは、レガシーウォレットで使用されている定義よりも シンプルで直観的なスクリプトの定義である”mine”を使用しています。また、Descriptor Walletは watch-onlyのものやインポートについても異なるセマンティクスを使用しています。

Descriptor Walletは新しいタイプのウォレットであるため、その導入は既存のウォレットに影響を与えません。 既にBitcoin Coreウォレットを持っているユーザーは、動作を変更することなく、これまでと同じように 引き続き使用できます。新しく作成された(デフォルトタイプのウォレットのままの)レガシーウォレットは、 これまでのバージョンのBitcoin Coreと同じように動作します。

Descriptor Walletとレガシーウォレットの違いは、主にユーザーが直面していないことに限定されています。 これらのウォレットは、以下で説明するように、インポート/エクスポートおよびwatchonly機能を除いて 同様の動作をするよう意図されています。

Descriptor Walletの作成 {#creating-descriptor-wallets}

Descriptor Walletはデフォルトのウォレットタイプではありません。

GUIでは、Descriptor Walletを作成することを示すチェックボックスがウォレット作成ダイアログに追加されました。 また、createwallet RPCにdescriptorsオプションが追加されました。descriptorstrueに設定すると、 レガシーウォレットに代わってDescriptor Walletが作成されます。

オプションを設定しないと、代わりにレガシーウォレットが作成されます。

IsMineセマンティクス {#ismine-semantics}

IsMineは、スクリプトがウォレットに属しているかどうかを判断するために使用される関数を指します。 これはアウトプットがウォレットに属するかどうかを判断するために使用されます。レガシーウォレットのIsMineは、 ウォレットがそのスクリプトでアウトプットを使用するインプットに署名できる場合trueを返します。 キーは様々な異なるスクリプトに関与する可能性があるため、このIsMineの定義により、 多くの予期しないスクリプトがウォレットの一部とみなされる可能性があります。

Descriptor Walletでは、descriptorがウォレットの所有するスクリプトのセットを明示的に指定します。 descriptorは決定論的で容易に列挙可能なので、ユーザーはウォレットがどのスクリプトをウォレットに属するものとみなすかを 正確に知ることができます。さらに、Descriptor WalletにおけるIsMineの実装は、レガシーウォレットよりも はるかに単純です。特に、レガシーウォレットでは、ユーザーがあるタイプのアドレス(例えばP2PKH)を 別のタイプのアドレス(例えばP2WPKH)に変更させても、ウォレットはそのアドレスがウォレットから要求されていなくても、 新しいアドレスタイプへ送信するアウトプットを検出します。Descriptor Walletはこれを許可せず、 ウォレットから明示的に要求されたアドレスのみを監視します。

IsMineのこれらの変更により、ウォレットが実際にアウトプットで監視するスクリプトについて 簡単に推測できるようになります。しかし、大多数のユーザーにとっては、この変更はほとんど 透過的であり、目立った影響はありません。

インポートとエクスポート {#imports-and-exports}

レガシーウォレットでは、RAWスクリプトとキーをウォレットにインポートできました。 これらのインポートされたスクリプトやキーは、ウォレットによって生成されたキーとは別に扱われます。 これは、使用可能なアウトプットとwatchonlyのアウトプットを区別しなければならなくなるため、 IsMineのロジックを複雑にします。

Descriptor Walletでは、スクリプトとキーでインポートの扱いが異なります。完全なdescriptorのみインポートできます。 これらのdescriptorは、ウォレット自体が生成したdescriptorであるかのようにウォレットに追加されます。 このため、IsMineロジックは単純化され、使用可能なアウトプットとwatchonlyのアウトプットを区別する必要がなくなります。 そのため、Descriptor Walletのwatchonlyモデルもまた異なり、次のセクションで詳しく説明します。

Descriptor Walletにインポートするために、importmultiと同様のシンタックスを使用する新しい importdescriptors RPCが追加されました。

レガシーウォレットとDescriptor Walletでは、スクリプトとキーの保存およびインポートに異なるメカニズムを使用しているため、 既存のインポートRPCはDescriptor Walletでは無効化されています。Descriptor Wallet用の新しいエスクポートRPCは まだ追加されていません。

次のRPCは、Descriptor Walletでは無効になっています:

  • importprivkey
  • importpubkey
  • importaddress
  • importwallet
  • dumpprivkey
  • dumpwallet
  • importmulti
  • addmultisigaddress
  • sethdseed

watchonlyウォレット {#watchonly-wallet}

レガシーウォレットには、秘密鍵と監視対象のスクリプトの両方が含まれています。 監視対象のスクリプトは 通常の残高には含まれません。watchonlyの残高を確認し、トランザクションでwatchonlyなものを使用するために、 include_watchonlyオプションが多くのRPCに追加され、ユーザーがそれを実行できるようになりました。 しかし、このオプションを含めるのを忘れがちです。

Descriptor Walletでは、ウォレット毎のwatchonlyモデルに移行します。代わりに、 秘密鍵を無効にして作成されたかどうかによってウォレット全体がwatchonlyとみなされます。 これにより、watchonlyのものとウォレット自体にないものを区別する必要がなくなります。

この変更には注意点があります。秘密鍵が有効になっているDescriptor Walletが、複数キーのdescriptorを持つが すべての秘密鍵を持っている訳ではない場合(例えば1つの秘密鍵のみを持つmulti(...)など)、そのウォレットは トランザクションの署名とブロードキャストに失敗します。このようなウォレットはPSBTワークフローを使用する 必要がありますが、通常のGUIの送信やsendtoaddressなどのワークフローは機能しないだけで引き続き使用可能です。

この問題は、ウォレットに単一キーのdescriptor(例えばwpkh(...)など)と複数キーのdescriptorの両方が 含まれている場合に悪化します。これは、単一キーのインプットのみを含むトランザクションもあれば、 単一キーと複数キーのインプットの両方を含むトランザクションもあり、どちらが利用可能か、 またコイン選択アルゴリズムがどのようにインプットを選択するかによって異なります。 しかし、これはサポート対象のユースケースとはみなされません。 マルチシグは、まだdescriptorを持っていない独自のウォレットにあるべきです。 前述したように、ユーザーは今のところ秘密鍵付きのdescriptorをエクスポートすることはできません。

BIP 44/49/84 サポート {#bip-44-49-84-support}

descriptorを使用するように変更したことで、Bitcoin Coreが使用するデフォルトの導出パスが BIP 44/49/84に準拠するよう変更されました。異なる導出パスを持つdescriptorは、問題なくインポートできます。

SQLiteデータベースバックエンド {#sqlite-database-backend}

Descriptor Walletは、レガシーウォレットで使用されているBerkeley DBに代わって、ウォレットファイルにSQLiteを使用します。 これによりウォレットを操作する既存のツールとの互換性が失われますが、descriptorへの移行により互換性は既に失われています。

ウォレットRPCの変更 {#wallet-rpc-changes}

  • upgradewallet RPCは-upgradewalletコマンドラインオプションを置き換えます。(#15761)

  • 手数料が-maxtxfeeコマンドライン設定よりも高くセットされている場合、settxfee RPCは失敗します。 ウォレットは-maxtxfeeより高い手数料のトランザクションの作成に既に失敗します。(#18467)

  • vbyte毎のsatoshi(sat/vB)で表記される新しいfee_rateパラメータ/オプションがsendtoaddressおよびsendmanyfundrawtransactionwalletcreatefundedpsbt RPCと実験的な新しいsend RPCに導入されました。 fundrawtransactionwalletcreatefundedpsbtのレガシーなfeeRateオプションは、1,000 vbytes毎のBTC(BTC/kvB)の 手数料率を設定するためにまだ存在していますが、混乱を避けるため間もなく廃止されると予想されています。 これらのRPCについては、手数料率のエラーメッセージがBTC/kBからsat/vBに更新され、ヘルプドキュメント内の BTC/kBがBTC/kvBに更新されました。sendおよびsendtoaddressの例が更新され、明示的な手数料率を使用した トランザクションを作成する際に役立つようになりました。(#20305, #11413)

  • bumpfee RPCのfee_rateオプションがBTC/kvBからsat/vBに変更され、ヘルプドキュメントが更新されました。 これは重大なAPIの変更であるとユーザーに警告されますが、比較的害はないはずです。 BTC/kvBとsat/vBの単位の間には大きな差(100,000倍)があるため、手数料率がsat/vBではなくBTC/kvBで誤って計算された トランザクションでは手数料率が低すぎてエラーが発生するはずです。最悪の場合、トランザクションは1 sat/vBで 送信されるかもしれませんが、明示的な手数料率が使用されている場合、デフォルトでReplace-by-Fee (BIP125 RBF)が 有効になっているため、トランザクション手数料を引き上げることができます。(#20305)

GUIの変更 {#gui-changes}

  • GUIで作成またはロードされたウォレットは起動時に自動的にロードされるようになったため、 次回Bitcoin Coreを起動した際に手動で再ロードする必要はありません。 起動時にロードするウォレットのリストは、\<datadir\>/settings.jsonに保存され、 コマンドライン引数やbitcoin.conf-wallet=設定でロードするウォレットを 指定することができます。GUIでアンロードされたウォレットは設定リストから削除されるため、 次回起動時に自動的に再度ロードされることはありません。(#19754)

  • GUIのピアウィンドウに”Ban Score”フィールドが表示されなくなりました。 これは0.20.1およびこのリリースでの不適切な振る舞いをするピアの処理に対する変更の一部です。 詳細については、0.20.1のリリースノートの”ピアの誤動作に関する変更”を参照してください。 (#19512)

低レベルの変更 {#low-level-changes}

RPC

  • RPC sendtoaddresssendmanyとより一貫性のあるものにするため、 以下のsendtoaddressのエラーコードを-4から-6に変更しました:

    • Insufficient funds
    • Fee estimation failed
    • Transaction has too long of a mempool chain
  • maxfeerateを超えた場合のsendrawtransactionのエラーコードを-26から-25に 変更しました。エラー文字列はabsurdly-high-fee”から “Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate).” に変更されました。testmempoolaccept RPCは、reject-reasonとしてabsurdly-high-fee ではなくmax-fee-exceededを返すようになりました。(#19339)

  • ウォレットとrawtransaction RPCの一貫性を高めるため、feerateの最大値を超えた場合の エラーメッセージが”Fee exceeds maximum configured by user (e.g. -maxtxfee, maxfeerate).” に変更されました。(#19339)

テスト {#tests}

  • BIP 325のデフォルトsignetは、-chain=signetもしくは-signetの設定で有効にすることができます。 -signetchallengeおよび-signetseednodeを設定することでカスタムsignetを有効にすることができます。

  • generateblock RPCを使用すると、regtestモードを使用しているテスターがカスタムトランザクションセット で構成されるブロックを生成することができます。(#17693)

0.21.0のチェンジログ {#change-log}

コンセンサス

  • #18267 BIP-325: Signet (kallewoof)
  • #20016 uint256: 1 is a constant (ajtowns)
  • #20006 Fix misleading error message: Clean stack rule (sanket1729)
  • #19953 Implement BIP 340-342 validation (Schnorr/taproot/tapscript) (sipa)
  • #20169 Taproot follow-up: Make ComputeEntrySchnorr and ComputeEntryECDSA const to clarify contract (practicalswift)

ポリシー

  • #18766 Disable fee estimation in blocksonly mode (darosior)
  • #19630 Cleanup fee estimation code (darosior)
  • #20165 Only relay Taproot spends if next block has it active (sipa)

マイニング

  • #17946 Fix GBT: Restore “!segwit” and “csv” to “rules” key (luke-jr)

プライバシー

  • #16432 Add privacy to the Overview page (hebasto)
  • #18861 Do not answer GETDATA for to-be-announced tx (sipa)
  • #18038 Mempool tracks locally submitted transactions to improve wallet privacy (amitiuttarwar)
  • #19109 Only allow getdata of recently announced invs (sipa)

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

  • #17737 Add ChainstateManager, remove BlockManager global (jamesob)
  • #18960 indexes: Add compact block filter headers cache (jnewbery)
  • #13204 Faster sigcache nonce (JeremyRubin)
  • #19088 Use std::chrono throughout some validation functions (fanquake)
  • #19142 Make VerifyDB level 4 interruptible (MarcoFalke)
  • #17994 Flush undo files after last block write (kallewoof)
  • #18990 log: Properly log txs rejected from mempool (MarcoFalke)
  • #18984 Remove unnecessary input blockfile SetPos (dgenr8)
  • #19526 log: Avoid treating remote misbehvior as local system error (MarcoFalke)
  • #18044 Use wtxid for transaction relay (sdaftuar)
  • #18637 coins: allow cache resize after init (jamesob)
  • #19854 Avoid locking CTxMemPool::cs recursively in simple cases (hebasto)
  • #19478 Remove CTxMempool::mapLinks data structure member (JeremyRubin)
  • #19927 Reduce direct g_chainman usage (dongcarl)
  • #19898 log: print unexpected version warning in validation log category (n-thumann)
  • #20036 signet: Add assumed values for default signet (MarcoFalke)
  • #20048 chainparams: do not log signet startup messages for other chains (jonatack)
  • #19339 re-delegate absurd fee checking from mempool to clients (glozow)
  • #20035 signet: Fix uninitialized read in validation (MarcoFalke)
  • #20157 Bugfix: chainparams: Add missing (always enabled) Taproot deployment for Signet (luke-jr)
  • #20263 Update assumed chain params (MarcoFalke)
  • #20372 Avoid signed integer overflow when loading a mempool.dat file with a malformed time field (practicalswift)
  • #18621 script: Disallow silent bool -> cscript conversion (MarcoFalke)
  • #18612, #18732 script: Remove undocumented and unused operator+ (MarcoFalke)
  • #19317 Add a left-justified width field to log2_work component for a uniform debug.log output (jamesgmorgan)

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

  • #18544 Limit BIP37 filter lifespan (active between filterload..filterclear) (theStack)
  • #18806 Remove is{Empty,Full} flags from CBloomFilter, clarify CVE fix (theStack)
  • #18512 Improve asmap checks and add sanity check (sipa)
  • #18877 Serve cfcheckpt requests (jnewbery)
  • #18895 Unbroadcast followups: rpcs, nLastResend, mempool sanity check (gzhao408)
  • #19010 net processing: Add support for getcfheaders (jnewbery)
  • #16939 Delay querying DNS seeds (ajtowns)
  • #18807 Unbroadcast follow-ups (amitiuttarwar)
  • #19044 Add support for getcfilters (jnewbery)
  • #19084 improve code documentation for dns seed behaviour (ajtowns)
  • #19260 disconnect peers that send filterclear + update existing filter msg disconnect logic (gzhao408)
  • #19284 Add seed.bitcoin.wiz.biz to DNS seeds (wiz)
  • #19322 split PushInventory() (jnewbery)
  • #19204 Reduce inv traffic during IBD (MarcoFalke)
  • #19470 banlist: log post-swept banlist size at startup (fanquake)
  • #19191 Extract download permission from noban (MarcoFalke)
  • #14033 Drop CADDR_TIME_VERSION checks now that MIN_PEER_PROTO_VERSION is greater (Empact)
  • #19464 net, rpc: remove -banscore option, deprecate banscore in getpeerinfo (jonatack)
  • #19514 [net/net processing] check banman pointer before dereferencing (jnewbery)
  • #19512 banscore updates to gui, tests, release notes (jonatack)
  • #19360 improve encapsulation of CNetAddr (vasild)
  • #19217 disambiguate block-relay-only variable names from blocksonly variables (glowang)
  • #19473 Add -networkactive option (hebasto)
  • #19472 [net processing] Reduce cs_main scope in MaybeDiscourageAndDisconnect() (jnewbery)
  • #19583 clean up Misbehaving() (jnewbery)
  • #19534 save the network type explicitly in CNetAddr (vasild)
  • #19569 Enable fetching of orphan parents from wtxid peers (sipa)
  • #18991 Cache responses to GETADDR to prevent topology leaks (naumenkogs)
  • #19596 Deduplicate parent txid loop of requested transactions and missing parents of orphan transactions (sdaftuar)
  • #19316 Cleanup logic around connection types (amitiuttarwar)
  • #19070 Signal support for compact block filters with NODE_COMPACT_FILTERS (jnewbery)
  • #19705 Shrink CAddress from 48 to 40 bytes on x64 (vasild)
  • #19704 Move ProcessMessage() to PeerLogicValidation (jnewbery)
  • #19628 Change CNetAddr::ip to have flexible size (vasild)
  • #19797 Remove old check for 3-byte shifted IP addresses from pre-0.2.9 nodes (#19797)
  • #19607 Add Peer struct for per-peer data in net processing (jnewbery)
  • #19857 improve nLastBlockTime and nLastTXTime documentation (jonatack)
  • #19724 Cleanup connection types- followups (amitiuttarwar)
  • #19670 Protect localhost and block-relay-only peers from eviction (sdaftuar)
  • #19728 Increase the ip address relay branching factor for unreachable networks (sipa)
  • #19879 Miscellaneous wtxid followups (amitiuttarwar)
  • #19697 Improvements on ADDR caching (naumenkogs)
  • #17785 Unify Send and Receive protocol versions (hebasto)
  • #19845 CNetAddr: add support to (un)serialize as ADDRv2 (vasild)
  • #19107 Move all header verification into the network layer, extend logging (troygiorshev)
  • #20003 Exit with error message if -proxy is specified without arguments (instead of continuing without proxy server) (practicalswift)
  • #19991 Use alternative port for incoming Tor connections (hebasto)
  • #19723 Ignore unknown messages before VERACK (sdaftuar)
  • #19954 Complete the BIP155 implementation and upgrade to TORv3 (vasild)
  • #20119 BIP155 follow-ups (sipa)
  • #19988 Overhaul transaction request logic (sipa)
  • #17428 Try to preserve outbound block-relay-only connections during restart (hebasto)
  • #19911 Guard vRecvGetData with cs_vRecv and orphan_work_set with g_cs_orphans (narula)
  • #19753 Don’t add AlreadyHave transactions to recentRejects (troygiorshev)
  • #20187 Test-before-evict bugfix and improvements for block-relay-only peers (sdaftuar)
  • #20237 Hardcoded seeds update for 0.21 (laanwj)
  • #20212 Fix output of peer address in version message (vasild)
  • #20284 Ensure old versions don’t parse peers.dat (vasild)
  • #20405 Avoid calculating onion address checksum when version is not 3 (lontivero)
  • #20564 Don’t send ‘sendaddrv2’ to pre-70016 software, and send before ‘verack’ (sipa)
  • #20660 Move signet onion seed from v2 to v3 (Sjors)

ウォレット

  • #18262 Exit selection when best_waste is 0 (achow101)
  • #17824 Prefer full destination groups in coin selection (fjahr)
  • #17219 Allow transaction without change if keypool is empty (Sjors)
  • #15761 Replace -upgradewallet startup option with upgradewallet RPC (achow101)
  • #18671 Add BlockUntilSyncedToCurrentChain to dumpwallet (MarcoFalke)
  • #16528 Native Descriptor Wallets using DescriptorScriptPubKeyMan (achow101)
  • #18777 Recommend absolute path for dumpwallet (MarcoFalke)
  • #16426 Reverse cs_main, cs_wallet lock order and reduce cs_main locking (ariard)
  • #18699 Avoid translating RPC errors (MarcoFalke)
  • #18782 Make sure no DescriptorScriptPubKeyMan or WalletDescriptor members are left uninitialized after construction (practicalswift)
  • #9381 Remove CWalletTx merging logic from AddToWallet (ryanofsky)
  • #16946 Include a checksum of encrypted private keys (achow101)
  • #17681 Keep inactive seeds after sethdseed and derive keys from them as needed (achow101)
  • #18918 Move salvagewallet into wallettool (achow101)
  • #14988 Fix for confirmed column in csv export for payment to self transactions (benthecarman)
  • #18275 Error if an explicit fee rate was given but the needed fee rate differed (kallewoof)
  • #19054 Skip hdKeypath of ‘m’ when determining inactive hd seeds (achow101)
  • #17938 Disallow automatic conversion between disparate hash types (Empact)
  • #19237 Check size after unserializing a pubkey (elichai)
  • #11413 sendtoaddress/sendmany: Add explicit feerate option (kallewoof)
  • #18850 Fix ZapSelectTx to sync wallet spends (bvbfan)
  • #18923 Never schedule MaybeCompactWalletDB when -flushwallet is off (MarcoFalke)
  • #19441 walletdb: Don’t reinitialize desc cache with multiple cache entries (achow101)
  • #18907 walletdb: Don’t remove database transaction logs and instead error (achow101)
  • #19334 Introduce WalletDatabase abstract class (achow101)
  • #19335 Cleanup and separate BerkeleyDatabase and BerkeleyBatch (achow101)
  • #19102 Introduce and use DummyDatabase instead of dummy BerkeleyDatabase (achow101)
  • #19568 Wallet should not override signing errors (fjahr)
  • #17204 Do not turn OP_1NEGATE in scriptSig into 0x0181 in signing code (sipa) (meshcollider)
  • #19457 Cleanup wallettool salvage and walletdb extraneous declarations (achow101)
  • #15937 Add loadwallet and createwallet load_on_startup options (ryanofsky)
  • #16841 Replace GetScriptForWitness with GetScriptForDestination (meshcollider)
  • #14582 always do avoid partial spends if fees are within a specified range (kallewoof)
  • #19743 -maxapsfee follow-up (kallewoof)
  • #19289 GetWalletTx and IsMine require cs_wallet lock (promag)
  • #19671 Remove -zapwallettxes (achow101)
  • #19805 Avoid deserializing unused records when salvaging (achow101)
  • #19754 wallet, gui: Reload previously loaded wallets on startup (achow101)
  • #19738 Avoid multiple BerkeleyBatch in DelAddressBook (promag)
  • #19919 bugfix: make LoadWallet assigns status always (AkioNak)
  • #16378 The ultimate send RPC (Sjors)
  • #15454 Remove the automatic creation and loading of the default wallet (achow101)
  • #19501 send* RPCs in the wallet returns the “fee reason” (stackman27)
  • #20130 Remove db mode string (S3RK)
  • #19077 Add sqlite as an alternative wallet database and use it for new descriptor wallets (achow101)
  • #20125 Expose database format in getwalletinfo (promag)
  • #20198 Show name, format and if uses descriptors in bitcoin-wallet tool (jonasschnelli)
  • #20216 Fix buffer over-read in SQLite file magic check (theStack)
  • #20186 Make -wallet setting not create wallets (ryanofsky)
  • #20230 Fix bug when just created encrypted wallet cannot get address (hebasto)
  • #20282 Change upgradewallet return type to be an object (jnewbery)
  • #20220 Explicit fee rate follow-ups/fixes for 0.21 (jonatack)
  • #20199 Ignore (but warn) on duplicate -wallet parameters (jonasschnelli)
  • #20324 Set DatabaseStatus::SUCCESS in MakeSQLiteDatabase (MarcoFalke)
  • #20266 Fix change detection of imported internal descriptors (achow101)
  • #20153 Do not import a descriptor with hardened derivations into a watch-only wallet (S3RK)
  • #20344 Fix scanning progress calculation for single block range (theStack)
  • #19502 Bugfix: Wallet: Soft-fail exceptions within ListWalletDir file checks (luke-jr)
  • #20378 Fix potential division by 0 in WalletLogPrintf (jonasschnelli)
  • #18836 Upgradewallet fixes and additional tests (achow101)
  • #20139 Do not return warnings from UpgradeWallet() (stackman27)
  • #20305 Introduce fee_rate sat/vB param/option (jonatack)
  • #20426 Allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes (jonatack)
  • #20573 wallet, bugfix: allow send with string fee_rate amounts (jonatack)

RPCとその他のAPI

  • #18574 cli: Call getbalances.ismine.trusted instead of getwalletinfo.balance (jonatack)
  • #17693 Add generateblock to mine a custom set of transactions (andrewtoth)
  • #18495 Remove deprecated migration code (vasild)
  • #18493 Remove deprecated “size” from mempool txs (vasild)
  • #18467 Improve documentation and return value of settxfee (fjahr)
  • #18607 Fix named arguments in documentation (MarcoFalke)
  • #17831 doc: Fix and extend getblockstats examples (asoltys)
  • #18785 Prevent valgrind false positive in rest_blockhash_by_height (ryanofsky)
  • #18999 log: Remove “No rpcpassword set” from logs (MarcoFalke)
  • #19006 Avoid crash when g_thread_http was never started (MarcoFalke)
  • #18594 cli: Display multiwallet balances in -getinfo (jonatack)
  • #19056 Make gettxoutsetinfo/GetUTXOStats interruptible (MarcoFalke)
  • #19112 Remove special case for unknown service flags (MarcoFalke)
  • #18826 Expose txinwitness for coinbase in JSON form from RPC (rvagg)
  • #19282 Rephrase generatetoaddress help, and use PACKAGE_NAME (luke-jr)
  • #16377 don’t automatically append inputs in walletcreatefundedpsbt (Sjors)
  • #19200 Remove deprecated getaddressinfo fields (jonatack)
  • #19133 rpc, cli, test: add bitcoin-cli -generate command (jonatack)
  • #19469 Deprecate banscore field in getpeerinfo (jonatack)
  • #16525 Dump transaction version as an unsigned integer in RPC/TxToUniv (TheBlueMatt)
  • #19555 Deduplicate WriteHDKeypath() used in decodepsbt (theStack)
  • #19589 Avoid useless mempool query in gettxoutproof (MarcoFalke)
  • #19585 RPCResult Type of MempoolEntryDescription should be OBJ (stylesuxx)
  • #19634 Document getwalletinfo’s unlocked_until field as optional (justinmoon)
  • #19658 Allow RPC to fetch all addrman records and add records to addrman (jnewbery)
  • #19696 Fix addnode remove command error (fjahr)
  • #18654 Separate bumpfee’s psbt creation function into psbtbumpfee (achow101)
  • #19655 Catch listsinceblock target_confirmations exceeding block count (adaminsky)
  • #19644 Document returned error fields as optional if applicable (theStack)
  • #19455 rpc generate: print useful help and error message (jonatack)
  • #19550 Add listindices RPC (fjahr)
  • #19169 Validate provided keys for query_options parameter in listunspent (PastaPastaPasta)
  • #18244 fundrawtransaction and walletcreatefundedpsbt also lock manually selected coins (Sjors)
  • #14687 zmq: Enable TCP keepalive (mruddy)
  • #19405 Add network in/out connections to getnetworkinfo and -getinfo (jonatack)
  • #19878 rawtransaction: Fix argument in combinerawtransaction help message (pinheadmz)
  • #19940 Return fee and vsize from testmempoolaccept (gzhao408)
  • #13686 zmq: Small cleanups in the ZMQ code (domob1812)
  • #19386, #19528, #19717, #19849, #19994 Assert that RPCArg names are equal to CRPCCommand ones (MarcoFalke)
  • #19725 Add connection type to getpeerinfo, improve logs (amitiuttarwar)
  • #19969 Send RPC bug fix and touch-ups (Sjors)
  • #18309 zmq: Add support to listen on multiple interfaces (n-thumann)
  • #20055 Set HTTP Content-Type in bitcoin-cli (laanwj)
  • #19956 Improve invalid vout value rpc error message (n1rna)
  • #20101 Change no wallet loaded message to be clearer (achow101)
  • #19998 Add via_tor to getpeerinfo output (hebasto)
  • #19770 getpeerinfo: Deprecate “whitelisted” field (replaced by “permissions”) (luke-jr)
  • #20120 net, rpc, test, bugfix: update GetNetworkName, GetNetworksInfo, regression tests (jonatack)
  • #20595 Improve heuristic hex transaction decoding (sipa)
  • #20731 Add missing description of vout in getrawtransaction help text (benthecarman)
  • #19328 Add gettxoutsetinfo hash_type option (fjahr)
  • #19731 Expose nLastBlockTime/nLastTXTime as last block/last_transaction in getpeerinfo (jonatack)
  • #19572 zmq: Create “sequence” notifier, enabling client-side mempool tracking (instagibbs)
  • #20002 Expose peer network in getpeerinfo; simplify/improve -netinfo (jonatack)

GUI

  • #17905 Avoid redundant tx status updates (ryanofsky)
  • #18646 Use PACKAGE_NAME in exception message (fanquake)
  • #17509 Save and load PSBT (Sjors)
  • #18769 Remove bug fix for Qt < 5.5 (10xcryptodev)
  • #15768 Add close window shortcut (IPGlider)
  • #16224 Bilingual GUI error messages (hebasto)
  • #18922 Do not translate InitWarning messages in debug.log (hebasto)
  • #18152 Use NotificationStatus enum for signals to GUI (hebasto)
  • #18587 Avoid wallet tryGetBalances calls in WalletModel::pollBalanceChanged (ryanofsky)
  • #17597 Fix height of QR-less ReceiveRequestDialog (hebasto)
  • #17918 Hide non PKHash-Addresses in signing address book (emilengler)
  • #17956 Disable unavailable context menu items in transactions tab (kristapsk)
  • #17968 Ensure that ModalOverlay is resized properly (hebasto)
  • #17993 Balance/TxStatus polling update based on last block hash (furszy)
  • #18424 Use parent-child relation to manage lifetime of OptionsModel object (hebasto)
  • #18452 Fix shutdown when waitfor* cmds are called from RPC console (hebasto)
  • #15202 Add Close All Wallets action (promag)
  • #19132 lock cs_main, m_cached_tip_mutex in that order (vasild)
  • #18898 Display warnings as rich text (hebasto)
  • #19231 add missing translation.h include to fix build (fanquake)
  • #18027 “PSBT Operations” dialog (gwillen)
  • #19256 Change combiner for signals to optional_last_value (fanquake)
  • #18896 Reset toolbar after all wallets are closed (hebasto)
  • #18993 increase console command max length (10xcryptodev)
  • #19323 Fix regression in txoutset in GUI console (hebasto)
  • #19210 Get rid of cursor in out-of-focus labels (hebasto)
  • #19011 Reduce cs_main lock accumulation during GUI startup (jonasschnelli)
  • #19844 Remove usage of boost::bind (fanquake)
  • #20479 Fix QPainter non-determinism on macOS (0.21 backport) (laanwj)
  • gui#6 Do not truncate node flag strings in debugwindow peers details tab (Saibato)
  • gui#8 Fix regression in TransactionTableModel (hebasto)
  • gui#17 doc: Remove outdated comment in TransactionTablePriv (MarcoFalke)
  • gui#20 Wrap tooltips in the intro window (hebasto)
  • gui#30 Disable the main window toolbar when the modal overlay is shown (hebasto)
  • gui#34 Show permissions instead of whitelisted (laanwj)
  • gui#35 Parse params directly instead of through node (ryanofsky)
  • gui#39 Add visual accenting for the ‘Create new receiving address’ button (hebasto)
  • gui#40 Clarify block height label (hebasto)
  • gui#43 bugfix: Call setWalletActionsEnabled(true) only for the first wallet (hebasto)
  • gui#97 Relax GUI freezes during IBD (jonasschnelli)
  • gui#71 Fix visual quality of text in QR image (hebasto)
  • gui#96 Slight improve create wallet dialog (Sjors)
  • gui#102 Fix SplashScreen crash when run with -disablewallet (hebasto)
  • gui#116 Fix unreasonable default size of the main window without loaded wallets (hebasto)
  • gui#120 Fix multiwallet transaction notifications (promag)

ビルドシステム

  • #18504 Drop bitcoin-tx and bitcoin-wallet dependencies on libevent (ryanofsky)
  • #18586 Bump gitian descriptors to 0.21 (laanwj)
  • #17595 guix: Enable building for x86_64-w64-mingw32 target (dongcarl)
  • #17929 add linker optimisation flags to gitian & guix (Linux) (fanquake)
  • #18556 Drop make dist in gitian builds (hebasto)
  • #18088 ensure we aren’t using GNU extensions (fanquake)
  • #18741 guix: Make source tarball using git-archive (dongcarl)
  • #18843 warn on potentially uninitialized reads (vasild)
  • #17874 make linker checks more robust (fanquake)
  • #18535 remove -Qunused-arguments workaround for clang + ccache (fanquake)
  • #18743 Add —sysroot option to mac os native compile flags (ryanofsky)
  • #18216 test, build: Enable -Werror=sign-compare (Empact)
  • #18928 don’t pass -w when building for Windows (fanquake)
  • #16710 Enable -Wsuggest-override if available (hebasto)
  • #18738 Suppress -Wdeprecated-copy warnings (hebasto)
  • #18862 Remove fdelt_chk back-compat code and sanity check (fanquake)
  • #18887 enable -Werror=gnu (vasild)
  • #18956 enforce minimum required Windows version (7) (fanquake)
  • #18958 guix: Make V=1 more powerful for debugging (dongcarl)
  • #18677 Multiprocess build support (ryanofsky)
  • #19094 Only allow ASCII identifiers (laanwj)
  • #18820 Propagate well-known vars into depends (dongcarl)
  • #19173 turn on —enable-c++17 by —enable-fuzz (vasild)
  • #18297 Use pkg-config in BITCOIN_QT_CONFIGURE for all hosts including Windows (hebasto)
  • #19301 don’t warn when doxygen isn’t found (fanquake)
  • #19240 macOS toolchain simplification and bump (dongcarl)
  • #19356 Fix search for brew-installed BDB 4 on OS X (gwillen)
  • #19394 Remove unused RES_IMAGES (Bushstar)
  • #19403 improve __builtin_clz* detection (fanquake)
  • #19375 target Windows 7 when building libevent and fix ipv6 usage (fanquake)
  • #19331 Do not include server symbols in wallet (MarcoFalke)
  • #19257 remove BIP70 configure option (fanquake)
  • #18288 Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory (practicalswift)
  • #18307 Require pkg-config for all of the hosts (hebasto)
  • #19445 Update msvc build to use ISO standard C++17 (sipsorcery)
  • #18882 fix -Wformat-security check when compiling with GCC (fanquake)
  • #17919 Allow building with system clang (dongcarl)
  • #19553 pass -fcommon when building genisoimage (fanquake)
  • #19565 call AC_PATH_TOOL for dsymutil in macOS cross-compile (fanquake)
  • #19530 build LTO support into Apple’s ld64 (theuni)
  • #19525 add -Wl,-z,separate-code to hardening flags (fanquake)
  • #19667 set minimum required Boost to 1.58.0 (fanquake)
  • #19672 make clean removes .gcda and .gcno files from fuzz directory (Crypt-iQ)
  • #19622 Drop ancient hack in gitian-linux descriptor (hebasto)
  • #19688 Add support for llvm-cov (hebasto)
  • #19718 Add missed gcov files to ‘make clean’ (hebasto)
  • #19719 Add Werror=range-loop-analysis (MarcoFalke)
  • #19015 Enable some commonly enabled compiler diagnostics (practicalswift)
  • #19689 build, qt: Add Qt version checking (hebasto)
  • #17396 modest Android improvements (icota)
  • #18405 Drop all of the ZeroMQ patches (hebasto)
  • #15704 Move Win32 defines to configure.ac to ensure they are globally defined (luke-jr)
  • #19761 improve sed robustness by not using sed (fanquake)
  • #19758 Drop deprecated and unused GUARDED_VAR and PT_GUARDED_VAR annotations (hebasto)
  • #18921 add stack-clash and control-flow protection options to hardening flags (fanquake)
  • #19803 Bugfix: Define and use HAVE_FDATASYNC correctly outside LevelDB (luke-jr)
  • #19685 CMake invocation cleanup (dongcarl)
  • #19861 add /usr/local/ to LCOV_FILTER_PATTERN for macOS builds (Crypt-iQ)
  • #19916 allow user to specify DIR_FUZZ_SEED_CORPUS for cov_fuzz (Crypt-iQ)
  • #19944 Update secp256k1 subtree (including BIP340 support) (sipa)
  • #19558 Split pthread flags out of ldflags and dont use when building libconsensus (fanquake)
  • #19959 patch qt libpng to fix powerpc build (fanquake)
  • #19868 Fix target name (hebasto)
  • #19960 The vcpkg tool has introduced a proper way to use manifests (sipsorcery)
  • #20065 fuzz: Configure check for main function (MarcoFalke)
  • #18750 Optionally skip external warnings (vasild)
  • #20147 Update libsecp256k1 (endomorphism, test improvements) (sipa)
  • #20156 Make sqlite support optional (compile-time) (luke-jr)
  • #20318 Ensure source tarball has leading directory name (MarcoFalke)
  • #20447 Patch qt_intersect_spans to avoid non-deterministic behavior in LLVM 8 (achow101)
  • #20505 Avoid secp256k1.h include from system (dergoegge)
  • #20527 Do not ignore Homebrew’s SQLite on macOS (hebasto)
  • #20478 Don’t set BDB flags when configuring without (jonasschnelli)
  • #20563 Check that Homebrew’s berkeley-db4 package is actually installed (hebasto)
  • #19493 Fix clang build on Mac (bvbfan)

テストとQA

  • #18593 Complete impl. of msg_merkleblock and wait_for_merkleblock (theStack)
  • #18609 Remove REJECT message code (hebasto)
  • #18584 Check that the version message does not leak the local address (MarcoFalke)
  • #18597 Extend wallet_dump test to cover comments (MarcoFalke)
  • #18596 Try once more when RPC connection fails on Windows (MarcoFalke)
  • #18451 shift coverage from getunconfirmedbalance to getbalances (jonatack)
  • #18631 appveyor: Disable functional tests for now (MarcoFalke)
  • #18628 Add various low-level p2p tests (MarcoFalke)
  • #18615 Avoid accessing free’d memory in validation_chainstatemanager_tests (MarcoFalke)
  • #18571 fuzz: Disable debug log file (MarcoFalke)
  • #18653 add coverage for bitcoin-cli -rpcwait (jonatack)
  • #18660 Verify findCommonAncestor always initializes outputs (ryanofsky)
  • #17669 Have coins simulation test also use CCoinsViewDB (jamesob)
  • #18662 Replace gArgs with local argsman in bench (MarcoFalke)
  • #18641 Create cached blocks not in the future (MarcoFalke)
  • #18682 fuzz: http_request workaround for libevent < 2.1.1 (theStack)
  • #18692 Bump timeout in wallet_import_rescan (MarcoFalke)
  • #18695 Replace boost::mutex with std::mutex (hebasto)
  • #18633 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke)
  • #18675 Don’t initialize PrecomputedTransactionData in txvalidationcache tests (jnewbery)
  • #18691 Add wait_for_cookie_credentials() to framework for rpcwait tests (jonatack)
  • #18672 Add further BIP37 size limit checks to p2p_filter.py (theStack)
  • #18721 Fix linter issue (hebasto)
  • #18384 More specific feature_segwit test error messages and fixing incorrect comments (gzhao408)
  • #18575 bench: Remove requirement that all benches use same testing setup (MarcoFalke)
  • #18690 Check object hashes in wait_for_getdata (robot-visions)
  • #18712 display command line options passed to send_cli() in debug log (jonatack)
  • #18745 Check submitblock return values (MarcoFalke)
  • #18756 Use wait_for_getdata() in p2p_compactblocks.py (theStack)
  • #18724 Add coverage for -rpcwallet cli option (jonatack)
  • #18754 bench: Add caddrman benchmarks (vasild)
  • #18585 Use zero-argument super() shortcut (Python 3.0+) (theStack)
  • #18688 fuzz: Run in parallel (MarcoFalke)
  • #18770 Remove raw-tx byte juggling in mempool_reorg (MarcoFalke)
  • #18805 Add missing sync_all to wallet_importdescriptors.py (achow101)
  • #18759 bench: Start nodes with -nodebuglogfile (MarcoFalke)
  • #18774 Added test for upgradewallet RPC (brakmic)
  • #18485 Add mempool_updatefromblock.py (hebasto)
  • #18727 Add CreateWalletFromFile test (ryanofsky)
  • #18726 Check misbehavior more independently in p2p_filter.py (robot-visions)
  • #18825 Fix message for ECC_InitSanityCheck test (fanquake)
  • #18576 Use unittest for test_framework unit testing (gzhao408)
  • #18828 Strip down previous releases boilerplate (MarcoFalke)
  • #18617 Add factor option to adjust test timeouts (brakmic)
  • #18855 feature_backwards_compatibility.py test downgrade after upgrade (achow101)
  • #18864 Add v0.16.3 backwards compatibility test, bump v0.19.0.1 to v0.19.1 (Sjors)
  • #18917 fuzz: Fix vector size problem in system fuzzer (brakmic)
  • #18901 fuzz: use std::optional for sep_pos_opt variable (brakmic)
  • #18888 Remove RPCOverloadWrapper boilerplate (MarcoFalke)
  • #18952 Avoid os-dependent path (fametrano)
  • #18938 Fill fuzzing coverage gaps for functions in consensus/validation.h, primitives/block.h and util/translation.h (practicalswift)
  • #18986 Add capability to disable RPC timeout in functional tests (rajarshimaitra)
  • #18530 Add test for -blocksonly and -whitelistforcerelay param interaction (glowang)
  • #19014 Replace TEST_PREVIOUS_RELEASES env var with test_framework option (MarcoFalke)
  • #19052 Don’t limit fuzzing inputs to 1 MB for afl-fuzz (now: ∞ ∀ fuzzers) (practicalswift)
  • #19060 Remove global wait_until from p2p_getdata (MarcoFalke)
  • #18926 Pass ArgsManager into getarg_tests (glowang)
  • #19110 Explain that a bug should be filed when the tests fail (MarcoFalke)
  • #18965 Implement base58_decode (10xcryptodev)
  • #16564 Always define the raii_event_tests test suite (candrews)
  • #19122 Add missing sync_blocks to wallet_hd (MarcoFalke)
  • #18875 fuzz: Stop nodes in process_message* fuzzers (MarcoFalke)
  • #18974 Check that invalid witness destinations can not be imported (MarcoFalke)
  • #18210 Type hints in Python tests (kiminuo)
  • #19159 Make valgrind.supp work on aarch64 (MarcoFalke)
  • #19082 Moved the CScriptNum asserts into the unit test in script.py (gillichu)
  • #19172 Do not swallow flake8 exit code (hebasto)
  • #19188 Avoid overwriting the NodeContext member of the testing setup [-Wshadow-field] (MarcoFalke)
  • #18890 disconnect_nodes should warn if nodes were already disconnected (robot-visions)
  • #19227 change blacklist to blocklist (TrentZ)
  • #19230 Move base58 to own module to break circular dependency (sipa)
  • #19083 msg_mempool, fRelay, and other bloomfilter tests (gzhao408)
  • #16756 Connection eviction logic tests (mzumsande)
  • #19177 Fix and clean p2p_invalid_messages functional tests (troygiorshev)
  • #19264 Don’t import asyncio to test magic bytes (jnewbery)
  • #19178 Make mininode_lock non-reentrant (jnewbery)
  • #19153 Mempool compatibility test (S3RK)
  • #18434 Add a test-security target and run it in CI (fanquake)
  • #19252 Wait for disconnect in disconnect_p2ps + bloomfilter test followups (gzhao408)
  • #19298 Add missing sync_blocks (MarcoFalke)
  • #19304 Check that message sends successfully when header is split across two buffers (troygiorshev)
  • #19208 move sync_blocks and sync_mempool functions to test_framework.py (ycshao)
  • #19198 Check that peers with forcerelay permission are not asked to feefilter (MarcoFalke)
  • #19351 add two edge case tests for CSubNet (vasild)
  • #19272 net, test: invalid p2p messages and test framework improvements (jonatack)
  • #19348 Bump linter versions (duncandean)
  • #19366 Provide main(…) function in fuzzer. Allow building uninstrumented harnesses with —enable-fuzz (practicalswift)
  • #19412 move TEST_RUNNER_EXTRA into native tsan setup (fanquake)
  • #19368 Improve functional tests compatibility with BSD/macOS (S3RK)
  • #19028 Set -logthreadnames in unit tests (MarcoFalke)
  • #18649 Add std::locale::global to list of locale dependent functions (practicalswift)
  • #19140 Avoid fuzzer-specific nullptr dereference in libevent when handling PROXY requests (practicalswift)
  • #19214 Auto-detect SHA256 implementation in benchmarks (sipa)
  • #19353 Fix mistakenly swapped “previous” and “current” lock orders (hebasto)
  • #19533 Remove unnecessary cs_mains in denialofservice_tests (jnewbery)
  • #19423 add functional test for txrelay during and after IBD (gzhao408)
  • #16878 Fix non-deterministic coverage of test DoS_mapOrphans (davereikher)
  • #19548 fuzz: add missing overrides to signature_checker (jonatack)
  • #19562 Fix fuzzer compilation on macOS (freenancial)
  • #19370 Static asserts for consistency of fee defaults (domob1812)
  • #19599 clean message_count and last_message (troygiorshev)
  • #19597 test decodepsbt fee calculation (count input value only once per UTXO) (theStack)
  • #18011 Replace current benchmarking framework with nanobench (martinus)
  • #19489 Fail wait_until early if connection is lost (MarcoFalke)
  • #19340 Preserve the LockData initial state if “potential deadlock detected” exception thrown (hebasto)
  • #19632 Catch decimal.InvalidOperation from TestNodeCLI#send_cli (Empact)
  • #19098 Remove duplicate NodeContext hacks (ryanofsky)
  • #19649 Restore test case for p2p transaction blinding (instagibbs)
  • #19657 Wait until is_connected in add_p2p_connection (MarcoFalke)
  • #19631 Wait for ‘cmpctblock’ in p2p_compactblocks when it is expected (Empact)
  • #19674 use throwaway _ variable for unused loop counters (theStack)
  • #19709 Fix ‘make cov’ with clang (hebasto)
  • #19564 p2p_feefilter improvements (logging, refactoring, speedup) (theStack)
  • #19756 add sync_all to fix race condition in wallet groups test (kallewoof)
  • #19727 Removing unused classes from p2p_leak.py (dhruv)
  • #19722 Add test for getblockheader verboseness (torhte)
  • #19659 Add a seed corpus generation option to the fuzzing test_runner (darosior)
  • #19775 Activate segwit in TestChain100Setup (MarcoFalke)
  • #19760 Remove confusing mininode terminology (jnewbery)
  • #19752 Update wait_until usage in tests not to use the one from utils (slmtpz)
  • #19839 Set appveyor VM version to previous Visual Studio 2019 release (sipsorcery)
  • #19830 Add tsan supp for leveldb::DBImpl::DeleteObsoleteFiles (MarcoFalke)
  • #19710 bench: Prevent thread oversubscription and decreases the variance of result values (hebasto)
  • #19842 Update the vcpkg checkout commit ID in appveyor config (sipsorcery)
  • #19507 Expand functional zmq transaction tests (instagibbs)
  • #19816 Rename wait until helper to wait_until_helper (MarcoFalke)
  • #19859 Fixes failing functional test by changing version (n-thumann)
  • #19887 Fix flaky wallet_basic test (fjahr)
  • #19897 Change FILE_CHAR_BLOCKLIST to FILE_CHARS_DISALLOWED (verretor)
  • #19800 Mockwallet (MarcoFalke)
  • #19922 Run rpc_txoutproof.py even with wallet disabled (MarcoFalke)
  • #19936 batch rpc with params (instagibbs)
  • #19971 create default wallet in extended tests (Sjors)
  • #19781 add parameterized constructor for msg_sendcmpct() (theStack)
  • #19963 Clarify blocksonly whitelistforcerelay test (t-bast)
  • #20022 Use explicit p2p objects where available (guggero)
  • #20028 Check that invalid peer traffic is accounted for (MarcoFalke)
  • #20004 Add signet witness commitment section parse tests (MarcoFalke)
  • #20034 Get rid of default wallet hacks (ryanofsky)
  • #20069 Mention commit id in scripted diff error (laanwj)
  • #19947 Cover change_type option of “walletcreatefundedpsbt” RPC (guggero)
  • #20126 p2p_leak_tx.py improvements (use MiniWallet, add p2p_lock acquires) (theStack)
  • #20129 Don’t export in6addr_loopback (vasild)
  • #20131 Remove unused nVersion=1 in p2p tests (MarcoFalke)
  • #20161 Minor Taproot follow-ups (sipa)
  • #19401 Use GBT to get block versions correct (luke-jr)
  • #20159 mining_getblocktemplate_longpoll.py improvements (use MiniWallet, add logging) (theStack)
  • #20039 Convert amounts from float to decimal (prayank23)
  • #20112 Speed up wallet_resendwallettransactions with mockscheduler RPC (MarcoFalke)
  • #20247 fuzz: Check for addrv1 compatibility before using addrv1 serializer. Fuzz addrv2 serialization (practicalswift)
  • #20167 Add test for -blockversion (MarcoFalke)
  • #19877 Clarify rpc_net & p2p_disconnect_ban functional tests (amitiuttarwar)
  • #20258 Remove getnettotals/getpeerinfo consistency test (jnewbery)
  • #20242 fuzz: Properly initialize PrecomputedTransactionData (MarcoFalke)
  • #20262 Skip —descriptor tests if sqlite is not compiled (achow101)
  • #18788 Update more tests to work with descriptor wallets (achow101)
  • #20289 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CService (practicalswift)
  • #20290 fuzz: Fix DecodeHexTx fuzzing harness issue (practicalswift)
  • #20245 Run script_assets_test even if built —with-libs=no (MarcoFalke)
  • #20300 fuzz: Add missing ECC_Start to descriptor_parse test (S3RK)
  • #20283 Only try witness deser when checking for witness deser failure (MarcoFalke)
  • #20303 fuzz: Assert expected DecodeHexTx behaviour when using legacy decoding (practicalswift)
  • #20316 Fix wallet_multiwallet test issue on Windows (MarcoFalke)
  • #20326 Fix ecdsa_verify in test framework (stepansnigirev)
  • #20328 cirrus: Skip tasks on the gui repo main branch (MarcoFalke)
  • #20355 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CSubNet (practicalswift)
  • #20332 Mock IBD in net_processing fuzzers (MarcoFalke)
  • #20218 Suppress epoll_ctl data race (MarcoFalke)
  • #20375 fuzz: Improve coverage for CPartialMerkleTree fuzzing harness (practicalswift)
  • #19669 contrib: Fixup valgrind suppressions file (MarcoFalke)
  • #18879 valgrind: remove outdated suppressions (fanquake)
  • #19226 Add BerkeleyDatabase tsan suppression (MarcoFalke)
  • #20379 Remove no longer needed UBSan suppression (float divide-by-zero in validation.cpp) (practicalswift)
  • #18190, #18736, #18744, #18775, #18783, #18867, #18994, #19065, #19067, #19143, #19222, #19247, #19286, #19296, #19379, #19934, #20188, #20395 Add fuzzing harnessses (practicalswift)
  • #18638 Use mockable time for ping/pong, add tests (MarcoFalke)
  • #19951 CNetAddr scoped ipv6 test coverage, rename scopeId to m_scope_id (jonatack)
  • #20027 Use mockable time everywhere in net_processing (sipa)
  • #19105 Add Muhash3072 implementation in Python (fjahr)
  • #18704, #18752, #18753, #18765, #18839, #18866, #18873, #19022, #19023, #19429, #19552, #19778, #20176, #20179, #20214, #20292, #20299, #20322 Fix intermittent test issues (MarcoFalke)
  • #20390 CI/Cirrus: Skip merge_base step for non-PRs (luke-jr)
  • #18634 ci: Add fuzzbuzz integration configuration file (practicalswift)
  • #18591 Add C++17 build to Travis (sipa)
  • #18581, #18667, #18798, #19495, #19519, #19538 CI improvements (hebasto)
  • #18683, #18705, #18735, #18778, #18799, #18829, #18912, #18929, #19008, #19041, #19164, #19201, #19267, #19276, #19321, #19371, #19427, #19730, #19746, #19881, #20294, #20339, #20368 CI improvements (MarcoFalke)
  • #20489, #20506 MSVC CI improvements (sipsorcery)

その他

  • #18713 scripts: Add macho stack canary check to security-check.py (fanquake)
  • #18629 scripts: Add pe .reloc section check to security-check.py (fanquake)
  • #18437 util: Detect posix_fallocate() instead of assuming (vasild)
  • #18413 script: Prevent ub when computing abs value for num opcode serialize (pierreN)
  • #18443 lockedpool: avoid sensitive data in core files (FreeBSD) (vasild)
  • #18885 contrib: Move optimize-pngs.py script to the maintainer repo (MarcoFalke)
  • #18317 Serialization improvements step 6 (all except wallet/gui) (sipa)
  • #16127 More thread safety annotation coverage (ajtowns)
  • #19228 Update libsecp256k1 subtree (sipa)
  • #19277 util: Add assert identity function (MarcoFalke)
  • #19491 util: Make assert work with any value (MarcoFalke)
  • #19205 script: previous_release.sh rewritten in python (bliotti)
  • #15935 Add /settings.json persistent settings storage (ryanofsky)
  • #19439 script: Linter to check commit message formatting (Ghorbanian)
  • #19654 lint: Improve commit message linter in travis (fjahr)
  • #15382 util: Add runcommandparsejson (Sjors)
  • #19614 util: Use have_fdatasync to determine fdatasync() use (fanquake)
  • #19813 util, ci: Hard code previous release tarball checksums (hebasto)
  • #19841 Implement Keccak and SHA3_256 (sipa)
  • #19643 Add -netinfo peer connections dashboard (jonatack)
  • #15367 feature: Added ability for users to add a startup command (benthecarman)
  • #19984 log: Remove static log message “Initializing chainstate Chainstate [ibd] @ height -1 (null)” (practicalswift)
  • #20092 util: Do not use gargs global in argsmanager member functions (hebasto)
  • #20168 contrib: Fix gen_key_io_test_vectors.py imports (MarcoFalke)
  • #19624 Warn on unknown rw_settings (MarcoFalke)
  • #20257 Update secp256k1 subtree to latest master (sipa)
  • #20346 script: Modify security-check.py to use ”==” instead of “is” for literal comparison (tylerchambers)
  • #18881 Prevent UB in DeleteLock() function (hebasto)
  • #19180, #19189, #19190, #19220, #19399 Replace RecursiveMutex with Mutex (hebasto)
  • #19347 Make cs_inventory nonrecursive (jnewbery)
  • #19773 Avoid recursive lock in IsTrusted (promag)
  • #18790 Improve thread naming (hebasto)
  • #20140 Restore compatibility with old CSubNet serialization (sipa)
  • #17775 DecodeHexTx: Try case where txn has inputs first (instagibbs)

ドキュメンテーション

  • #18502 Update docs for getbalance (default minconf should be 0) (uzyn)
  • #18632 Fix macos comments in release-notes (MarcoFalke)
  • #18645 Update thread information in developer docs (jnewbery)
  • #18709 Note why we can’t use thread_local with glibc back compat (fanquake)
  • #18410 Improve commenting for coins.cpp|h (jnewbery)
  • #18157 fixing init.md documentation to not require rpcpassword (jkcd)
  • #18739 Document how to fuzz Bitcoin Core using Honggfuzz (practicalswift)
  • #18779 Better explain GNU ld’s dislike of ld64’s options (fanquake)
  • #18663 Mention build docs in README.md (saahilshangle)
  • #18810 Update rest info on block size and json (chrisabrams)
  • #18939 Add c++17-enable flag to fuzzing instructions (mzumsande)
  • #18957 Add a link from ZMQ doc to ZMQ example in contrib/ (meeDamian)
  • #19058 Drop protobuf stuff (hebasto)
  • #19061 Add link to Visual Studio build readme (maitrebitcoin)
  • #19072 Expand section on Getting Started (MarcoFalke)
  • #18968 noban precludes maxuploadtarget disconnects (MarcoFalke)
  • #19005 Add documentation for ‘checklevel’ argument in ‘verifychain’ RPC… (kcalvinalvin)
  • #19192 Extract net permissions doc (MarcoFalke)
  • #19071 Separate repository for the gui (MarcoFalke)
  • #19018 fixing description of the field sequence in walletcreatefundedpsbt RPC method (limpbrains)
  • #19367 Span pitfalls (sipa)
  • #19408 Windows WSL build recommendation to temporarily disable Win32 PE support (sipsorcery)
  • #19407 explain why passing -mlinker-version is required when cross-compiling (fanquake)
  • #19452 afl fuzzing comment about afl-gcc and afl-g++ (Crypt-iQ)
  • #19258 improve subtree check instructions (Sjors)
  • #19474 Use precise permission flags where possible (MarcoFalke)
  • #19494 CONTRIBUTING.md improvements (jonatack)
  • #19268 Add non-thread-safe note to FeeFilterRounder::round() (hebasto)
  • #19547 Update macOS cross compilation dependencies for Focal (hebasto)
  • #19617 Clang 8 or later is required with FORCE_USE_SYSTEM_CLANG (fanquake)
  • #19639 Remove Reference Links #19582 (RobertHosking)
  • #19605 Set CC_FOR_BUILD when building on OpenBSD (fanquake)
  • #19765 Fix getmempoolancestors RPC result doc (MarcoFalke)
  • #19786 Remove label from good first issue template (MarcoFalke)
  • #19646 Updated outdated help command for getblocktemplate (jakeleventhal)
  • #18817 Document differences in bitcoind and bitcoin-qt locale handling (practicalswift)
  • #19870 update PyZMQ install instructions, fix zmq_sub.py file permissions (jonatack)
  • #19903 Update build-openbsd.md with GUI support (grubles)
  • #19241 help: Generate checkpoint height from chainparams (luke-jr)
  • #18949 Add CODEOWNERS file to automatically nominate PR reviewers (adamjonas)
  • #20014 Mention signet in -help output (hebasto)
  • #20015 Added default signet config for linearize script (gr0kchain)
  • #19958 Better document features of feelers (naumenkogs)
  • #19871 Clarify scope of eviction protection of outbound block-relay peers (ariard)
  • #20076 Update and improve files.md (hebasto)
  • #20107 Collect release-notes snippets (MarcoFalke)
  • #20109 Release notes and followups from 19339 (glozow)
  • #20090 Tiny followups to new getpeerinfo connection type field (amitiuttarwar)
  • #20152 Update wallet files in files.md (hebasto)
  • #19124 Document ALLOW_HOST_PACKAGES dependency option (skmcontrib)
  • #20271 Document that wallet salvage is experimental (MarcoFalke)
  • #20281 Correct getblockstats documentation for (sw)total_weight (shesek)
  • #20279 release process updates/fixups (jonatack)
  • #20238 Missing comments for signet parameters (decryp2kanon)
  • #20756 Add missing field (permissions) to the getpeerinfo help (amitiuttarwar)
  • #20668 warn that incoming conns are unlikely when not using default ports (adamjonas)
  • #19961 tor.md updates (jonatack)
  • #19050 Add warning for rest interface limitation (fjahr)
  • #19390 doc/REST-interface: Remove stale info (luke-jr)
  • #19344 docs: update testgen usage example (Bushstar)

クレジット

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

  • 10xcryptodev
  • Aaron Clauson
  • Aaron Hook
  • Adam Jonas
  • Adam Soltys
  • Adam Stein
  • Akio Nakamura
  • Alex Willmer
  • Amir Ghorbanian
  • Amiti Uttarwar
  • Andrew Chow
  • Andrew Toth
  • Anthony Fieroni
  • Anthony Towns
  • Antoine Poinsot
  • Antoine Riard
  • Ben Carman
  • Ben Woosley
  • Benoit Verret
  • Brian Liotti
  • Bushstar
  • Calvin Kim
  • Carl Dong
  • Chris Abrams
  • Chris L
  • Christopher Coverdale
  • codeShark149
  • Cory Fields
  • Craig Andrews
  • Damian Mee
  • Daniel Kraft
  • Danny Lee
  • David Reikher
  • DesWurstes
  • Dhruv Mehta
  • Duncan Dean
  • Elichai Turkel
  • Elliott Jin
  • Emil Engler
  • Ethan Heilman
  • eugene
  • Fabian Jahr
  • fanquake
  • Ferdinando M. Ametrano
  • freenancial
  • furszy
  • Gillian Chu
  • Gleb Naumenko
  • Glenn Willen
  • Gloria Zhao
  • glowang
  • gr0kchain
  • Gregory Sanders
  • grubles
  • gzhao408
  • Harris
  • Hennadii Stepanov
  • Hugo Nguyen
  • Igor Cota
  • Ivan Metlushko
  • Ivan Vershigora
  • Jake Leventhal
  • James O’Beirne
  • Jeremy Rubin
  • jgmorgan
  • Jim Posen
  • “jkcd”
  • jmorgan
  • John Newbery
  • Johnson Lau
  • Jon Atack
  • Jonas Schnelli
  • Jonathan Schoeller
  • João Barbosa
  • Justin Moon
  • kanon
  • Karl-Johan Alm
  • Kiminuo
  • Kristaps Kaupe
  • lontivero
  • Luke Dashjr
  • Marcin Jachymiak
  • MarcoFalke
  • Martin Ankerl
  • Martin Zumsande
  • maskoficarus
  • Matt Corallo
  • Matthew Zipkin
  • MeshCollider
  • Miguel Herranz
  • MIZUTA Takeshi
  • mruddy
  • Nadav Ivgi
  • Neha Narula
  • Nicolas Thumann
  • Niklas Gögge
  • Nima Yazdanmehr
  • nsa
  • nthumann
  • Oliver Gugger
  • pad
  • pasta
  • Peter Bushnell
  • pierrenn
  • Pieter Wuille
  • practicalswift
  • Prayank
  • Raúl Martínez (RME)
  • RandyMcMillan
  • Rene Pickhardt
  • Riccardo Masutti
  • Robert
  • Rod Vagg
  • Roy Shao
  • Russell Yanofsky
  • Saahil Shangle
  • sachinkm77
  • saibato
  • Samuel Dobson
  • sanket1729
  • Sebastian Falbesoner
  • Seleme Topuz
  • Sishir Giri
  • Sjors Provoost
  • skmcontrib
  • Stepan Snigirev
  • Stephan Oeste
  • Suhas Daftuar
  • t-bast
  • Tom Harding
  • Torhte Butler
  • TrentZ
  • Troy Giorshev
  • tryphe
  • Tyler Chambers
  • U-Zyn Chua
  • Vasil Dimov
  • wiz
  • Wladimir J. van der Laan

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