Bitcoind

深入調試消息:“socket recv 洪水控制斷開連接(x 字節)”

  • January 6, 2013

我在執行時設置了以下內容bitcoind -debug -server -detachdb -printtodebugger -printtoconsole

調試日誌

socket recv flood control disconnect (5018020 bytes)
disconnecting node 82.41.255.68:8333

哪些客戶端操作會導致此條目出現?

可以使用哪些設置(客戶端或伺服器端)來調整它以獲得更高或更低的容量?

調整此容量有什麼副作用(信號量鎖定、數據庫爭用等)

比特幣協議中,每條消息都以消息頭為前綴,其中包含消息長度(更準確地說是有效負載長度)。長度欄位是長度為 4 字節(或 32 位)的無符號整數。因此,指定長度為 2^32 字節 = 4 GB 的有效負載是完全可以的。

由於您不想下載 4 GB 只是為了發現這是另一方實現中的錯誤,或者對等方試圖故意向您提供垃圾,因此主線客戶端對其接受的消息大小添加了任意限制。

根據net.h ,此限制為 5'000'000 字節或略小於 5 兆字節。導致錯誤和隨後斷開連接的消息只是稍微超出了該限制。也許您可以查找哪個對等方,甚至更好的是哪個客戶端版本導致了錯誤,以便我們可以通知開發人員。

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