Go-Ethereum
儘管沒有網路活動,但仍將 GBytes 的數據寫入磁碟 - 確切地說,geth 在做什麼?
我正在 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 電腦上的工作方式,並且始終索引硬碟驅動器上的所有文件。