Bitcoin Core 32.1

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

v32.1 リリースノート

直前になって問題が発生したため、32.0はタグ付けはされたものの、 正式に発表もリリースもされませんでした。

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

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

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

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

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

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

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

今回の新しいメジャーバージョンリリースに伴い、29.x以前のバージョンはサポート終了となり、 今後アップデートは提供されません。

私たちのセキュリティポリシーに基づき、 本リリースで修正された脆弱性のうち、容易に発見可能なものについては、 サポート対象のすべてのメジャーバージョンにおいて修正版が利用可能になった時点で開示されます。

通常の開示スケジュールに従い、2週間後に以下の情報を公開します:

  • バージョン30.0で修正された、重大度が「中」および「高」の脆弱性(計3件)。

  • バージョン32.1で修正された、重大度が「低」の脆弱性(計0件)。

アップグレード方法

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

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

互換性

Bitcoin Coreは、以下のオペレーティングシステム(またはそれ以降のバージョン)において サポートおよびテストが行われています: Linuxカーネル3.17、macOS 14、Windows 10(バージョン1903)。 Bitcoin Coreは、その他多くのUnix系システムでも動作する可能性がありますが、 それらの環境では頻繁にテストされていません。 サポートされていないシステムでBitcoin Coreを使用するのはお勧めできません。

主な変更点

P2Pとネットワークの変更

  • Bitcoin Coreが自動的に作成するTor Hidden Serviceは、Torデーモンが対応している場合、 PoW防御が 有効になります。(#33414)
  • トランザクション量が多い期間のメモリおよびCPU使用量を削減するため、 送信トランザクションリレーのレート制限が、ピア毎に行う方式からグローバルなバックログを使用する方式に変更されました。 デフォルトのレート制限は14 tx/s(アウトバウンドピアに対しては2.5倍に引き上げ)のままですが、 -txsendrate設定オプションで変更できます。さらに、10分あたり12MBのトランザクションという 帯域幅のレート制限も導入されました(バーストレートは高めに設定されています)。 グローバルなバックログのサイズと、レート制限のトークンバケットの値はgetnetworkinfo RPCで確認できます。(#34628)
  • -privatebroadcast=1の場合にsendrawtransaction RPCで送信したトランザクションについて、 発信者のIPアドレスが漏洩する可能性があった問題を修正しました。Bitcoin Coreがピアに接続する際、 そのピアがP2Pプロトコルv2をサポートしていると通知されている場合、Bitcoin Coreはv2プロトコルの使用を試み、 失敗した場合はv1プロトコルで接続を再試行します。プライベートブロードキャスト機能がIPv4またはIPv6のピアに トランザクションを送信しようとする際は、通常のプロキシ選択を上書きし、Torプロキシ経由 (つまりTorネットワーク経由。これにより送信者のIPアドレスが保護されます)で接続するよう強制します。 しかし、v2プロトコルを試みて失敗した場合、v1での再試行接続は「プロキシの上書き」要求を無視して行われ、 IPv4またはIPv6の直接接続が行われる可能性がありました。具体的には、 以下の条件がすべて満たされている場合にこの問題が発生します:
    1. v2サポートを示すIPv4またはIPv6アドレスが送信者に通知されている。
    2. 送信者がTorを設定している。
    3. 送信者の設定において、IPv4またはIPv6への接続が直接行われるようになっている (IPv4またはIPv6に対して-proxy=オプションが使用されていない)。
    4. 受信者がv2をサポートしていない(1.のフラグが偽である)。(#35410)
  • プライベートブロードキャストキュー(-privatebroadcastが有効な場合にsendrawtransactionで送信され、 まだネットワークからエコーバックされていないトランザクション)の上限が10,000エントリーになりました。 キューがいっぱいの場合、新しい送信は拒否されます。getprivatebroadcastinfoでキューを確認し、 詰まっている場合にabortprivatebroadcastで空きを確保するのは呼び出し側の責任です。(#35406)
  • プライベートブロードキャスト(-privatebroadcast)で送信される各トランザクションの送信試行回数は 1,000回に制限されます。上限に達するとブロードキャストは停止します。再試行するにはsendrawtransactionを 再度呼び出してください。上限に達したトランザクションは、引き続きgetprivatebroadcastinfoで確認でき、 abortprivatebroadcastによる操作も可能です。(#35680)
  • I2Pセッション作成時のレガシーなElGamal(タイプ0)暗号化方式のサポートは、I2Pネットワーク側で廃止が進められており、 v34までにbitcoindから削除される予定です。v26.1(PR #29200、#29209)より前のバージョンのBitcoin Coreで I2Pを使用しているノードは、近い将来、他のレガシーなElGamal方式を使用するI2Pピアにしか接続できなくなります。その結果、 ネットワークの他の部分から孤立し、匿名性セットが縮小することになります。詳細は#35696をご覧ください。(#35696)
  • 本プロジェクトでは現在、CJDNSのサポートを終了するかどうかを検討しています(#36041の議論を参照)。 v23.0での導入以来、ノード間で大きな普及は見られず、これほどピア数の少ないネットワークを サポートすることには懸念が示されています。(#36202)
  • セットアップ/ピア検出の手順を簡素化するため、CJDNSのドキュメントが#34811で更新されました。(#36202)
  • 自動ピア接続数のデフォルトの最大値(-maxconnections)が125から200に引き上げられ、 block-relay-onlyピア向けのインバウンド容量が拡大されました。デフォルトでは、 トランザクションをリレーするピアが使用できるインバウンド接続スロットは最大50%です。 この割合は新しい-inboundrelaypercentオプションで設定でき、0から100までの値を受け付け、デフォルトは50です。 自動アウトバウンド接続数に変更はありません。(#28463)
  • 明示的に設定された-maxconnectionsの値はそのまま維持されますが、新しいインバウンドの トランザクションリレー制限は適用されます。従来の接続制限を維持するには、 -maxconnections=125 -inboundrelaypercent=100を使用してください。 また、非常に多くのピア数でのクラッシュリスクを低減するため、 -maxconnectionsに2,000を超える値を指定した場合は、値が制限され、警告が表示されるようになりました。(#35919)

Mempool

  • mempoolfullrbf=1の挙動はv28以降デフォルトとなり、その後v29ではこの引数自体が削除されました。 getmempoolinfo RPCは、ユーザーがノード引数-deprecatedrpc=fullrbfを指定しない限り、 非推奨のfullrbfキーをレスポンスで返さなくなりました。また、bip125-replaceableキーも (同様にv29以降非推奨であったため)、ユーザーがノード引数-deprecatedrpc=bip125を指定しない限り、 mempool RPCのレスポンスから削除されました。影響を受けるmempool RPCは、getrawmempool、 getmempoolancestors、getmempooldescendants、getmempoolentryです。(#34911)

RPCの更新

  • createpsbt、walletcreatefundedpsbt、converttopsbt、psbtbumpfeeは、 デフォルトでバージョン2のPSBTを作成するようになりました。これらのRPCには、 作成するPSBTのバージョンを指定できるオプション引数psbt_versionが追加されています。(#21283)
  • getdeploymentinfoからtaprootが削除されました。その過去のアクティベーション高さが、 コードベースのどこでも使用されなくなったためです。Taprootのサポート検出にdeployments.taprootに 依存しているアプリケーションは、Taprootが常に有効であると仮定する(Bitcoin Core v24.0以降)か、 getdeploymentinfoが返すscript_flags配列にTAPROOTが含まれているかを確認する (Bitcoin Core v31.0以降)必要があります。(#26201)
  • Bitcoin Coreは、トランザクションのインプットが非標準である理由を説明するデバッグメッセージを 報告するようになりました。この情報は、トランザクション送信RPCであるsubmitpackage、 sendrawtransaction、testmempoolacceptのレスポンスで返されるほか、 そのようなトランザクションをP2Pネットワーク経由で受信した場合には(mempoolrejデバッグカテゴリが有効であれば) debug.logにも記録されます。これは既存のエラーコードbad-txns-nonstandard-inputsを変更するものではなく、 追加のデバッグ情報を付加するものです。(#29060)
  • dumptxoutset RPCは、UNIX系システムで名前付きパイプへの書き込みをサポートするようになりました (mkfifo(1)およびmkfifo(3)のmanページを参照)。これにより、UTXOセットの生データをディスクに 書き出すことなく、別のプロセス(例: contrib/utxo-tools/utxo_to_sqlite.py変換スクリプトなど)で 読み取ることが可能になります。(#31560)
  • mempool関連のRPC(getrawmempool、getmempoolentry、testmempoolaccept、submitpackage)に、 新しいフィールドvsize_adjusted(ポリシーで使用されるsigop調整済みの仮想サイズ)と vsize_bip141(素のBIP141仮想サイズ)が追加されました。vsizeは非推奨となりました。 これは以前BIP 141の仮想サイズであると誤って説明されていたもので、実際にはsigop調整済みの仮想サイズです。 実際にBIP 141の仮想サイズを取得するにはvsize_bip141を、従来の挙動を維持するには 明示的なvsize_adjustedを使用してください。(#32800)
  • getrawtransaction RPCに新しいフィールドvsize_adjustedが追加されました。 これは、トランザクションがmempool内にある場合のsigop調整済みの仮想サイズです。(#32800)
  • getblockchaininfo RPCは、assumeutxo機能を使用している場合、バックグラウンド検証の進捗を 確認できるようになりました。ノードがスナップショットからチェーンの先端まで同期すると、 バックグラウンドでまだブロックを検証中であっても、verificationprogressは1.0を、 initialblockdownloadはfalseを返します。新しいオブジェクトbackgroundvalidationは、 検証中のスナップショットに関する詳細(スナップショットの高さ、処理済みブロック数、最良ブロックのハッシュ、 chainwork、中央値時刻、検証の進捗など)を提供します。(#33259)
  • getbalancesのmineにnonmempoolフィールドが追加され、mempoolに含まれていない ウォレットトランザクション(例: 手数料率が低すぎる、未承認の祖先が多すぎる、OP_RETURNアウトプットが 大きすぎる等の理由による)の正味残高を報告するようになりました。この値は常に負の値で、通常は過大評価になります。 これは使用されるコインは考慮しますが、ウォレットに戻ってくるお釣りのアウトプット(これもmempool外にあります)を 考慮しないためです。このフィールドがないと、mempool外のトランザクションに関係する資金が ウォレット残高から消えたように見える可能性がありました。(#33671)
  • estimatesmartfee RPCは、2つの手数料率推定器、すなわち既存のブロックポリシー手数料率推定器と 新しいmempool手数料率推定器を組み合わせて使用するようになりました。(#34075)
  • 新しいmempool手数料率推定器は、現在のmempoolの内容から保守的および 経済的な手数料率の推定値を算出します。この推定器は、直近のブロックがmempoolの 健全性を示している場合にのみ手数料率の推定値を算出し、mempool内のトランザクションが少なすぎる場合は、 最低リレー手数料率と現在のmempoolの最低手数料率のいずれか高い方にフォールバックします。 その統計情報はfees/mempool_policy_estimator.datに永続化され、起動時に再読み込みされます。 estimatesmartfeeは2つの手数料率推定器の結果のうち低い方を返すため、 mempool手数料率推定器はブロックポリシー手数料率推定値を引き下げることしかできません。(#34075)
  • estimatesmartfeeは、fee_rate_estimatorを含むoptionsオブジェクトを受け付けます。 指定可能な値は、"auto"(デフォルト。上述の組み合わせの挙動)、"block_policy" (ブロックポリシー手数料率推定器のみを使用)、"mempool_policy"(mempool手数料率推定器のみを使用)です。 これら以外の値はすべて拒否されます。従来の挙動を望むユーザーは、ブロックポリシー手数料率推定器を明示的に選択してください。(#34075)
  • optionsオブジェクトはverbosityを受け入れるようになりました。verbosityが2以上の場合、 mempool_health_statisticsも返されます。(#34075)
  • fee_rate_estimatorが"auto"で推定に成功した場合、レスポンスには、 どの手数料率推定器が結果を算出したかを示すestimatorフィールドが含まれます。(#34075)
  • ブロックポリシー手数料推定器のデータはfees/block_policy_estimates.datに保存されるようになりました。 新しいファイルが存在しない場合、起動時に従来のfee_estimates.datファイルが新しいパスに移動されます。 両方のファイルが存在する場合は、従来ファイルは削除されます。(#34075)
  • ウォレットの手数料率推定は、デフォルトの組み合わせ推定を使用します。(#34075)

  • 設定オプション-deprecatedrpc=startingheightが削除されました。getpeerinfo RPCは、 v31.0で非推奨とされていたstartingheightフィールドを返さなくなりました。(#34796)
  • migratewallet RPCに、レガシーウォレットからの移行後にディスクリプターウォレットを 自動的にロードしないオプションが追加されました。これにより、プルーニングノードでも、 プルーニング高さより前で同期が止まっているウォレットを移行できるようになります。 なお、新しいウォレットを使用するには、いずれにせよフルノードにロードする必要があります。(#35266)
  • getprivatebroadcastinfoおよびabortprivatebroadcast RPCは、起動時に-privatebroadcastが 有効になっていない場合、エラー-32601「Method not found」を返すようになりました。(#35267)
  • gettransaction、listtransactions、listsinceblockにalternate_wtxidsフィールドが追加され、 同じtxidを持つすべてのトランザクションのwtxidがリストされるようになりました。 既知のwitnessのバリアントが1つしかない場合、このフィールドはwalletconflictsや mempoolconflictsと同様に空の配列になります。(#35501)
  • getprivatebroadcastinfoは、各トランザクションについてattempts_remainingフィールドを 報告するようになりました。(#35680)
  • getnetworkinfoは、-asmapが使用されている場合にasmap_versionを報告するようになりました。 このバージョンはASMapデータのハッシュで、asmap-data リポジトリでsha256sumを使って検証可能な、生のASMapデータファイルのハッシュと照合して確認できます。(#36249)

ウォレット関連のRPCの変更については、以下のウォレットのセクションをご覧ください。

新しいRPC

  • 新しいexportasmap RPCは、ビルド時に埋め込まれたASMapデータをファイルに書き出します。(#33920)
  • 新しいgetopenrpcinfo RPCは、実行中のノードで利用可能なRPCについて、パラメーターと結果のスキーマを含む 機械可読なOpenRPC 1.4.1形式の記述を返します。新しいrpc.discoverメソッドは、OpenRPC標準の サービス検出手法を使って同じ公開ドキュメントを提供します。隠しコマンドおよび引数を含めるには、 show_hidden=trueを指定してgetopenrpcinfoを呼び出してください。(#34683)

ビルドシステム

  • 次のメジャーリリースでは、clang-clのサポートが整い次第、MSVCを使用したWindows上での Bitcoin Coreのビルドのサポートを終了する予定です。詳細は(#36153)を参照してください。
  • これまでドキュメント化されていなかった環境変数BITCOIN_GENBUILD_NO_GITは不要となったため、削除されました。 ビルドシステムは、ソースアーカイブからビルドされている場合や、Gitを利用する親プロジェクトの サブプロジェクトとしてビルドされている場合を自動的に検出し、Gitメタデータの取得をスキップするようになりました。 Gitの実行を明示的に無効にする必要があるユーザーは、引き続き-DCMAKE_DISABLE_FIND_PACKAGE_Git=ONを 指定して設定することで無効にできます。(#32220)

設定の更新

  • listtransactions、listsinceblock、gettransactionなどのウォレットトランザクションRPCにおける bip125-replaceableキーが非推奨となりました。ユーザーは引き続き、起動オプション -deprecatedrpc=bip125を指定することでこのキーを取得できます。また、起動オプション-walletrbfも 非推奨となり、次のリリースで完全に削除されます。このオプションを使用するとログに警告が出力されます。(#34917)
  • ログカテゴリlibeventが削除されました。-debug=libeventや-debugexclude=libeventのような設定をすると、 非推奨の警告をログに出力したうえで無視されます。これらの設定は将来のリリースではエラーになります。
  • 新しい設定オプション-rpcmaxconnections(デフォルト16)は、サーバーに同時接続するHTTPクライアントの数を 制限します。アプリケーションは、HTTPサーバーのソケット用にファイルディスクリプタを予約しようとするようになりました。 システムのリソースが限られている場合は、より低い値の設定を検討してください。
  • 新しいログカテゴリminingが追加され、-debug=miningで有効にできます。 これまでログ設定にかかわらずブロックテンプレートを構築するたびに記録されていた CreateNewBlock(): block weight: ...の行は、このカテゴリが有効な場合にのみ記録されるようになりました。 getblocktemplateおよびマイニングIPCのユーザーは、このログおよび今後のマイニングログを確認するために、 このカテゴリを有効にすることをお勧めします。

GUIまたはウォレット関連の設定の変更については、以下のGUIまたはウォレットのセクションをご覧ください。

新しい設定

  • ブロック検証において、ブロック接続中にchainstateデータベースからインプットのprevoutを 並列にプリフェッチできるようになり、prevoutをディスクから読み込む必要がある場合の検証が高速化されました。 新しい-prevoutfetchthreads=<n>オプションでプリフェッチワーカースレッドの数を制御できます。 デフォルトは8スレッドで、最大16です。0に設定すると並列プリフェッチは無効になります。(#35295)

ツールとユーティリティ

  • CLIの-addrinfoは、既知のアドレスの完全な集合を返すようになりました。以前のバージョン(v22.0〜v30.0)では、 返されるアドレスの集合は品質や新しさに基づいてフィルタリングされていました。これは、 接続先ピアを選択する際のロジック(フィルタリングを行わない)と一致しないため挙動が変更されました。 注: CLIの-addrinfoは内部でgetaddrmaninfo RPCを使用するため、bitcoind v26.0以降が必要になりました。 サポートが終了した古いバージョンのノードにクエリを行う場合は、古いバージョンのbitcoin-cliを使用する必要があります。(#26988)
  • 新しいbitcoin-util getchainparamsコマンドは、選択したチェーンに関するハードコードされた詳細情報を返します。(#35610)

ウォレット

  • 新しいRPC addhdkeyが追加され、BIP 32拡張鍵を別のディスクリプターの一部としてインポートすることなく ウォレットに追加できるようになりました。この鍵は、addhdkey RPCとは独立した別のディスクリプターの一部として 明示的にインポートされない限り、アウトプットスクリプトの生成には使用されません。(#29136)
  • 新しいexportwatchonlywallet RPCは、既存のディスクリプターウォレットから監視専用ウォレットファイルを作成します。 エクスポートされたファイルには、ウォレットの公開ディスクリプター(必要に応じて導出鍵のキャッシュを含む)、 トランザクション、アドレス帳のデータが含まれますが、秘密鍵は含まれません。 このファイルは、既存のrestorewallet RPCを使って別のノードにインポートできます。(#32489)
  • オフライン署名チュートリアルは、 オンラインの監視専用ウォレットをセットアップする際にexportwatchonlywalletを使用するよう更新され、 従来の手動によるディスクリプターのインポート手順は置き換えられました。(#32489)
  • 新しいderivehdkey RPCが利用可能になり、ウォレットが知っているHD鍵から、少なくとも1つの強化導出ステップを 含む導出パスのxpubまたはxprvを取得できるようになりました。これはマルチシグのセットアップの調整に使用でき、 各署名者はデフォルトの単一署名ディスクリプターとは異なる導出パスを使ってxpubを共有します。 doc/multisig-tutorial.mdの例も、このRPCを使用するよう更新されました。(#32784)
  • ウォレットのトランザクション作成RPCが返すfee_reasonフィールドは、ブロックポリシー手数料率推定器の 内部的な閾値の詳細ではなく、ウォレットがその手数料率を選択した理由(”Fee Rate Estimator”、”Mempool Min Fee”、 “User Specified Fee”、”Fallback fee”、”Minimum Required Fee”)を報告するようになりました。 それらの詳細は、引き続きブロックポリシー手数料率推定器のデバッグログで確認できます。(#34075)
  • ..や.の要素を含む相対パスのウォレット名、および/という名前のウォレットは許可されなくなりました。 この挙動に依存していたユーザーは、代わりにウォレットへの絶対パスを使用するか、 ウォレットをより安全なパスに移動してください。(#34544)
  • sendおよびsendall RPCは、実験的機能としての扱いではなくなりました。(#35601)
  • fundrawtransaction RPCは、2番目の位置引数としてブール値を指定できなくなりました。 指定しても何も起こらないという挙動は削除され、引数は厳密に型チェックされるようになりました。 ブール値を渡すとエラーになります。(#35836)
  • Windows以外のシステムでは、-walletnotifyが設定されている場合、ウォレットの作成権限を持つ 認証済みのRPC呼び出し元が、正規表現の置換文字を含むウォレット名を細工することで、 ノードプロセスを実行しているユーザーのアカウント権限で任意のコマンドを実行できてしまいました。 ウォレット通知のプレースホルダーの置換処理は、ウォレット名をリテラルとして扱うようになりました。(#36048)
  • removeprunedfunds RPCは非推奨となり、次のメジャーリリースで削除されます。 引き続き使用する場合は、bitcoindを-deprecatedrpc=removeprunedfundsオプション付きで起動する必要があります。(#35605)

GUIの変更

  • 既存のディスクリプターウォレットから監視専用ウォレットファイルを作成できるメニュー操作が追加されました。 このオプションはexportwatchonlywallet RPCに対応するもので、エクスポートされたファイルは Restore Wallet(ウォレットの復元)メニュー操作で別のノードにインポートできます。(gui#872)
  • 送金タブから「Replace-By-Feeを有効化」チェックボックスが削除され、送金確認ダイアログでは トランザクションがBIP 125の置換可能性をシグナリングするかどうかが表示されなくなりました。 GUIで作成されるトランザクションは、ウォレットの-walletrbf設定に従うようになりました。 この設定はデフォルトで置換可能性をシグナリングし、本リリースで非推奨となっています(設定の更新を参照)。(gui#936)
  • ウォレットの移行オプションで、移行後のウォレットの自動ロードを無効にできるようになりました。 これは、ノードがプルーニングされており、ウォレットがプルーニング高さより前に作成されていた場合に有用です。(gui#953)
  • GUIはQt 6.8.4でビルドされるようになりました。(#35709)

マイニング

  • IPCマイニングインターフェースは、過大な予約ブロックウェイトやコインベースのsigops上限など、 範囲外のブロックテンプレートオプションを黙って丸めるのではなく、拒否するようになりました。(#33966)
  • 起動オプション-blockmaxweightは、-blockreservedweightより小さい場合、 黙って丸められるのではなく拒否されるようになりました。(#33966)

IPCインターフェース

  • BlockTemplate.submitSolutionは、ブール値の結果に加えて、拒否の詳細であるreasonとdebugを 返すようになりました。新しいメソッドを使用するには、クライアントは更新されたmining.capnpスキーマから IPCバインディングを再生成する必要があります。従来の@7メソッドは、クライアントに更新を促すエラーを 返すようになりました。(#34672)
  • BlockTemplate.submitSolutionは、重複したブロックの送信に対して成功を返すのではなく、 Mining.submitBlockと同様にreason="duplicate"の失敗として報告するようになりました。(#34672)

ログ

  • BIP 323に従い、ソフトフォークのシグナリングにおいてBIP 9のビット5から28(両端を含む)は 無視されるようになりました。バージョンにこれらのビットのいずれかがセットされたブロックを受信しても、 未知のデプロイメントについて警告しなくなります。(#34779)

REST API

  • RESTのレスポンスに、中間キャッシュを制御するためのCache-Controlヘッダーが含まれるようになりました。 ブロックのバイナリおよびhexデータ、ブロックの各パーツ、ブロックフィルター、使用済みトランザクションアウトプット、 ブロック固有のデプロイメント情報などの内容が変わらないレスポンスは、1日間キャッシュ可能であることを示す設定が付与されます。 アクティブチェーンやノードの状態によって変化し得るレスポンス、およびエラーはno-storeが指定されます。(#34794)

低レベルの変更

インデックス

  • トランザクションインデックス(-txindex)がディスクに保存するデータ量が削減されました。 インデックスを完全に再構築した場合は半分未満の容量になります。インデックスには後方互換性があるため、 既存のユーザーが容量削減の恩恵を受けるにはインデックスを再作成する必要があります。再作成するには、ノードを停止し、 <datadir>/indexes/txindexディレクトリを削除して再起動してください。再構築にはハードウェアによって 最大数時間かかることがあります。進捗はgetindexinfo RPCで監視できます。再構築後のインデックスは 以前のリリースでは読み込めなくなるため、ダウングレードすると旧形式でインデックスが再構築されます。 恒久的にダウングレードする場合は、以前のリリースは新形式のエントリーが使用していた容量を回収しないため、 先に<datadir>/indexes/txindexディレクトリを削除してください。(#35531)
  • トランザクションアウトプットの使用先のインデックス(-txospenderindex)が使用するディスク容量が削減されました。 既存のインデックスとは引き続き互換性があるため、対応は不要です。アップグレード前に作成されたインデックスのディスク領域を解放したい場合は、 ノードを停止し、<datadir>/indexes/txospenderindex/ディレクトリを削除して、 -txospenderindexを有効にして再起動し、インデックスを再構築してください。(#35634, #35568)

RPC

  • libeventが独自のHTTPサーバーに置き換えられました(#35182)。HTTPの一部のエッジケースでは、 よりRFCに準拠した異なる挙動になります:
    • ヘッダーの最大サイズ(8192 byte)をより厳格に強制
    • ヘッダーのフィールド名に空白を含むリクエストを拒否
    • 「行の折り返し」(ヘッダー行の先頭の空白)を拒否
    • リクエストされたURLの末尾の%を許容
    • 異なる値を持つ複数の「Content-Length」ヘッダーを拒否
  • -rpcallowipオプション(またはそのデフォルトのlocalhost)で許可されていないアドレスから 接続しようとするクライアントは、403 Forbiddenを受け取るのではなく、即座に切断されるようになりました。(#35592)

クレジット

本リリースに直接貢献してくれた皆様に感謝します:

  • 0xb10c
  • Adam Andrews
  • Alexander Wiederin
  • Alfonso Roman Zubeldia
  • ameen-alam
  • amisha
  • Amiti Uttarwar
  • Andreas Kouloumos
  • Andrew Toth
  • Anthony Towns
  • Anthropic Security
  • Antoine Poinsot
  • ArvinFarrelP
  • Ava Chow
  • azuchi
  • benthecarman
  • Ben Woosley
  • Bicaru20
  • b-l-u-e
  • Bortlesboat
  • Brandon Odiwuor
  • Bruno Garcia
  • CaesarCoder
  • Chandra Pratap
  • codeabysss
  • Cory Fields
  • Craig Raw
  • crStiv
  • csjones
  • cyb3ralbert
  • Daniela Brozzoni
  • Daniel Pfeifer
  • Danny van Heumen
  • David Gumberg
  • deadmanoz
  • dergoegge
  • ekzyis
  • Enoch Azariah
  • Eugene Siegel
  • Evan Sultanik
  • Fabian Jahr
  • fanquake
  • frankomosh
  • Gloria Zhao
  • Greg Sanders
  • Guillermo Fernandes
  • GuTS805
  • Hao Xu
  • Hennadii Stepanov
  • Henry Romp
  • Hodlinator
  • HouseOfHufflepuff
  • ImMike
  • ismaelsadeeq
  • janb84
  • jeanpablojp
  • Jean-Philippe Aumasson
  • joaonevess
  • Jon Atack
  • jpk68
  • jrakibi
  • junbyjun1238
  • Kanan
  • kevkevinpal
  • Kyle 🐆
  • l0rinc
  • Laxman Acharya
  • littleyier
  • Luke Dashjr
  • maflcko
  • marcofleon
  • Martin Zumsande
  • Matias Furszyfer
  • Matthew Zipkin
  • Max Edwards
  • Mccalabrese
  • Memetic Money
  • Michael Dietz
  • Muhammad
  • Murch
  • Musa Haruna
  • naiyoma
  • nebula-21
  • nervana21
  • Novo
  • optout
  • Pablo Martin
  • Peter Zafonte
  • Philips Ucheolisah .N
  • Pieter Wuille
  • Pol Espinasa
  • pseudoramdom
  • pythcoiner
  • Renato Britto
  • rkrux
  • Rob Hamilton
  • Robin David
  • Roqqit
  • Ruslan Kasheparov
  • Russell Yanofsky
  • rustaceanrob
  • Sanjana2906
  • satsfy
  • sayed nabhan
  • Sebastian Falbesoner
  • Sebastian van Staa
  • sedited
  • seduless
  • shaurya2k06
  • Shrey
  • Shuvam Pandey
  • Sjors Provoost
  • stickies-v
  • stratospher
  • stringintech
  • taboger
  • takeshikurosawaa
  • Thomas
  • Torkel Rogstad
  • Vasil Dimov
  • vicjuma
  • ViniciusCestarii
  • w0xlt
  • Will Clark
  • winterrdog
  • xyzconstant
  • Yancy
  • yuvicc

さらにTransifexで翻訳を手伝ってくださった皆様にも感謝します。