Go-Ethereum

致命:無法寫入創世塊:不支持分叉排序:未啟用 eip150Block,但在 0 創世塊啟用 eip155Block

  • February 20, 2022

我正在嘗試使用以下命令啟動私有 geth 鏈:

geth --datadir=./test-private-blockchain/ init genesis.json

我收到以下錯誤:

Fatal: Failed to write genesis block: unsupported fork ordering: eip150Block not enabled, but eip155Block enabled at 0 genesis block

{
 "config": {
       "chainId": 4777,
       "homesteadBlock": 0,
       "eip155Block": 0,
       "eip158Block": 0
   },
 "alloc"      : {},
 "difficulty" : "0x400",
 "extraData"  : "",
 "gasLimit"   : "0x7A1200",
 "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
 "timestamp"  : "0x00"
}

答案是更新 genesis.json 以包含 eip150Block:

{
 "config": {
       "chainId": 4777,
       "homesteadBlock": 0,
       "eip150Block": 0,
       "eip155Block": 0,
       "eip158Block": 0
   },
 "alloc"      : {},
 "difficulty" : "0x400",
 "extraData"  : "",
 "gasLimit"   : "0x7A1200",
 "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
 "timestamp"  : "0x00"
}

刪除數據目錄:

rm -rf "your data dir"

然後重新初始化。

geth --datadir=./test-private-blockchain/ init genesis.json

我想補充一點,在重新初始化時,如果您只刪除 datadir 的 geth 文件夾中的 chainData 文件夾,您將保留任何以前的帳戶,儘管它們失去了所有的乙太幣。對我來說這很方便,因為我將帳號儲存在我的 Dapps 的參數文件中。當然 Dapps 文件夾也在你的 datadir 中,所以如果你想保留它,但仍然重新初始化區塊鏈本身,這對我有用。

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