Protocol

devp2p 協議:支持數據壓縮?

  • April 8, 2018

我只是想知道用於節點到節點通信的devp2p協議是否支持數據壓縮?

我問這個,因為它可能對網路內更快的塊傳播有用。特別是當 tx 計數/塊在未來增加時。

到目前為止,我還沒有在以下位置找到提示:

是的 - 這是通過 EIP 706 ( https://github.com/ethereum/EIPs/pull/706 ) 進行的快速壓縮 - 通過https://github.com/ethereum/go-ethereum/pull/在 go-ethereum 中實現15106

我不得不四處尋找我很確定存在的暗示:-)

它在 Design Rationale 文件中,在Compression algorithm下。

有線協議和數據庫都使用自定義壓縮算法來儲存數據。該算法可以最好地描述為執行長度編碼零並保持其他值不變,除了一些特殊情況下的常見值,如 sha3(’’)。

相關程式碼go-ethereum/p2p在 GitHub 上的目錄中。

我無法立即看到 Wire Protocol 程式碼如何呼叫我假設實現自定義壓縮的位置(要麼是要麼common/bitutil/compress.gocompression/rle/read_write.go),實際上 RLP 程式碼中有一些對Snappy(Google 的壓縮庫)的呼叫。

也許需要進一步調查才能確定……

引用自:https://ethereum.stackexchange.com/questions/45105