web3无法在浏览器远程调用miner.start()

原文https://bitshuo.com/topic/58841835fd9ca2790427eb67

web3无法在浏览器远程调用miner.start()

首先我在启动私链时已经调用了miner模块,代码如下:

geth --identity "szetherum"   --solc /usr/local/bin/solc --rpc --rpccorsdomain "*" --datadir "%cd%\chain" --port "30303"  --rpcapi "db,eth,net,web3,personal,admin,miner"   --networkid 66666 console 2>1.txt

具体的functoin如下:在浏览器控制台打印的web3中没有miner,也无法使用miner调用start()(疑问在此)

这是个好问题,google了好久…However,solved ! 下面是解决步骤

问题原因

web3 并没有提供 miner 模块相关的api,需要使用另一个库 web3admin

解决步骤

1、安装web3admin

npm install web3admin

2、用法看下面的示例, Ubuntu16.04 下亲测,通过

const Web3 = require('web3')
var web3 = new Web3()
//web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper))
const web3Admin = require('web3admin')
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'))
setTimeout(function(){
    web3Admin.extend(web3)
    console.log("turning on mining", web3.miner.start())
    console.log("isMining?", web3.eth.mining)
    console.log("isMining?", web3.eth.mining)
}, 1000)

3、更多的用法及相关文档戳这里

猜你喜欢

转载自blog.csdn.net/dwjpeng2/article/details/81355690