今週のニュースレターでは、Bitcoin Coreの新しいテストツールの発表と、 DLCベースのローンコントラクトの簡単な説明を掲載しています。また、 Bitcoin Core PR Review Clubの概要や、新しいリリースとリリース候補の発表、 人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更など恒例のセクションも含まれています。

ニュース

  • Bitcoin Coreのミューテーションテスト: Bruno Garciaは、 PRやコミットで変更されたコードを自動的に変更(変異)し、 その変異によって既存のテストが失敗するかどうかを判定するツールの発表を Delving Bitcoinに投稿しました。 コードのランダムな変更によって失敗が発生しない場合、テストのカバレッジが不完全である可能性があります。 Garciaの自動ミューテーションツールは、コードのコメントや変更が生じないと思われるコード行を無視します。

  • DLCベースのローンコントラクトの実行: Shehzan Marediaは、 ビットコイン担保ローンの価格発見にDLCオラクルを使用するローンコントラクト Lava Loansの発表をDelving Bitcoinに投稿しました。 たとえば、アリスはボブに、ボブがデポジットアドレスに少なくとも$100,000の2倍相当のBTCを保持している場合に、 $100,000を提供します。アリスとボブの両者が信頼するオラクルは、現在のBTC/USD価格にコミットする署名を定期的に公開します。 ボブのBTC担保が合意価格を下回った場合、アリスはオラクルが署名した最高額の$100,000相当のBTCを差し押さえることができます。 または、ボブはローンを返済したという証拠を(アリスが公開したハッシュのプリイメージの形式で)オンチェーンで提供し、 担保を取り戻すことができます。両者が協力しない場合や、一方が応答しなくなった場合は、 コントラクトの別の解決方法を使用できます。他のDLCと同様に、 価格オラクルはコントラクトの詳細を知ることも、価格情報がコントラクトで使用されているこを知ることもできません。

Bitcoin Core PR Review Club

この毎月のセクションでは、最近のBitcoin Core PR Review Clubミーティングを要約し、 重要な質問と回答のいくつかに焦点を当てます。 以下の質問をクリックしてミーティングでの回答の要約を確認してください。

Testing Bitcoin Core 28.0 Release Candidatesは、特定のPRをレビューするのではなく、グループテスト作業を行うReview Clubのミーティングでした。

Bitcoin Coreの各メジャーリリースの前には、 コミュニティによる広範なテストが不可欠であると考えられています。このため、 ボランティアがリリース候補のテストガイドを作成し、 リリースで何が新しくなり何が変更されたかを個別に確認したり、 これらの機能や変更をテストするためにさまざまなセットアップ手順を再発明することなく、 できるだけ多くの人が生産的にテストできるようにします。

テストが難しいのは、予期しない動作に遭遇した際、それが実際のバグによるものなのか、 それともテスターのミスによるものなのか、はっきりしないことが多いためです。 実際にはバグではないものを開発者に報告するのは、開発者の時間を無駄にします。 このような問題を軽減し、テストへの取り組みを促進するために、 Review Clubのミーティングが特定のリリース候補(ここでは28.0rc1)について開催されます。

28.0リリース候補のテストガイドは、Review Clubミーティングの主催者でもあるrkruxによって書かれました。

参加者はまた、28.0のリリースノートを読むことで、 テストのアイディアを得ることが奨励されました。

このReview Clubでは、testnet4の導入(Bitcoin Core #29775)、 TRUC (v3) トランザクションBitcoin Core #28948)、 パッケージRBFBitcoin Core #28984)、 競合するmempoolトランザクション(Bitcoin Core #27307)が取り上げられました。 ガイドに記載されているもののミーティングでは取り上げられなかった他のトピックには、 mempoolfullrbfのデフォルト化(Bitcoin Core #30493)、 PayToAnchor支払い(Bitcoin Core #30352)、 新しいdumptxoutsetフォーマット(Bitcoin Core #29612)が含まれます。

リリースとリリース候補

人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。

  • LND v0.18.3-betaは、この人気のLNノード実装の軽微なバグ修正リリースです。

  • BDK 1.0.0-beta.2は、ウォレットやその他のBitcoin対応アプリケーションを構築するためのこのライブラリのリリース候補です。 元のbdk Rustクレートの名前がbdk_wallet変更され、 低レイヤーのモジュールは、 bdk_chainbdk_electrumbdk_esplorabdk_bitcoind_rpcなどの独自のクレートに抽出されました。 bdk_walletクレートは、「安定した 1.0.0 API を提供する最初のバージョンです」。

  • Bitcoin Core 28.0rc1は、主要なフルノード実装の次期メジャーバージョンのリリース候補です。 テストガイドが利用可能です。

注目すべきコードとドキュメントの変更

最近のBitcoin CoreCore LightningEclairLDKLNDlibsecp256k1Hardware Wallet Interface (HWI)Rust BitcoinBTCPay ServerBDKBitcoin Improvement Proposals(BIP)Lightning BOLTsBitcoin InquisitionおよびBINANAsの注目すべき変更点。

注: 以下に掲載するBitcoin Coreへのコミットは、master開発ブランチに適用されるため、 これらの変更がリリースされるのは、次期バージョン28のリリースから約6ヶ月後になると思われます。

  • Bitcoin Core #30509は、他のプロセスがUnixソケット経由でノードに接続し制御できるように、 bitcoin-node-ipcbindオプションを追加します。今後のPR Bitcoin Core #30510と組み合わせることで、 外部のStratum v2マイニングサービスが、 ブロックテンプレートを作成、管理、送信できるようになります。 これは、Bitcoin Coreのマルチプロセスプロジェクトの一部です。 ニュースレター#99#147をご覧ください。

  • Bitcoin Core #29605は、ピア検出を変更し、シードノードからのフェッチよりも ローカルアドレスマネージャーからのピアを優先し、前者がピア選択に与える影響を減らし、 不要な情報共有を減らします。デフォルトでは、 シードノードはすべてのDNSシードが到達不能な場合(mainnetでは非常に稀)のバックアップになりますが、 テストネットワークやカスタマイズされたノードのユーザーは、シードノードを手動で追加して、同じように構成されたノードを見つけることができます。 このPR以前は、シードノードを追加すると、ノードが起動するたびにほぼ毎回新しいアドレスが照会され、 ピアの選択に影響を与え、データを共有するピアだけを推奨する可能性がありました。 このPRにより、アドレスマネージャーが空の場合、または一定期間アドレスの試行に失敗した後にのみ、 シードノードがランダムな順序でアドレスのフェッチキューに追加されます。シードノードの詳細については、 ニュースレター#301をご覧ください。