Transactions
是否可以將比特幣守護程序配置為僅使用 ZeroMQ 廣播未經確認的交易?
目前,我正在執行一個完整的節點比特幣守護程序,配置為通過 ZeroMQ (ZMQ) 發布雜湊交易。我一直注意到,作為該
hashtx
主題的訂閱者,廣播了已確認和未確認的交易。我只真正關心未經證實的交易。有沒有辦法將比特幣守護程序(bitcoind)配置為只廣播未經確認的交易?當 ZMQ 廣播已確認的交易時,有很長的間歇時間,大約幾分鐘,這種行為會導致類似“凍結”的狀態,因為沒有新的未確認交易流過(被確認的交易通過)。
在我的應用程序層,我可以過濾掉已確認的交易,但如果可能的話,我還是想在源頭停止它。
另一方面,為什麼 ZMQ 會同時廣播已確認和未確認的交易?這是否與守護程序必須更新其區塊鏈的本地副本有關?
使用目前的比特幣核心版本(撰寫本文時為 0.14.2),這是不可能的。快速破解
CZMQNotificationInterface::SyncTransaction(const CTransaction& tx, const CBlockIndex* pindex, int posInBlock)
很簡單(只需添加一個if (!pindex)
)。如果您不想更改源,可以呼叫
gettransaction
RPC 並獲取確認計數。