Go-Ethereum
乙太坊部署問題
我在筆記型電腦上部署了一個私有版本的乙太坊。
我正在使用此程式碼進行部署:
geth –-identity "blockdb" –-rpc -–rpcport "9040" --rpccorsdomain "*" –-rpcapi "db,eth,net,web3" –-datadir "c:\\blockchain" –-port "30303" –-nodiscover –-networkid 76543 console
這個起源:
{ "config": { "chainId": 76543, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "0x4000", "gasLimit": "0x8000000", "alloc": {} } }
區塊鏈似乎部署得很好,因為它給了我相同的鏈 ID,我打開 Mist(不更改 ysettings)並可以看到我創建的錢包。Miner.start() 也有效。我看到來自採礦的乙太幣。我可以看到我創建的錢包以及自上次區塊以來的分鐘數。但狀態始終保持連接。
我的問題如下:
1)當我關閉控制台並重新啟動它時,要重新啟動節點,我再次使用上述命令。那是對的嗎?因為:
2)當我重新啟動時,我可以看到之前創建的錢包,但看不到乙太幣。乙太失去了。他們都從0重新開始。為什麼會這樣?
3)我正在嘗試通過使用乙太坊和乙太坊錢包與區塊鏈進行“外部”互動。在這兩個應用程序中,我都可以看到錢包及其餘額。但我無法創建新錢包、部署合約或轉移乙太幣。
如果你優雅地關閉 Geth 應該沒問題 (Ctrl + D)。我有一種預感,你正在強行殺死它。
從 Geth 1.8.0 開始,我們不會立即將所有內容推送到磁碟,而是將狀態保留在記憶體中一段時間(使用最新程式碼進行 1 小時的塊處理)。這極大地減少了磁碟使用量。但是,這也意味著如果您在 Geth 將數據推送到磁碟之前將其殺死,您將需要重新同步該部分。
現在,如果您只有一個節點,那就有問題了,因為沒有人可以同步。請確保你總是優雅地終止 Geth 而不是殺死它。