天天看點

Invalid Difficulty - Geth同步錯誤

當你使用Geth同步以太坊區塊鍊時,可能會遇到這個

invalid difficulty

錯誤:

WARN [03-01|11:17:41] Synchronisation failed, dropping peer  peer=68677387327cf808 
                      err="retrieved hash chain is invalid"
ERROR[03-01|11:17:58] 
########## BAD BLOCK #########
Chain config: {ChainID: 1 Homestead: 1150000 DAO: 1920000 DAOSupport: true EIP150: 2463000 
               EIP155: 2675000 EIP158: 2675000 Byzantium: 4370000 
               Constantinople: <nil> Engine: ethash}

Number: 7280000
Hash: 0xeddb0590e1095fbe51205a51a297daef7259e229af0432214ae6cb2c1f750750


Error: invalid difficulty: have 2957101900364072, want 2958201410943272
##############################           

故障原因

這是因為使用的Geth版本不支援康斯坦丁堡分叉(Constantinople Fork),例如上面錯誤日志中的

Constantinople: <nil>

;或者雖然使用了支援康斯坦丁堡分叉的新版本Geth,但本地區塊鍊中包含了舊版本産生的區塊,進而導緻同步失敗。

解決方案

如果使用的不是最新版本的Geth,那麼可以更新到最新的穩定版本。官網下載下傳位址:

Geth Releases

如果Geth已經更新到最新版本,啟動後還是出現

invalid difficulty

錯誤,那麼可以讓Geth運作一會進行本地區塊的重組,或者清空本地的區塊鍊資料從頭重新同步。

原文連結:

Geth Invalid Difficulty錯誤 - 彙智網

繼續閱讀