Go-Ethereum

在私有網路上使用 geth 挖礦無限期掛起

  • July 30, 2018

我有一個按照本文執行的私有測試網路。特別是 mydifficulty設置為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

如果我打電話,我會收到以下資訊(您可以在此 gisteth.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 記憶體,執行良好。

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