Bitcoin Core 24.0.1
Bitcoin Core installation binaries can be downloaded from bitcoincore.org and the source-code is available from the Bitcoin Core source repository.
24.0.1 リリースノート
直前に発見された問題(#26616)により、24.0はタグ付けされていましたが、 完全な発表やリリースはまだされていませんでした。
Bitcoin Core バージョン 24.0.1 は以下から入手可能です:
https://bitcoincore.org/bin/bitcoin-core-24.0.1/
このリリースには、新しい機能や、さまざまなバグ修正およびパフォーマンス改善、更新された翻訳が含まれています。
バグの報告にはGitHubのIssue Trackerを使用してください:
https://github.com/bitcoin/bitcoin/issues
セキュリティやアップデートの通知を受け取りたい場合は、以下に登録してください:
https://bitcoincore.org/ja/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ライクなシステムでも動作するはずですが、 それらの環境では頻繁にテストされていません。 サポートされていないシステムでBitcoin Coreを使用するのはお勧めできません。
トランザクション置換ポリシーの新しいオプションのお知らせ
Bitcoin Coreのこのバージョンでは、新しいmempoolfullrbf
設定オプションを追加し、
個々のノードが未承認トランザクションのリレーやマイニングに使用するポリシーをユーザーが変更できるようになりました。
このオプションのデフォルトは、これまでのリリースで使用されていたものと同じポリシーで、
全員がデフォルトを使用する場合、ノードのポリシーに変更は発生しません。
現在、いくつかのBitcoinサービスでは、”first-seen”と呼ばれるトランザクションの受け入れポリシーである、 最初に受け取った未承認トランザクションが最終的に承認されるトランザクションとなることを期待しています。
Bitcoinプロトコルは、特定のノードが最初に確認した未承認トランザクションが、 そのまま承認されるトランザクションであるという保証を提供することはなく、また提供できません。 同じ未承認トランザクションの複数のバージョンが存在する場合、 どのバージョンのトランザクションが承認されるかは、 それらの内1つをブロックに含めるマイナーだけが決定できます。
このような保証がないにも関わらず、現在でも複数のマーチャントやサービスがこの仮定を採用しています。
このfirst-seenの簡略化を取り除くことで、ユーザーにはいくつかの利点があります。 重要な利点の1つである、トランザクションの送信者がより高い手数料を支払う代替バージョンと置き換える機能は、 BIP125のオプトインRBF(Replace By Fee)の導入によりBitcoin Core 0.12.0 (2016年2月)で実現されました。
それ以来、first-seenの簡略化を完全に取り除き、ユーザーが古い未承認トランザクションのいずれかを
新しいトランザクションに置き換えることを可能にするフルRBFと呼ばれる機能が議論されてきました。
このリリースには、mempoolfullrbf
設定オプションが含まれており、フルRBFを有効にすることができますが、
デフォルトはオフ(オプトインRBFのみ可能)です。
いくつかの代替ノード実装は、既に何年も前からデフォルトでフルRBFを有効にしており、 Bitcoin Coreの複数のコントリビューターは、Bitcoin Coreの将来のバージョンで デフォルトでフルRBFを有効にすることを提唱しています。
リレーやマイニングに参加する多くのノードがフルRBFを有効にすると、 より高い手数料を提供する未承認トランザクションへの置換が急速に信頼できるものになる可能性があります。
このプロジェクトのコントリビューターは、マーチャントやサービスが未承認トランザクションを最終的なものとして受け入れないこと、 もしそれにこだわるのであれば、その前提が成り立たないときのために何らかの手段や計画を確保するよう強く推奨しています。
注目すべき変更
P2Pとネットワークの変更
-
潜在的なサービス拒否攻撃に対処するため、ピアからヘッダーをダウンロードするロジックが作り直されました。 これは、特に初めて起動するノード(もしくは、長い間オフラインだったノードが起動する場合)に関係があります。
ノードの
-minimumchainwork
の値よりも小さい、またはノードの先端の作業量よりも十分に低い chainworkの合計を持つピアからヘッダーを受信すると、「presync」フェーズが始まります。 ノードはそのヘッダーをダウンロードして、ヘッダーを永久に保存する前に、ピアのチェーン上の累積作業を検証します。 その累積作業が十分に高いことが確認されると、ヘッダーがそのピアから再ダウンロードされ、完全に検証されて保存されます。これは、ヘッダーが2回ダウンロードされることと、 presyncフェーズ中(またはノードのベストヘッダーチェーンが
-minimumchainwork
より小さい間)にピアが切断された場合の影響( ノードは次のピアとまた同じようにpresyncの仕組みを使用する必要があります)から、 新しいノードの初回起動時に初期のヘッダーの同期により時間がかかる場合があります。(#25717) -
I2P接続で、
-i2pacceptincoming=0
の場合、アウトバウンド接続毎に新しい一時的なアドレスが使用されます。(#25355)
更新されたRPC
-
-deprecatedrpc=softforks
設定オプションが削除されました。getblockchaininfo
RPCは、23.0で非推奨になったsoftforks
フィールドを返さなくなりました。(#23508) ソフトフォークの状態に関する情報は、getdeploymentinfo
RPCを介してのみ利用可能です。 -
deprecatedrpc=exclude_coinbase
設定オプションが削除されました。receivedby
系のPRC(listreceivedbyaddress
、listreceivedbylabel
、getreceivedbyaddress
、getreceivedbylabel
)は、動作変更のオプションなしで、 コインベースアウトプットから受け取ったコインを考慮した結果を常に返すようになりました。 コインベースの除外は、23.0で非推奨になりました。(#25171) -
deprecatedrpc=fees
設定オプションが削除されました。 トップレベルの手数料フィールドfee
とmodifiedfee
、ancestorfees
、descendantfees
は、getmempoolentry
RPC、getrawmempool(verbose=true)
RPC、getmempoolancestors(verbose=true)
RPC,getmempooldescendants(verbose=true)
RPCでは返されなくなりました。 結果のfees
オブジェクトを介して、同じ手数料フィールドにアクセスすることができます。 トップレベルのfeeフィールドは23.0で非推奨となりました。(#25204) -
getpeerinfo
RPCが更新され、「P2Pとネットワークの変更」セクションで言及した presyncフェーズの進行状況を示すpresynced_headers
が追加されました。
ウォレット関連のRPCは、以下の「ウォレット」セクションに掲載しています。
新しいRPC
-
sendall
RPCは、特定のUTXOを1人または複数の受取人にお釣りを作成することなく送信します。 デフォルトでは、sendall
RPCは、ウォレット内のすべてのUTXOを使用します。sendall
は、ウォレットを空にしたり、選択したUTXOからお釣りのない支払いを作成するのに便利です。 受取人がトランザクション手数料を負担する特定の金額からの支払いを作成する場合、 引き続きsend
RPC、sendtoaddress
RPC、sendmany
RPCでsubtractfeefromamount
オプションを使用してください。(#24118) -
新しい
gettxspendingprevout
RPCが追加されました。このRPCは、 mempoolから指定されたOutPointを使用するトランザクションを探します。(#24408) -
simulaterawtransaction
RPCは、指定されたトランザクションのインプットとアウトプットを繰り返し処理し、 指定されたウォレットの残高の変化を集計します。これは例えば、 CoinJoinのようなトランザクションに、ウォレットが意図せずに署名してしまうような予期しないインプットが含まれていないことを確認するのに便利です。 (#22751)
更新されたREST API
-
/headers/
エンドポイントと/blockfilterheaders/
エンドポイントは、 結果のカウントの指定にパスパラメーターの代わりにクエリパラメーターを使用するよう更新されました。 カウントパラメーターはオプションになり、両エンドポイントともデフォルトは5になっています。 古いエンドポイントもまだ機能しており、ドキュメントに記載されている動作の変更はありません。/headers
については、GET /rest/headers/<COUNT>/<BLOCK-HASH>.<bin|hex|json>
(非推奨) の代わりにGET /rest/headers/<BLOCK-HASH>.<bin|hex|json>?count=<COUNT=5>
を使用してください。/blockfilterheaders/
については、GET /rest/blockfilterheaders/<FILTERTYPE>/<COUNT>/<BLOCK-HASH>.<bin|hex|json>
(非推奨) の代わりにGET /rest/blockfilterheaders/<FILTERTYPE>/<BLOCK-HASH>.<bin|hex|json>?count=<COUNT=5>
を使用してください。(#24098)
ビルドシステム
- Guixビルドがアーキテクチャ間(x86_64とaarch64)で再現可能になりました。(#21194)
新しい設定
- 新しい
mempoolfullrbf
オプションが追加され、 BIP125の置換シグナルを強制することなく、mempoolがトランザクションの置換を受け入れることができるようになりました。(#25353)
ウォレット
-
-walletrbf
起動オプションがデフォルトでtrue
になりました。 ウォレットが作成するトランザクションについて、オプトインRBFがデフォルトになります。(#25610) -
createrawtransaction
RPCおよびcreatepsbt
RPCのreplaceable
オプションが、 デフォルトでtrue
になりました。これらのRPCで作成されたトランザクションは、 デフォルトでオプトインRBFが有効になります。(#25610) -
wsh()
アウトプット・ディスクリプターがMiniscriptのサポートで拡張されました。 コインを追跡するために監視専用のウォレットでP2WSH用のMiniscriptディスクリプターをインポートすることができます。 ただし、Bitcoin Coreのウォレットを使ってそれらを送信することはまだできません。 Miniscriptについては、参照サイトで詳しく紹介されています。(#24148) -
tr()
アウトプット・ディスクプターは、multi_a()
関数とsortedmulti_a()
関数を介して、 マルチシグスクリプトをサポートするようになりました。(#24043) -
Bitcoin Coreのウォレットで作成されたトランザクションのフィンガープリントを防止するため、 お釣り用のアウトプットの量がランダム化されるようになりました。(#24494)
-
listtransactions
RPCとgettransaction
RPC、listsinceblock
RPCは、 各トランザクションのwtxidフィールド(witnessデータを含めてシリアライズしたトランザクションのハッシュ)を含めるようになりました。(#24198) -
listsinceblock
とlisttransactions
、gettransaction
の出力で、 すべての”receive”エントリーに対して新しいparent_descs
フィールドが含まれるようになりました。(#25504) -
新しいオプションの
include_change
パラメーターがlistsinceblock
コマンドに追加されました。 -
getreceivedbylabel
RPCは、ラベルがアドレス帳にない場合、 “Label not found in wallet” (-4)エラーを返すようになりました。(#25122)
レガシーウォレットからディスクプターウォレットへの移行
レガシー(非ディスクプター)ウォレットからディスクプターウォレットに移行するために、
実験的なmigratewallet
RPCが追加されました。
移行プロセスに関する詳細は
ドキュメントを参照ください。
GUIの変更
-
バックアップファイルからウォレットを復元するための新しいメニュー項目が追加されました。(gui#471).
-
bitcoin GUIで行われた設定変更(プルーニングの設定や、プロキシーの設定、UPNPの設定など)は、 Qtの設定バックエンド(windowsのレジストリーやunixのデスクトップ設定ファイル)ではなく、
<datadir>/settings.json
ファイルに保存されるようになりました。 これらの設定は、これまでは無視されていましたが、今後はbitcoindに適用されます。(#15936, gui#602) -
GUIの設定と
bitcoin.conf
の設定の間の相互作用がシンプルになりました。bitcoin.conf
の設定は、別の警告メッセージ(「Options set in this dialog are overridden by the configuration file: -setting=value」)ではなく、 GUIの設定ダイアログで通常通り表示されるようになりました。また、settings.json
の値がbitcoin.conf
の値よりも優先されるため、 これらの設定を編集することができるようになりました。
低レベルの変更
RPC
-
deriveaddresses
、getdescriptorinfo
、importdescriptors
、scantxoutset
コマンドは、wsh()
ディスクリプター内のMiniscriptの式を受け入れるようになりました。(#24148) -
getaddressinfo
、decodescript
、listdescriptors
、listunspent
コマンドは、 以前はwsh(raw())
ディスクリプターが返されていたwsh()
内にMiniscriptディスクリプターを出力できるようになりました。(#24148)
クレジット
このリリースに直接貢献されたみなさん、ありがとうございます:
- /dev/fd0
- 0xb10c
- Adam Jonas
- akankshakashyap
- Ali Sherief
- amadeuszpawlik
- Andreas Kouloumos
- Andrew Chow
- Anthony Towns
- Antoine Poinsot
- Antoine Riard
- Aurèle Oulès
- avirgovi
- Ayush Sharma
- Baas
- Ben Woosley
- BrokenProgrammer
- brunoerg
- brydinh
- Bushstar
- Calvin Kim
- CAnon
- Carl Dong
- chinggg
- Cory Fields
- Daniel Kraft
- Daniela Brozzoni
- darosior
- Dave Scotese
- David Bakin
- dergoegge
- dhruv
- Dimitri
- dontbyte
- Duncan Dean
- eugene
- Eunoia
- Fabian Jahr
- furszy
- Gleb Naumenko
- glozow
- Greg Weber
- Gregory Sanders
- gruve-p
- Hennadii Stepanov
- hiago
- Igor Bubelov
- ishaanam
- Jacob P.
- Jadi
- James O’Beirne
- Janna
- Jarol Rodriguez
- Jeremy Rand
- Jeremy Rubin
- jessebarton
- João Barbosa
- John Newbery
- Jon Atack
- Josiah Baker
- Karl-Johan Alm
- KevinMusgrave
- Kiminuo
- klementtan
- Kolby Moroz
- kouloumos
- Kristaps Kaupe
- Larry Ruane
- Luke Dashjr
- MarcoFalke
- Marnix
- Martin Leitner-Ankerl
- Martin Zumsande
- Michael Dietz
- Michael Folkson
- Michael Ford
- Murch
- mutatrum
- muxator
- Oskar Mendel
- Pablo Greco
- pasta
- Patrick Strateman
- Pavol Rusnak
- Peter Bushnell
- phyBrackets
- Pieter Wuille
- practicalswift
- randymcmillan
- Robert Spigler
- Russell Yanofsky
- S3RK
- Samer Afach
- Sebastian Falbesoner
- Seibart Nedor
- Shashwat
- Sjors Provoost
- Smlep
- sogoagain
- Stacie
- Stéphan Vuylsteke
- Suhail Saqan
- Suhas Daftuar
- t-bast
- TakeshiMusgrave
- Vasil Dimov
- W. J. van der Laan
- w0xlt
- whiteh0rse
- willcl-ark
- William Casarin
- Yancy Ribbens
Transifexでの翻訳を手伝ってくださったみなさんもありがとうございます。