今週のニュースレターでは、Bitcoin-Devメーリングリストの今後の変更のお知らせと、 複数のHTLCを一緒に集約できるようにする提案の簡単な要約を掲載しています。 また、Bitcoin Core PR Review Clubの概要や、新しいリリースとリリース候補の発表、 人気のあるBitcoinインフラストラクチャソフトウェアの注目すべき変更など、 恒例のセクションも含まれています。

ニュース

  • メーリングリストのホスティング: Bitcoin-Devメーリングリストの管理者は、メーリングリストをホスティングしている組織が、 年内をもってメーリングリストのホスティングを終了する予定であることを発表しました。 過去のメールのアーカイブは、当面の間は現在のURLでホストされると予想されます。 メールのリレーの終了は、同じ組織がホストしているLightning-Devメーリングリストにも影響すると考えられます。

    管理者は、メーリングリストをGoogleグループに移行するなどの選択肢について、 コミュニティにフィードバックを求めました。そのような移行が行われた場合、 Optechはそれをニュースソースの1つとして使用し始めるでしょう。

    また、この発表の数ヶ月前に、一部の著名な開発者がDelvingBitcoin Webフォーラムで議論の実験を始めていたことも承知しています。 Optechは、そのフォーラムで興味深い議論や重要な議論がないか、モニタリングを始めます。

  • コベナンツを使用したHTLCの集約: Johan Torås Halsethは、 コベナンツを使用して複数のHTLCを1つのアウトプットに集約し、 当事者がすべてのプリイメージを知っている場合に一度に使用できるようにする提案を Lightning-Devメーリングリストに投稿しました。 当事者がプリイメージの一部しか知らない場合は、それらだけを請求し、残りの残高は相手方に返金することができます。 Halsethは、これによりオンチェーンの効率が向上し、 ある種のチャネルジャミング攻撃がより困難になると指摘しています。

Bitcoin Core PR Review Club

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

Fee Estimator updates from Validation Interface/CScheduler threadは、 Abubakar Sadiq Ismail (ismaelsadeeq)によるPRで、 トランザクションの手数料推定データの更新方法を変更します。 (手数料の推定は、ノードの所有者がトランザクションを作成する際に使用されます。) 手数料推定の更新が、mempoolの更新(トランザクションの追加または削除)中に同期的に発生するのではなく、 非同期で行われるようになります。これにより、全体的な処理の複雑さは増加しますが、 クリティカル・パスのパフォーマンス(これについては以下の議論で明らかになります)が向上します。

新しいブロックが見つかると、mempool内にあるそのブロックのトランザクションは、 そのトランザクションと競合するトランザクションと一緒に削除されます。 ブロックの処理とリレーは、パフォーマンスが重要であるため、手数料推定の更新など、 新しいブロックの処理中に必要な作業量を削減するのは有益です。

  • CTxMempoolCBlockPolicyEstimatorへの依存関係を削除するのがなぜ有益なのですか?

    現在、新しいブロックを受信すると、手数料の推定が更新される間、その処理はブロックされます。 これにより、新しいブロックの処理の完了が遅れ、ピアへのブロックのリレーも遅れます。 CTxMempoolCBlockPolicyEstimatorへの依存関係を削除すると、 手数料の推定を非同期(別のスレッド)で更新できるようになり、検証とリレーをより迅速に完了できます。 また、CTxMempoolのテストも容易になる可能性があります。 最後に、ブロックの検証やリレーのパフォーマンスに影響を与えることなく、 より複雑な手数料推定アルゴリズムを将来的に使用できるようになります。 

  • 現在、手数料の推定は、新しいブロックが到着しなくても、トランザクションがmempoolに追加されたり削除されると 同期的に更新されませんか?

    はい。ただし、その場合はブロックの検証やリレーほどパフォーマンスは重要ではありません。 

  • CBlockPolicyEstimatorCTxMempoolのメンバーで、それを同期的に更新すること(現在の更新)にメリットはありますか? それを削除することによるデメリットはありますか?

    同期コードはよりシンプルで、推論しやすくなります。また、手数料推定では、mempool全体をより見やすくなります。 デメリットは、手数料の推定に必要なすべての情報を新しいNewMempoolTransactionInfo構造体にカプセル化する必要があることです。 ただし、手数料の推定に必要な情報はそれほど多くありません。 

  • CValidationInterfaceを分割するPR 11775で採用されたアプローチと比較して、 このPRで採用されたアプローチの長所と短所は何だと思いますか?

    分割するのは良いことだと思いますが、(イベントの順序を適切に保つために)バックエンドを共有しているので、 実際には相互にあまり独立していませんでした。分割することには実際的なメリットはあまりないように思えます。 現在のPRは、より限定的で、手数料の推定を非同期で更新するという最小限の範囲にとどまっています。 

  • サブクラスにおいて、なぜCValidationInterfaceメソッドを実行することがイベントを購読することと等価なのですか?

    CValidationInterfaceのサブクラスはすべてクライアントです。サブクラスは、 CValidationInterfaceのメソッド(コールバック)の一部またはすべてを実装することができます。 たとえば、ブロックの接続や切断、トランザクションのmempoolへの追加削除などです。 (RegisterSharedValidationInterface()を呼び出すことで)登録された後、 実装されたCValidationInterfaceメソッドは、CMainSignalsを使用してメソッドコールバックが発生する度に実行されます。 コールバックは、対応するイベントが発生する度に起動されます。 

  • BlockConnectedNewPoWValidBlockは異なるコールバックです。 どちらが非同期でどちらが同期なのでしょうか?またどうやって見分けるのですか?

    BlockConnectedは非同期で、NewPoWValidBlockは同期です。 非同期のコールバックは、CSchedulerスレッド内で後で実行される「イベント」をキューに入れます。 

  • コミット4986edbで、なぜBlockConnected(これはトランザクションがmempoolから削除されたことも示す)を使用するのではなく、 新しいコールバックMempoolTransactionsRemovedForConnectedBlockを追加しているのですか?

    手数料の推定は、ブロックが接続された時だけでなく、何らかの理由でトランザクションがmempoolから削除された時も知る必要があります。 また手数料の推定には、トランザクションの基本手数料が必要ですが、 これは(CBlockを提供する)BlockConnected経由では提供されません。 block.vtx(トランザクションリスト)のエントリーに基本手数料を追加することもできますが、 手数料の推定をサポートするためだけに、このような重要で偏在するデータ構造を変更するのは望ましくありません。 

  • MempoolTransactionsRemovedForBlockコールバックのパラメーターとして std::vector<CTxMempoolEntry>を使用しないのはなぜですか? これを使用すれば、手数料の推定に必要なトランザクションごとの情報を保持するための新しい構造体型は不要です。

    手数料の推定には、CTxMempoolEntryのすべてのフィールドが必要なわけではありません。 

  • CTransactionRefの基本手数料はどのように計算されるのですか?

    これはインプットの値の合計からアウトプットの値の合計を引いたものです。 ただし、インプットの値は(コールバックはアクセスできない)前のトランザクションアウトプットに保存されているため、 コールバックはインプットの値にアクセスできません。これが基本手数料がTransactionInfo構造体に含まれている理由です。 

リリースとリリース候補

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

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

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