Unconfirmed-Transactions

可以連結多個未確認的交易嗎?

  • April 19, 2021

可以連結和廣播多個未確認的交易嗎?

例如:我有兩個已確認的 UTXOUC1UC2. 使用兩者作為輸入,然後我創建和廣播交易T1,輸出UT1。然後,使用UT1另一個確認的 UTXO,UC3創建並廣播T2,輸出UT2. 我從我建構的交易中跟踪最後一個未確認的 UTXO,並繼續建構和廣播新的 UTXO。

其次,鏈上交易是否會在同一個區塊被探勘?

原則上這是可行的,但預設情況下,Bitcoin Core 會限制此類鏈:如果交易有超過 25 個祖先或超過 25 個後代,則交易不會進入比特幣核心節點的記憶體池。

面對波動的費率,長交易鏈也有不利之處。首先,如果費率上升,你不能簡單地撞到一個更緊急的交易——你必須撞它和它的所有祖先。其次,交易鏈與 RBF 有點不兼容- 碰撞任何先前的交易會破壞所有後來的交易,因為它們的輸入不再存在,並且你必須支付足夠的費用來替換所有後代交易的費用才能進入記憶體池。第三,如果節點的記憶體池空間不足,它將首先丟棄低費率交易。如果您之前的交易之一被丟棄,那麼(預設)記憶體池將不允許您之前的整個交易鏈進入(預設)記憶體池,直到我們得到類似包中繼的東西,或者記憶體池放鬆到可以重新廣播交易的水平。

解決此問題的方法是始終將父交易提高到後續交易的目標費率(這計算起來並不簡單,並且在兩個孩子向同一個祖先的情況下可能導致多付),或者始終準確您連結的一個輸出。

如果您有足夠的交易量來保證交易鏈,我建議您寧願使用支付批處理:將提款(或其他付款)延遲幾分鐘,然後在一次交易中進行多次。付款批處理的每次付款的塊重量足跡要小得多(因此每次付款的費用更低),使 UTXO 管理更容易,因為您每次付款需要的輸入更少,流動資金更少,因為您每批次只創建一個更改輸出而不是每次付款,並且可能完全放棄使用未經確認的輸入,這允許您在交易延遲時使用 RBF 和 CPFP 來阻止交易,即使您以低得多的費率開始交易。此外,雖然由於祖先規模的限制,交易鏈將開始崩潰,但隨著交易量的增加,支付批處理會變得更加高效。

其次,鏈上交易是否會在同一個區塊被探勘?

是的,如果子交易支付的費用高於其祖先,它們可能會根據後代費用被選為一個包。如果以後的交易支付相同或更低的費用,則可能包括沒有孩子的父母。

引用自:https://bitcoin.stackexchange.com/questions/105033