Bitcoin Core 26.0

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

26.0 リリースノート

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

https://bitcoincore.org/bin/bitcoin-core-26.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を上書きしてください。

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

互換性

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

注目すべき変更

P2Pとネットワークの変更

  • BIP324で定義された v2トランスポートプロトコルの実験的なサポートが追加されました。 これはデフォルトではオフですが、-v2transportを使用して有効にすると、 これをサポートする他のピアと接続毎にネゴシエーションされます。 既存のv1トランスポートプロトコルは、引き続き完全にサポートされます。

  • 複数の到達可能なネットワークを持つノードは、各ネットワークのへの少なくとも1つのアウトバウンド接続を積極的に試行します。 これによりエクリプス攻撃に対する個人の耐性と、分断攻撃に対するネットワークレベルの耐性が向上します。 ユーザーは、複数の有効なネットワークに接続されていることを確認するために、積極的な措置を実行する必要がなくなりました。(#27213)

プルーニング

  • assumeutxoを-pruneと一緒に使用する場合、 pruneバジェットが1100MB(つまり、MIN_DISK_SPACE_FOR_BLOCK_FILES * 2)未満に設定されていると、 このバジェットを超過する可能性があります。pruneバジェットは通常、 各chainstate毎に均等に分割されます。ただし、chainstate毎のpruneバジェットが MIN_DISK_SPACE_FOR_BLOCK_FILESを下回る場合は、その値が使用されます。(#27596)

更新されたRPC

  • -rpcserialversion=0の設定は非推奨になり、将来のリリースで削除される予定です。 現在は、-deprecatedrpc=serialversionオプションを追加することでまだ使用可能です。(#28448)

  • hash_serialized_2の値は、計算された値にバグが含まれており、すべてのデータが考慮されていなかったため、 gettxoutsetinfoから削除されました。 同じ機能を正しく計算されたハッシュで提供するhash_serialized_3に置き換えられています。(#28685)

  • getpeerinfo RPCに新しいフィールドtransport_protocol_typesession_idが追加され、 v2トランスポートプロトコルが使用されているかどうか、使用されている場合はそのセッションIDを示します。

  • addnode RPCに、v2トランスポート接続をピアが試行するかどうかを示すためのv2transport引数が追加されました。

  • Miniscript式が、ディスクリプターを使用して動作するすべてのRPCに対して、 Taprootディスクリプターで使用できるようになりました。(#27255)

  • finalizepsbtは、Miniscript互換のTaprootリーフを使用するインプットでPSBTをファイナライズできるようになりました。(#27255)

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

新しいRPC

  • loadtxoutsetが追加され、dumptxoutsetで生成されたフォーマットのUTXOスナップションをロードできるようになりました。 スナップショットがロードされると、その内容が2つめのchainstateデータ構造にデシリアライズされ、 その後、ネットワークの先端に同期するために使用されます。

    一方、元のchainstateはバックグラウンドで初期ブロックダウロードプロセスを完了し、 最終的にはスナップショットの基になっているブロックまで検証します。

    その結果、数時間ではなく数分で、ネットワークの先端と同期した状態のbitcoindインスタンスが出来上がります。 UTXOスナップショットは、通常サードパーティのソース(HTTP、torrentなど)を介して取得されますが、 その内容はハッシュによってチェックされるためこれは合理的です。

    このプロセスの詳細については、assumeutxoの設計ドキュメント(https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md)を参照ください。

    getchainstatesは、assumeutxo同期プロセスの監視を支援するために追加されました。

  • 新しいgetprioritisedtransactions RPCが追加されました。これは、txidでインデックスされた、 prioritisetransactionを使用してユーザーによって作成されたすべての手数料の差分のマップを返します。 このマップは、各トランザクションがmempoolに存在するかどうかも示します。(#27501)

  • 新しいRPC submitpackageが追加されました。 これは、コンセンサスおよびmempoolのポリシールールを使用してパッケージとして評価される RAWトランザクションのhex値のリストをmempoolに送信するために使用できます。 このポリシーにはパッケージCPFPが含まれており、 高額な手数料を持つ子がmempoolの最小手数料率を下回る親を引き上げることができます(ただし最小リレー手数料率は不可)。(#27609)

    • 警告: パッケージリレーはサポートされていないため、送信に成功してもトランザクションがネットワーク全体に伝播するわけではありません。

    • すべての機能が利用できるわけではありません。パッケージは未承認の親を持つ子に限定され、 どの親も他の親のアウトプットを使用することはできません。またパッケージRBFもサポートされていません。 パッケージのポリシーと制限の詳細については、doc/policy/packages.mdを参照ください。

    • このRPCは実験的なもので、インターフェースは変更される可能性があります。

  • 新しいgetaddrmaninfoRPCが追加され、異なるネットワーク(ipv4、ipv6、onion、i2p、cjdns)における ノードのアドレスマネージャーの新規および試行テーブル内のアドレスの分布を表示できます。 このRPCは、新規および試行されたテーブル内のアドレスの数と、すべてのネットワークの合計を返します。(#27511)

  • 新しいimportmempoolRPCが追加されました。有効なmempool.datファイルをロードし、 その内容をmempoolに追加しようとします。これは、datadirの内容を変更したり、ノードを再起動したりすることなく、 別のノードからmempoolデータをインポートするのに便利です。(#27460)

    • 警告:信頼できないファイルのインポートは、特にファイルのメタデータが引き継がれる場合に危険です。
    • 手数料の差分を適用する場合は、mempool内で既に優先順位が設定されているトランザクションの二重優先順位付けを避けるために、 apply_fee_delta_priorityオプションではなく、 getprioritisedtransactionsRPCおよびprioritisetransactionRPCを使用することを推奨します。

設定の更新

  • bitcoindおよびbitcoin-qtは、使用されるdatadirに無視されるbitcoin.confファイルが含まれている場合、 起動時にエラーを発生させるようになりました。これは、bitcoin.confファイルにdatadir=の行がある場合に発生する可能性があります。 このエラーメッセージは、偶発的な設定ミスを防ぐための単なる診断で、無効にすることで、 datadirに含まれるbitcoin.confを無視してdatadirを使用するという以前の挙動に戻すことができます。(#27302)

  • 無効な-debug-debugexclude-loglevelログ設定オプション渡すと、 見逃しやすい警告がログに記録されるのではなく、エラーが発生するようになりました。(#27632)

GUIまたはウォレット関連の設定の変更は、以下のGUI、ウォレットセクションで確認できます。

新しい設定

ツールとユーティリティ

  • 新しいbitcoinconsensus_verify_script_with_spent_outputs関数がlibconsensusで利用可能になり、 検証中のトランザクションの使用済みアウトプットをオプションで受け入れます。
  • 新しいbitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOTフラグがlibconsensusで利用可能になり、 Taprootの使用ルールでスクリプトを検証できるようになりました。

ウォレット

  • このリリースでは、ウォレットのロード処理が変更されました。これまでは(警告付きで)ロードすることができた、 破損したレコードが含まれるウォレットはロードできなくなる場合があります。たとえば、 アドレス帳のエントリーが破損しているウォレットはロードされなくなる可能性があります。 この問題が発生した場合は、以前のバージョンのBitcoin Coreにウォレットをロードし、 データを新しいウォレットにインポートすることをお勧めします。また、このような場合に、 ソフトウェアを改善し、ウォレットのロードをより堅牢にするために、問題を報告してください。(#24914)

  • -deprecatedrpc=create_bdbオプションを指定せずにdescriptors=falseを設定すると、 createwallet RPCはレガシー(BDB)ウォレットを作成しなくなりました。 これは、将来のリリースでレガシーウォレットが非推奨になるためです。(#28597)

  • gettransactionlisttransactionslistsinceblock RPCは、 すべてのトランザクションに対してabandonedフィールドを返すようになりました。 これまでは、abandonedフィールドは送信されたトランザクションに対してのみ返されていました。(#25158)

  • listdescriptorsdecodepsbtおよび類似のRPCメソッドは、 強化導出を示すためにアポストロフィ(')ではなくhを使用するようになりました。 これは、ディスクリプターの生成またはインポート時に使用されたマーカーと一致するprivateパラメーターを使用する場合には適用されません。 新しく作成されたウォレットは、hを使用します。この変更により、ディスクリプター文字列を手動で扱うのが簡単になります。 たとえば、importdescriptors RPCの呼び出しでは、hをマーカーとして使用するのが一番簡単です:'["desc": ".../0h/..."]'。 この変更により、listdescriptorshを使用するようになり、 エスケープ文字を追加したり、'hに手動で切り替えたりすることなく、結果をコピーして貼り付けることができます。 これにより、ディスクリプターのチェックサムが変わることに注意してください。 レガシーウォレットの場合、getaddressinfohdkeypathフィールドは変更されず、 ウォレットダンプのシリアライゼーションフォーマットも変更させません。(#26076)

  • getbalancesRPCは、残高計算時のウォレットの最後に処理されたブロックハッシュと高さ含む lastprocessedblockJSONオブジェクトを返すようになりました。 新しい鍵をインポートすると無効になる可能性があるため、この結果はキャッシュすべきではありません。(#26094)

  • gettransactionRPCは、トランザクション情報生成時のウォレットの最後に処理されたブロックハッシュと高さを含む lastprocessedblockJSONオブジェクトを返すようになりました。(#26094)

  • getwalletinfoRPCは、ウォレット情報生成時のウォレットの最後に処理されたブロックハッシュと高さを含む lastprocessedblockJSONオブジェクトを返すようになりました。(#26094)

  • コイン選択とトランザクションの構築において、未承認の低手数料率の祖先トランザクションが考慮されるようになりました。 未承認のアウトプットを使用する必要がある場合、ウォレットはその祖先との新しいトランザクションが ユーザーが要求した手数料率と同じマイニングスコアを達成することを保証するために手数料を追加します。(#26152)

  • optionsパラメーター(importmultilistunspentfundrawtransactionbumpfeesendsendallwalletcreatefundedpsbtsimulaterawtransaction)を受け入れるRPCメソッドに対して、 ネストされたオブジェクトを必要とせずに、名前付きパラメーターとしてオプションを渡せるようになりました。(#26485)

これは、以下の代わりに

src/bitcoin-cli -named bumpfee txid options='{"fee_rate": 100}'

以下のような呼び出しが可能になることを意味します:

src/bitcoin-cli -named bumpfee txid fee_rate=100
  • deprecatedrpc=walletwarningfield設定オプションは削除されました。 createwalletloadwalletrestorewalletunloadwalletRPCは、 「warning」文字列フィールドを返さなくなりました。同じ情報は、v25.0で追加された 文字列のJSON配列を返す「warnings」で提供されます。 また、「warning」文字列フィールドはv25.0で非推奨になりました。(#27757)

  • signrawtransactionwithkeysignrawtransactionwithwalletwalletprocesspsbtdescriptorprocesspsbtの呼び出しは、 sighashtype引数が不正な場合、RPC_MISC_ERRORではなくRPC_INVALID_PARAMETERエラーを返すようになりました。(#28113)

  • walletprocesspsbtdescriptorprocesspsbtRPCが返すオブジェクトに、(トランザクションが完成している場合) sendrawtransaction RPC用にシリアライズされたトランザクションを含むhexが含まれるようになりました。

  • ディスクリプターウォレット用のTaprootリーフ内でMiniscriptが使用できるようになりました。(#27255)

GUIの変更

  • GUIのトランザクションリストでは、「payment to yourself」(自分への支払い)の特別なカテゴリが提供されなくなりました。 ウォレットに影響するインプットとアウトプットの両方を持つトランザクションが、送信と受信の別々の行に表示されるようになりました。(gui#119)

  • 新しいメニューオプションにより、BerkeleyDB(BDB)に保存されている鍵とアウトプットスクリプトタイプに基づくレガシーウォレットを、 SQLiteに保存されるディスクリプターを使用する最新のウォレットに移行できます。(gui#738)

  • PSBTの操作ダイアログでは、自身のウォレットに支払うアウトプットに「own address」というマークを付けます。(gui#740)

  • レガシーウォレットを作成する機能は削除されました。(gui#764)

低レベルの変更

テスト

  • testnetでのリレーとmempoolへの受け入れにおいて、非標準トランザクションはデフォルトで無効になりました。 これまでの動作は、-acceptnonstdtxn=1を設定することで再度有効にできます。(#28354)

クレジット

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

  • 0xb10c
  • Amiti Uttarwar
  • Andrew Chow
  • Andrew Toth
  • Anthony Towns
  • Antoine Poinsot
  • Antoine Riard
  • Ari
  • Aurèle Oulès
  • Ayush Singh
  • Ben Woosley
  • Brandon Odiwuor
  • Brotcrunsher
  • brunoerg
  • Bufo
  • Carl Dong
  • Casey Carter
  • Cory Fields
  • David Álvarez Rosa
  • dergoegge
  • dhruv
  • dimitaracev
  • Erik Arvstedt
  • Erik McKelvey
  • Fabian Jahr
  • furszy
  • glozow
  • Greg Sanders
  • Harris
  • Hennadii Stepanov
  • Hernan Marino
  • ishaanam
  • ismaelsadeeq
  • Jake Rawsthorne
  • James O’Beirne
  • John Moffett
  • Jon Atack
  • josibake
  • kevkevin
  • Kiminuo
  • Larry Ruane
  • Luke Dashjr
  • MarcoFalke
  • Marnix
  • Martin Leitner-Ankerl
  • Martin Zumsande
  • Matthew Zipkin
  • Michael Ford
  • Michael Tidwell
  • mruddy
  • Murch
  • ns-xvrn
  • pablomartin4btc
  • Pieter Wuille
  • Reese Russell
  • Rhythm Garg
  • Ryan Ofsky
  • Sebastian Falbesoner
  • Sjors Provoost
  • stickies-v
  • stratospher
  • Suhas Daftuar
  • TheCharlatan
  • Tim Neubauer
  • Tim Ruffing
  • Vasil Dimov
  • virtu
  • vuittont60
  • willcl-ark
  • Yusuf Sahin HAMZA

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