前言
上一篇介绍了如何使用geth搭建以太坊私有链,以及geth控制台的一些命令。
传送门:使用geth搭建以太坊私链
这篇将介绍一些geth的开发者模式,也就是dev模式。
dev模式
dev 模式,也叫回归测试模式,主要用来给开发人员提供一个方便的开发测试环境。在dev模式下,可以轻松的获得以太币,方便发起交易,交易也会被快速的打包,节省时间方便验证。
1.创建dev私链所在目录
@ubuntu:~$ cd Project
@ubuntu:~/Project$ mkdir myDevChain
注意:这一步很关键,如使用开发者账户创建私链,需要新建一个目录,不然会报这样的错误:Fatal: Failed to unlocked developer account: could not deceypt key with given passphrase.
2.启动dev模式
@ubuntu:~$ geth --datadir --dev console 2>output.log
查看启动log,在 dev 模式下,启动节点后,系统默认提供一个开发者账号,这个账号会作为当前的 coinbase 账号,在 keystore 目录下也有对应的加密私钥文件。
3.dev挖矿
dev启动有一些令人迷惑的地方,在 dev 默认模式启动的情况下,已经开启了挖矿,因此当再执行挖矿命令: miner.start() 时会返回 null。
大家注意,output.log中最后一条
INFO [10-18|10:56:47.690] Sealing paused, waiting for transactions
这就是默认启动 dev 模式的一个特性。geth 节点的开发者为了给测试环境提供一个更友好的操作:只有发过来交易,系统才会挖矿打包,如果未发送交易过来,就不会去挖矿打包。这样不用被一些并没有交易的区块刷屏了。
但是此模式有一个弊端,我们知道发送一笔交易想让它被确认多次才算成功,如果没交易不挖矿岂不是确认过程很费劲,还需要再在后面发送 N 次交易?这个不用担心,后面会讲到另外一种模式。
4.dev 之自动挖矿
上述启动是在有交易时才挖矿,我们通过改变参数,可以自动挖矿。此参数默认为 0,也就是上面讲的被动挖矿的模式,当有 pending 交易到来才进行挖矿,同时它还有一个参数值 1,主动挖矿。
–dev.period value 开发者模式下挖矿周期 (0 = 有pending状态交易时进行挖矿) (默认: 0)
@ubuntu:~$ geth --datadir --dev --dev.period 1 console 2>output.log
这样就回到常见的自动挖矿的模式了,可以执行miner. stop() 命令来停止挖矿