这是正常现象,看 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可能以为它链接的是一个真正的有成百上千节点的以太坊网络,因此只能傻乎乎的拿到哈希后在那等着设想中的”其它成百上千节点“执行完毕喽,天然也就不会马上去查询函数执行的结果。函数