都是gasLimit惹的禍 解決一個奇怪問題Error: Number can only safely store up to 53 bits
原來好好的node endpointtest.js ,結果在新的私鍊上怎麼都不能運作了.
這個部署js檔案就不上了,很簡單.
隻要 gas設定稍大一點就報标題的那個錯誤,但是gas設定小了,又滿足不了要求.
經過排查發現時genesis.json指定的gasLimit太大了,導緻web3.js在計算的時候出錯.
私鍊的genesis.json
{
"config": {
"chainId": 89120348582,
"homesteadBlock": 1,
"eip155Block": 1,
"eip158Block": 1,
"ByzantiumBlock":1
},
"difficulty": "2",
"gasLimit": "0xff210000000000000",
"alloc": {
"0x1a9ec3b0b807464e6d3398a59d6b0a369bf422fa": { "balance": "30000000000000000000000" },
"0x33df901abc22dcb7f33c2a77ad43cc98fbfa0790": { "balance": "40000000000000000000000" }
}
}
後來修改gaslimit為990000000000000,總算解決問題.看來gaslimit不是随便設定一個就可以的.
太小會造成你的合約經常超出最大限制而無法運作,太大就會出現标題中的問題.
感謝開源軟體,可以添加一些調試資訊來發現錯誤.