Go-Ethereum
在私有網路上使用 geth 挖礦無限期掛起
我有一個按照本文執行的私有測試網路。特別是 my
difficulty
設置為0x400
; 我正在使用的整個 genesis 文件可以在這裡看到。挖礦
geth
似乎根本不起作用。這是我試圖做的。首先是一個新的區塊鍊和賬戶:
vagrant@debian-jessie:~$ mkdir stackexchange-example-chain vagrant@debian-jessie:~$ geth --genesis local_genesis.json \ --datadir stackexchange-example-chain \ --networkid 9991 --nodiscover --maxpeers 0 account new
然後在處理完之後,啟動控制台:
vagrant@debian-jessie:~$ geth --genesis local_genesis.json \ --datadir stackexchange-example-chain \ --networkid 9991 --nodiscover --maxpeers 0 console
然後是我理解的標準挖礦設置:
> eth.accounts ["0x699ec6d49641e59f65ba4bf72c52628059301e64"] > var foo = eth.accounts[0]; undefined > miner.setEtherbase(foo); true > miner.start(2); true
日誌報告生成 epoch 0 的 DAG 在大約 1 秒內完成,然後礦工似乎掛起。我讓它執行的最長時間大約是 15 分鐘,但在我指定的難度下,我知道我應該在比這更短的時間內進行大量挖礦。如果我
miner.hashrate
在任何時候檢查,我只會得到一個奇怪的new BigNumber() not a number: [object Object]
錯誤。我也嘗試過擦除
.ethash
目錄並從頭開始生成新的 DAG。結果相同。以 停止後
miner.stop(2)
,getBalance
呼叫會驗證沒有開採乙太幣:> eth.getBalance(foo); 0
如果我打電話,我會收到以下資訊(您可以在此 gist
eth.getBlock('pending', true)
中看到整個日誌/控制台會話輸出):{ difficulty: 131072, extraData: "0xd783010400844765746887676f312e352e31856c696e7578", gasLimit: 268173313, gasUsed: 0, hash: null, logsBloom: null, miner: null, nonce: null, number: 1, parentHash: "0x522fe03765d5834422cd7cfc88c435f33bcd13d7a4c71cd8eaf321a8b3dd8ea3", receiptRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", size: 536, stateRoot: "0x2fa7b359e63faf5af52846537e67053ffd96d2fd33877704192c9c3e6e6266b9", timestamp: 1455530923, totalDifficulty: 0, transactions: [], transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", uncles: [] }
請注意,報告
difficulty
的值遠高於我在創世文件中指定的值;131072,而我認為它會是 1024。也許這並不代表同樣的難度。後來totalDifficulty
報告為0,令人困惑。有沒有人知道這裡可能出了什麼問題?
似乎這與此問題中遇到的問題相同。
正如評論中提到的,這似乎是由於一個錯誤。
與此同時,重新啟動我的虛擬機似乎已經解決了這個問題。
我有一個類似的問題。如果您在虛擬機中執行。確保分配足夠的 RAM 記憶體。我最初使用了 800MB,但沒有挖礦(雜湊率非常低)。分配了 2GB 記憶體,執行良好。