/ home / newsletters /
Bitcoin Optech Newsletter #276
今週のニュースレターでは、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内にあるそのブロックのトランザクションは、 そのトランザクションと競合するトランザクションと一緒に削除されます。 ブロックの処理とリレーは、パフォーマンスが重要であるため、手数料推定の更新など、 新しいブロックの処理中に必要な作業量を削減するのは有益です。
-
CTxMempool
のCBlockPolicyEstimator
への依存関係を削除するのがなぜ有益なのですか?現在、新しいブロックを受信すると、手数料の推定が更新される間、その処理はブロックされます。 これにより、新しいブロックの処理の完了が遅れ、ピアへのブロックのリレーも遅れます。
CTxMempool
のCBlockPolicyEstimator
への依存関係を削除すると、 手数料の推定を非同期(別のスレッド)で更新できるようになり、検証とリレーをより迅速に完了できます。 また、CTxMempool
のテストも容易になる可能性があります。 最後に、ブロックの検証やリレーのパフォーマンスに影響を与えることなく、 より複雑な手数料推定アルゴリズムを将来的に使用できるようになります。 ➚ -
現在、手数料の推定は、新しいブロックが到着しなくても、トランザクションがmempoolに追加されたり削除されると 同期的に更新されませんか?
はい。ただし、その場合はブロックの検証やリレーほどパフォーマンスは重要ではありません。 ➚
-
CBlockPolicyEstimator
がCTxMempool
のメンバーで、それを同期的に更新すること(現在の更新)にメリットはありますか? それを削除することによるデメリットはありますか?同期コードはよりシンプルで、推論しやすくなります。また、手数料推定では、mempool全体をより見やすくなります。 デメリットは、手数料の推定に必要なすべての情報を新しい
NewMempoolTransactionInfo
構造体にカプセル化する必要があることです。 ただし、手数料の推定に必要な情報はそれほど多くありません。 ➚ -
サブクラスにおいて、なぜ
CValidationInterface
メソッドを実行することがイベントを購読することと等価なのですか?CValidationInterface
のサブクラスはすべてクライアントです。サブクラスは、CValidationInterface
のメソッド(コールバック)の一部またはすべてを実装することができます。 たとえば、ブロックの接続や切断、トランザクションのmempoolへの追加や削除などです。 (RegisterSharedValidationInterface()
を呼び出すことで)登録された後、 実装されたCValidationInterface
メソッドは、CMainSignals
を使用してメソッドコールバックが発生する度に実行されます。 コールバックは、対応するイベントが発生する度に起動されます。 ➚ -
BlockConnected
とNewPoWValidBlock
は異なるコールバックです。 どちらが非同期でどちらが同期なのでしょうか?またどうやって見分けるのですか?BlockConnected
は非同期で、NewPoWValidBlock
は同期です。 非同期のコールバックは、CScheduler
スレッド内で後で実行される「イベント」をキューに入れます。 ➚ -
コミット4986edbで、なぜ
BlockConnected
(これはトランザクションがmempoolから削除されたことも示す)を使用するのではなく、 新しいコールバックMempoolTransactionsRemovedForConnectedBlock
を追加しているのですか?手数料の推定は、ブロックが接続された時だけでなく、何らかの理由でトランザクションがmempoolから削除された時も知る必要があります。 また手数料の推定には、トランザクションの基本手数料が必要ですが、 これは(
CBlock
を提供する)BlockConnected
経由では提供されません。block.vtx
(トランザクションリスト)のエントリーに基本手数料を追加することもできますが、 手数料の推定をサポートするためだけに、このような重要で偏在するデータ構造を変更するのは望ましくありません。 ➚ -
MempoolTransactionsRemovedForBlock
コールバックのパラメーターとしてstd::vector<CTxMempoolEntry>
を使用しないのはなぜですか? これを使用すれば、手数料の推定に必要なトランザクションごとの情報を保持するための新しい構造体型は不要です。手数料の推定には、
CTxMempoolEntry
のすべてのフィールドが必要なわけではありません。 ➚ -
CTransactionRef
の基本手数料はどのように計算されるのですか?これはインプットの値の合計からアウトプットの値の合計を引いたものです。 ただし、インプットの値は(コールバックはアクセスできない)前のトランザクションアウトプットに保存されているため、 コールバックはインプットの値にアクセスできません。これが基本手数料が
TransactionInfo
構造体に含まれている理由です。 ➚
リリースとリリース候補
人気のBitcoinインフラストラクチャプロジェクトの新しいリリースとリリース候補。 新しいリリースにアップグレードしたり、リリース候補のテストを支援することを検討してください。
-
● Bitcoin Core 26.0rc2は、主流のフルノード実装の次期メジャーバージョンのリリース候補です。 推奨されるテストトピックの簡単な概要があり、 テスト専用のBitcoin Core PR Review Clubミーティングが2023年11月15日に予定されています。
-
● Core Lightning 23.11rc1は、このLNノード実装の次期メジャーバージョンのリリース候補です。
-
● LND 0.17.1-beta.rc1は、このLNノード実装のメンテナンスリリースのリリース候補です。
注目すべきコードとドキュメントの変更
今週のBitcoin Core、Core Lightning、Eclair、LDK、 LND、libsecp256k1、Hardware Wallet Interface (HWI)、Rust Bitcoin、BTCPay Server、BDK、Bitcoin Improvement Proposals(BIP)、Lightning BOLTsおよび Bitcoin Inquisitionの注目すべき変更点。
-
● Core Lightning #6824は、対話型のファンディングプロトコルの実装を更新し、 「
commitment_signed
を送信するときにステートを保存し、next_funding_txid
フィールドをchannel_reestablish
に追加して、 受信していない署名を再送信するようピアに要求します。」 これは、提案中のデュアル・ファンディングのPRの更新に基づいたものです。 -
● Core Lightning #6783では、
large-channels
設定オプションが廃止され、 ラージ・チャネルと高額な支払いが常に有効になります。 -
● Core Lightning #6780は、アンカー・アウトプットに関連する オンチェーントランザクションの手数料の引き上げのサポートを改善しました。
-
● Core Lightning #6773により、
decode
RPCは、バックアップファイルの内容が有効であり、 完全なリカバリーの実行に必要な最新情報が含まれていることを検証できるようになりました。 -
● Core Lightning #6734は、
listfunds
RPCを更新し、 ユーザーがチャネルの協調クローズトランザクションについてCPFPで手数料の引き上げを行いたい場合に必要な情報を提供します。 -
● Eclair #2761は、チャネルリザーブの要件を下回っている場合でも、 限られた数のHTLCを転送できるようにしました。 これは、スプライシングやデュアル・ファンディング後に発生する可能性のある 資金のスタック問題 を解決するのに役立ちます。資金のスタック問題に対するEclairの別の緩和策については、 ニュースレター #253をご覧ください。