這是正常現象,看 eth.hashrate 或者 miner.getHashRate() 只要不是0說明在挖礦了數組
現象:難度設爲0x01,CPU使用率居高不下,但挖礦速度依舊很慢,好幾分鐘纔出一個區塊,eth.hashrate 一開始很高後來逐漸下降到0
解決:增長虛擬機的內存,以前分配了2G內存給虛擬機中的Ubuntu,後來加到3個G,速度就正常了,1秒能出1~2個區塊bash
下面這段代碼在remix IDE中用Javacript VM測試能正常返回數組的函數,鏈接到ganache中測試卻返回空值網絡
function getAllUsersAddress() public returns(address[])
{
return userAddrs;
}
複製代碼
緣由是由於沒有加view/constant修飾符,致使這個函數無法直接返回結果,而是返回交易的哈希(transact都是返回交易哈希,call能夠直接返回結果,沒有view/constant修飾符的函數就須要用transact調用)。
更深刻地,remixIDE在本身的Javascript VM中,發送transact以後能夠馬上查詢交易執行的結果(畢竟Javascript VM只有一個節點),而鏈接到外部的ganache後,remixIDE自己是用相似於contractInstance.getAllUsersAddress.transcat(args,{/*其它參數*/})
的方式與ganache進行交互,此時ganache雖然能夠瞬間執行完getAllUsersAddress(),但remixIDE不知道它能夠瞬間執行完畢啊,remixIDE可能以爲它鏈接的是一個真正的有成百上千節點的以太坊網絡,因此只能傻乎乎的拿到哈希後在那等着設想中的」其它成百上千節點「執行完畢嘍,天然也就不會馬上去查詢函數執行的結果。函數