Go-Ethereum

儘管沒有網路活動,但仍將 GBytes 的數據寫入磁碟 - 確切地說,geth 在做什麼?

  • February 12, 2022

我正在 Activity Monitor 上觀看 geth 1.4.17。

從網路頁面來看,它什麼也沒做。Rcvd Bytes 是 5.9MBytes,Sent Bytes 是 2.6MBytes,這種情況已經有一段時間了。

但是在 Disk 頁面上,Bytes Written 為 4.66GBytes,Bytes Read 為 5.17GBytes,兩者都以大約 4-6MBytes/sec 的速度增長。

確切地說,geth 在這裡做什麼?

我的猜測是geth讀取區塊鏈狀態並重組鏈的位。IIRC,在編譯時geth,我在幾個地方遇到了布隆過濾器的使用,這表明在發生新事務時需要更新大量數據。乙太坊還包括至少三個樹資料結構,我猜其中一個或多個需要重新平衡。這些可能會被批處理或在 RAM 中完成以減少磁碟活動,雖然我沒有繼續關注,但這geth.

只需添加上面的答案,當區塊鏈開始在您的電腦上同步時,隨著下載的塊被讀取,索引開始在您的電腦上建立。這就是為什麼在錢包完全同步並建立完整索引後,一些錢包會在你的驅動器上使用不少於 40GB 的儲存空間。

它有點類似於 Windows 索引服務在 Windows 電腦上的工作方式,並且始終索引硬碟驅動器上的所有文件。

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