Go-Ethereum

Geth 控制台 - 探勘區塊後休眠?

  • March 31, 2018

我正在執行一個挖礦難度較低的本地測試網來測試我的合約,並且我意識到當我啟動另一個挖礦 geth 實例時,總計算量將佔用我的 CPU。

我的問題是 - 有沒有辦法讓 geth 礦工在探勘下一個區塊之前休眠一段指定的時間?

我可以只有一個節點探勘交易,但我想更接近地模擬真實網路。

我確信還有其他我不知道的測試網探勘解決方案,它們也受到歡迎。

您可以編寫一個 JavaScript 腳本來控制與探勘相關的 geth 行為。

一個簡單的腳本可以在 go-ethereum wiki 上只探勘非空塊。另一個是來自Embark Framework的mine.js 腳本。這個功能豐富,可配置用於定期挖礦、挖礦獎勵上限、挖礦執行緒數等(通過glider)。

腳本是用命令載入的js,例如:

geth --rpc js mining.js

您應該測試 Embark 框架測試網。它是一個特殊配置的區塊鏈,與普通的測試網不同,它只會在您需要探勘時進行探勘。因此,如果您發送交易,它將首先探勘所述交易所需的內容,然後繼續進行交易。這是一種解決方案:

https://github.com/iurimatias/embark-framework

embark blockchain

預設情況下,啟動區塊鏈將探勘最少數量的乙太幣,並且只會在新交易進入時進行探勘。這對於保持低 CPU 非常有用。

根據您的工作,還有一個TestRPC節點,它的行為與區塊鏈不完全相同,但幾乎不消耗資源,如果您需要基本操作,可能就足夠了。

我可以添加的最後一件事是,您可能希望將 minethread 設置為 1 作為探勘參數,這樣它就不會使用您的整個處理器。它不會按照您想要的方式解決問題,但可能會降低資源密集度,足以讓您喜歡此解決方案。

那是這樣的:

geth -dev --rpc --rpcport 8545 --rpcaddr localhost --rpccorsdomain "*" --minerthreads "1" -unlock 0 -mine

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