Bitcoin Core 25.0

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

25.0 リリースノート

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

https://bitcoincore.org/bin/bitcoin-core-25.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 10.15以降、Windows 7以降を使用している オペレーティングシステムでサポートされ、広範囲にテストされています。 Bitcoin Coreは他のほとんどのUNIXライクなシステムでも動作するはずですが、 それらの環境では頻繁にテストされていません。

注目すべき変更

P2Pとネットワークの変更

  • witnessを除く65バイト以上のトランザクションが、mempoolおよびリレーポリシーで許可されるようになりました。 これは、CVE-2017-12842に対する実際の保護をよりよく反映し、 より小さなトランザクションサイズの追加のユースケースを開放します。 (#26265)

新しいRPC

  • scanblocks RPCは、与えられた範囲内のすべてのblockfilterをスキャンすることで、 ディスクリプターのセットから関連するブロックハッシュを返します。 これを getblockheader RPCと rescanblockchain RPCと組み合わせて使うことで、ウォレットの高速な再スキャンを実現できます。 この機能は、ノードによってコンパクトブロックフィルターのインデックスが構築されている場合(-blockfilterindex=1)のみ使用できることに注意してください。 (#23549)

更新されたRPC

  • すべてのJSON-RPCメソッドは、位置パラメーター値を含めることができる argsという新しい名前付きパラメーターを受け入れるようになりました。 これは、すべてのパラメーター値を名前付きで渡す必要はなく、一部のパラメーター値を名前付きで渡すことができるようにするための便利な機能です。 Pythonのテストフレームワークとbitcoin-cliツールは両方ともこれを利用しているので、たとえば:
bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1

というコマンドは、次のように書けます:

bitcoin-cli -named createwallet mywallet load_on_startup=1
  • verifychainRPCは、チェックは失敗しなかったものの、必要な深さとレベルで完了できなかった場合に、falseを返すようになりました。 これは、プルーニング中にデータが欠落したり、dbcacheが不十分であったり、 呼び出しが終了する前にノードがシャットダウンされたりすることが原因で起こる可能性があります。 (#25574)

  • sendrawtransactionは、新しいオプションの引数maxburnamountが追加され、デフォルト値は0です。 maxburnamountを超える値を持つ使用不可能なアウトプットを含むトランザクションは、送信されません。 現時点で、使用不可能とみなされるアウトプットは、(’datacarriers’として知られる)OP_RETURNコードで始まるスクリプト、 最大スクリプトサイズを超えるスクリプトおよび無効なopcodeがあるスクリプトを含むアウトプットです。

  • testmempoolacceptRPCは、「fees」の結果内に2つの追加の結果を返すようになりました: 「effective-feerate」は、パッケージ検証が使用された場合に、一緒に検証されたトランザクションの手数料とサイズを含む手数料率で、 prioritisetransactionから変更された手数料も含まれます。「effective-includes」は、 effective-feerateで使用された変更された手数料とサイズを持つトランザクションのwtxidのリストを示します。 (#26646)

  • decodescriptは、情報が不足していない場合、P2WSHコンテキストで、Miniscriptディスクリプターを推論することができるようになりました。(#27037)

  • finalizepsbtは、Miniscript互換のP2WSHスクリプトを使用するインプットでトランザクションをファイナライズできるようになりました。 (#24149)

ウォレット関連のRPCの変更は、以下のウォレットセクションに記載されています。

ビルドシステム

  • --enable-upnp-default--enable-natpmp-defaultオプションは削除されました。 ポートマッピングを使用したい場合は、.confファイルを使用して設定するか、 実行時に関連オプションを渡すことで設定できます。 (#26896)

設定の更新

  • -checkblocks-checklevelオプションが明示的にユーザーから提供されているにもかかわらず、 dbcacheが不十分であるために検証チェックを完了できない場合、Bitcoin Coreは起動時にエラーを返すようになりました。 (#25574)

  • -portおよび-rpcportオプションで指定されたポートは、起動時に検証されるようになりました。 以前は有効であった値であっても、エラーになることがあります。 (#22087)

  • -blocksonlyを設定すると、mempoolの最大メモリが5MBに削減されるようになりました(値は、 -maxmempoolを使用して上書きすることができます)。以前は、デフォルトの300MBが使用されていたため、 mempoolのメモリ使用量が削減されることを期待して-blocksonlyを実行していたユーザーにとって、 期待とは違うメモリ使用量になっていました。

    未使用のmempoolのメモリは、dbcacheと共有されるため、-blocksonlyで実行しているユーザーのdbcacheサイズも縮小され、 パフォーマンスに影響を与える可能性があります。

  • -maxconnections=0を設定すると、-dnsseed-listenが無効になります(ユーザーはこれらの上書き設定が可能です)。

GUIやウォレットに関連する設定の変更は、以下のGUIやウォレットのセクションに記載しています。

新しい設定

  • shutdownnotifyオプションは、Bitcoin Coreがシャットダウン処理を開始する前に、 同時に実行するコマンドを指定するために使用されます。 (#23395)

ウォレット

  • #25375で、以下のRPCに、使用されるUTXOの最小承認数を指定するminconfオプションと、 最大承認数を指定するmaxconfオプションが追加されました:
    • fundrawtransaction
    • send
    • walletcreatefundedpsbt
    • sendall
  • listdescriptorsのレスポンスに新しくnext_indexフィールドが追加され、 importdescriptorsと同じフォーマットになりました。 (#26194)

  • listunspentRPCに、新しい引数include_immature_coinbaseが追加され、 使用可能な最小深度要件を満たさないコインベースUTXOを含めるようになりました (これまでは無視されていました)。 (#25730)

  • コンパクトブロックフィルター(BIP158)が利用可能な場合、 ディスクリプターウォレットの再スキャンが大幅に高速化されました。 これらはデフォルトでは構築されないため、この最適化を利用するためには、 設定オプション「-blockfilterindex=1」を指定する必要があります。 これにより、rescanblockchainimportdescriptorsrestorewalletのRPC呼び出しのパフォーマンスが向上します。 (#25957)

  • unloadwalletRPC呼び出しは、再スキャンが進行中の場合、失敗するようになりました。(#26618)

  • ウォレットパスフレーズに、null文字を含めることができるようになりました。 この変更以前は、最初のnull文字までの文字しか認識されず、受け入れられませんでした。(#27068)

  • アドレスの目的文字列は、現在知られている「send」、「receive」、「refund」の値に制限されるようになりました。 認識できない目的文字列を持つウォレットは、ロード時に警告が表示され、 認識できない目的が要求された場合、listlabelsRPCはエラーを返します。 (#27217)

  • createwalletloadwalletunloadwalletrestorewalletRPCにおいて、 「warning」文字列フィールドは廃止され、複数の警告メッセージをより適切に扱うため、 また他のウォレットRPCとの一貫性のために、JSON文字列の配列を返す「warnings」フィールドが採用されました。 「warning」フィールドは、v26でこれらのRPCがから完全に削除されます。 廃止期間中は、設定オプションで-deprecatedrpc=walletwarningfieldを指定してbitcoindを起動することで、 一時的に最有効化することができます。 (#27279)

  • ディスクリプターウォレットが、P2WSH Miniscriptディスクリプターに送られたコインを使用できるようになりました。 (#27300)

GUIの変更

  • 「Mask values」が永続的なオプションになりました。(gui#701)
  • 「Mask values」オプションは、「Overview」画面に加えて「Transaction」画面にも影響するようになりました。(gui#708)

REST

  • コンセンサス変更のデプロイに関するさまざまな状態情報を取得するために、 新しい/rest/deploymentinfoエンドポイントが追加されました。(#25412)

バイナリの検証

  • バイナリの検証スクリプトが更新されました。これまでのリリースでは、 バイナリが1つの「リリース鍵」で署名されていることを検証していました。 このリリース以降では、バイナリが 信頼できる鍵の閾値 分の鍵で署名されていることを検証します。 詳細と例は、次のドキュメントを参照ください: https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md (#27358)

低レベルの変更

RPC

  • JSON-RPCサーバーは、パラメーターが同じ名前で複数指定された場合、 前のパラメーター値を後のパラメーター値で上書きするのではなく、 リクエストを拒否するようになりました。 (#26628)
  • listsinceblockRPCは、オプションでlabel引数を受け付けるようになり、 指定されたラベルを持つ受信トランザクションをフェッチするようになりました。(#25934)
  • これまでsetbanaddpeeraddresswalletcreatefundedpsbtメソッドは、 booleanパラメーターとして非booleanおよび非null値を渡すことができました。 渡された文字列、数値、配列またはオブジェクトの値は、すべてfalseとして扱われました。 この変更後は、truefalsenull以外の値を渡すと、 JSON値が期待される型ではないエラーが発生するようになります。 (#26213)

クレジット

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

  • 0xb10c
  • 721217.xyz
  • @RandyMcMillan
  • amadeuszpawlik
  • Amiti Uttarwar
  • Andrew Chow
  • Andrew Toth
  • Anthony Towns
  • Antoine Poinsot
  • Aurèle Oulès
  • Ben Woosley
  • Bitcoin Hodler
  • brunoerg
  • Bushstar
  • Carl Dong
  • Chris Geihsler
  • Cory Fields
  • David Gumberg
  • dergoegge
  • Dhruv Mehta
  • Dimitris Tsapakidis
  • dougEfish
  • Douglas Chimento
  • ekzyis
  • Elichai Turkel
  • Ethan Heilman
  • Fabian Jahr
  • FractalEncrypt
  • furszy
  • Gleb Naumenko
  • glozow
  • Greg Sanders
  • Hennadii Stepanov
  • hernanmarino
  • ishaanam
  • ismaelsadeeq
  • James O’Beirne
  • jdjkelly@gmail.com
  • Jeff Ruane
  • Jeffrey Czyz
  • Jeremy Rubin
  • Jesse Barton
  • João Barbosa
  • JoaoAJMatos
  • John Moffett
  • Jon Atack
  • Jonas Schnelli
  • jonatack
  • Joshua Kelly
  • josibake
  • Juan Pablo Civile
  • kdmukai
  • klementtan
  • Kolby ML
  • kouloumos
  • Kristaps Kaupe
  • laanwj
  • Larry Ruane
  • Leonardo Araujo
  • Leonardo Lazzaro
  • Luke Dashjr
  • MacroFake
  • MarcoFalke
  • Martin Leitner-Ankerl
  • Martin Zumsande
  • Matt Whitlock
  • Matthew Zipkin
  • Michael Ford
  • Miles Liu
  • mruddy
  • Murray Nesbitt
  • muxator
  • omahs
  • pablomartin4btc
  • Pasta
  • Pieter Wuille
  • Pttn
  • Randall Naar
  • Riahiamirreza
  • roconnor-blockstream
  • Russell O’Connor
  • Ryan Ofsky
  • S3RK
  • Sebastian Falbesoner
  • Seibart Nedor
  • sinetek
  • Sjors Provoost
  • Skuli Dulfari
  • SomberNight
  • Stacie Waleyko
  • stickies-v
  • stratospher
  • Suhas Daftuar
  • Suriyaa Sundararuban
  • TheCharlatan
  • Vasil Dimov
  • Vasil Stoyanov
  • virtu
  • w0xlt
  • willcl-ark
  • yancy
  • Yusuf Sahin HAMZA

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