Network
最大的、實際的 P2P 消息有效負載大小是多少?
在 Bitcoin Core 中,
MAX_SIZE
將最大有效 P2P 消息有效負載大小定義為 32MB。對等點發送接近 32MB 的消息負載是否現實?最大但仍然現實的消息有效負載大小是多少?
由於 Bitcoin Core拉取請求 5843,大於 MAX_PROTOCOL_MESSAGE_LENGTH 的傳入消息被拒絕。該常數最初設置為 2 MiB,但後來(作為 segwit 更改的一部分)增加到 4 MB。
其目的是記憶體DoS保護。設法打開與受害者節點的許多連接的攻擊者可能會開始發送 32 MiB 的消息(所有序列化對象的 MAX_SIZE),但永遠不會發送最後一個字節。那些剛剛低於 32MiB 的消息需要在最後一個字節到達之前保存在記憶體中,然後再處理它們。限制最大有效消息大小可顯著降低此類攻擊的影響。