- 区块链智能合约安全入门
- 天融信科技集团等
- 318字
- 2024-10-16 17:32:43
4.2.2 console中的挖矿
在miner.start函数中,start参数表示挖矿使用的线程数,如这里使用1个线程来挖矿,代码如下:
![](https://epubservercos.yuewen.com/294194/30835145207872306/epubprivate/OEBPS/Images/44756_41_2.jpg?sign=1739671141-kZiHrYuwYbri3yrn04xDXH90DUoGKJpN-0-20bab49abf490f7bb2d222365746f554)
第1次启动挖矿会生成所需的DAG文件,这个过程有点慢,等进度达到100%后,就会开始挖矿。挖到一个区块会奖励5以太币,这是初始化区块时设置的数量,当然这只是测试类型的以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫作coinbase。默认情况下coinbase是本地账户中的第1个账户,可以通过miner.setEtherbase函数将其他账户设置成coinbase。
当要停止挖矿操作时,可执行miner.stop函数,否则就会在后台一直挖矿,产生大量的无交易区块。停止挖矿的代码如下:
![](https://epubservercos.yuewen.com/294194/30835145207872306/epubprivate/OEBPS/Images/44756_41_3.jpg?sign=1739671141-HpjIF7HgmtFhfCj8JTus2NDwDk7Toajx-0-6c408e5843508a4742e9f499412c5ba4)
从开始挖矿到停止挖矿的过程中,由于miner比较难控制挖出的区块数,因此会产生一些无交易区块。如果希望通过miner来控制挖出的区块数,即挖到一个区块后便自动停止,可执行以下代码:
![](https://epubservercos.yuewen.com/294194/30835145207872306/epubprivate/OEBPS/Images/44756_41_4.jpg?sign=1739671141-yl4bfw3tCe0Z8e48lbn1gCaDdjqyoWe2-0-05c7180d78d4d0d9ceb8768428f6295d)