未經確認的交易會受到關注嗎?
一筆交易發生了一些非常奇怪的事情,我想了解什麼網路條件可能是造成這種情況的原因。
我將大約 150mBTC 從我的 Android 錢包轉移到我的比特幣核心 HD 錢包(
v0.13.0
)我已經完成了很多這樣的轉移,通常最多在幾秒鐘內,交易被網路中繼並出現在我的比特幣核心記憶體池中。bitcoin-qt
在這種情況下,交易仍然有將近一個小時沒有被看到。這是一筆非常普通的交易,費用相當高,為 0.1 mBTC(僅 225 字節)。我最初認為我的 Android 未能廣播交易。然而,這個假設可以被駁回,因為 blockchain.info 已成功收到它,並為我提供了一個交易 ID。
然後我認為
bitcoin-qt
可能沒有認識到這筆交易與我的 HD 錢包有關。但是,似乎我的節點實際上從未收到過交易:$ cat ~/.bitcoin/debug.log | grep <transaction id> # nothing appears
所以我現在的印像是交易已成功廣播,但由於某種原因從未中繼到我的節點。事實上,自最初廣播以來,已經出現了大約 5 個新區塊,而交易仍未得到確認(考慮到費用水平和沒有明顯的網路瓶頸,這似乎很不尋常)。所以我現在的印像是一些礦工可能也沒有看到交易(畢竟如果這可能發生在我的節點上,為什麼其他人不會呢?)
順便說一句,我嘗試使用https://blockchain.info/pushtx和原始交易 ID重新廣播交易,但它告訴我交易已經存在。
是否有人對可能觸發這種罕見事件的原因有合理的解釋,其中交易似乎成功廣播,但似乎並非所有節點都聽說過它(假設這種解釋是有效的)?
編輯: 實際上看<https://blockchain.info/unconfirmed-transactions>,直到現在我一直在寫這個問題,這個數字一直在上升,現在顯示
18k
不匹配的交易似乎指向異常的網路條件(通常2k-4k
)編輯: 交易最終在大約 10 個區塊後得到確認。事實仍然是,它似乎從未中繼到我的節點,直到它包含在一個新塊中。
這不是一個罕見的事件。並非所有交易都會到達所有節點,這是網路的本質。也有可能一些節點已經聽說過該交易,但是當他們遇到更高費用的交易時將其從他們的記憶體池中刪除。他們這樣做是為了防止 DDoS 攻擊,因為記憶體是一種稀缺資源,而且他們的記憶體池中只能保存這麼多未確認的交易。
一旦交易確認,每個人都會聽到它,因為它會被合併到一個區塊中。所以我不會擔心。