一边转载一边学习区块链

来源:互联网 发布:战网mac正在启动闪退 编辑:程序博客网 时间:2024/04/28 18:44

        geth的全称是go-ethereum,是一个以太坊客户端,用go语言编写,应该是目前最常用的客户端。当然以太坊客户端还有用C++,Ruby,Python,Java等其他多种语言编写的,不同类型的客户端是为了满足不同的需求场景。今天我们主要来介绍geth(发音同guess )的使用。

 

(1)打开终端Terminal,执行以下命令,以开发方式启动geth

geth  --datadir “~/ethdev” --dev 

这会在当前根目录下创建一个ethdev文件夹,当然这个文件夹的名称你可以自己取,我们暂且不管这个文件夹是干嘛用的,后面会进行介绍   

(2)geth启动成功后,重新开一个终端,执行以下命令,打开geth控制台:

geth --dev console 2>>file_to_log_output

该命令会打开geth控制台,同时在目录下生成一个叫做file_to_log_output的日志文件,等下我们会来查看这个日志文件。

 

(3)查看当前有哪些账户

eth.accounts

(4)创建一个新账户

personal.newAccount(‘密码')

我们这里创建两个账户。再使用eth.accounts查看账户:


(5)可以把账户赋值给某一个变量,同时查询账户中的余额


(6)上面提到过日志文件,我们再重开一个终端,我们使用以下命令打开日志:

  

tail -f file_to_log_output


(7)在geth控制台中启动挖矿:miner.start()


 以太坊执行miner.start返回null


是否设置miner地址

启动节点挖矿之前,需要查看当前节点中是否已经存在账号,可执行以下命令,查看当前节点下面是否有账号存在。

>personal.listAccounts

["0xc040cbd8a189d36f580fa83c2ffe3a26fb3e6a7e","0xe0d1de6c934049fe4847b64becff5885bdb83fa4"]

当确认账户已经存在时,可以设置Etherbase。先查看以下coinbase账户:

>eth.coinbase

"0xc040cbd8a189d36f580fa83c2ffe3a26fb3e6a7e"

通过上面的命令,可以看到coinbase的账户地址,也就是上面查看地址查到第一个地址。

执行设置miner地址:

>miner.setEtherbase(eth.coinbase)

true

也可以执行执行以下命令进行设置:

>miner.setEtherbase(eth.accounts[0])

true

然后,可以再执行挖矿命令,查看是否问题是否解决。

节点误报

另外一种情况就是其实miner.start()命令已经执行成功,只不过节点返回null。如果是dev模式,可以使用eth.blockNumber查看一下区块高度是否增加。

节点版本问题

本人安装的geth-1.7.3版本的节点,在dev环境下验证发现,当执行miner.start()时,返回null。但其实miner已经执行,只不过它在等待你发送交易之后才会生成新的区块。也就是说执行了miner.start(),它一直在等待,这是发送一笔交易,再查看区块高度发现已经增加一块。

  • (8)停止挖矿

miner.stop()



(9)此时我们再来查看两个账户的账户余额
由此可见,挖矿所得的以太币默认是传入第一个账户的

(10)user1向user2转移以太币

eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})

原创粉丝点击