【区块链】go ethereum 安装与使用 - mac

go ethereum 安装与使用 - mac


1. 安装

· home-brew 安装: here

· go ethereum 客户端安装:here

· solc 安装

sudo npm install -g solc solc-cli --save-dev

2. 使用

查看当前账户列表

geth account list

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

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

指定 –dev 为开发环境

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

geth --dev console 2>>file_to_log_output

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

查看当前有哪些账户

eth.accounts
显示结果为:[]····
可以发现,初始是没有账户的

创建一个新账户

personal.newAccount(‘密码')
显示结果为:"0x7bf0acbe8478f41a8ada15a1c814d0db5387b94a"
然后我们查看 eth.accounts
显示结果为:["0x7bf0acbe8478f41a8ada15a1c814d0db5387b94a"]
可以发现是成功创建了账户
然后我们继续创建第二个账户

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

user1 = eth.accounts[0]
user2 = eth.accounts[1]
eth.getBalance(user1)
eth.getBalance(user2)
显示结果:两个账户的余额都为0

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

tail -f file_to_log_output

我们把这个终端界面放在一边,等下在geth控制台中有任何操作时,都可以来这边看看日志。

查看区块号:

eth.blockNumber
显示结果:0

在geth控制台中启动挖矿:

miner.start()
查看日志,可以看到已经在挖矿了

然后我们查看第一个账户的余额:eth.getBalance(user1)
显示结果:130000000000000000000
查看第二个账户的余额:eth.getBalance(user2)
显示结果:0
===>由此可见,挖矿的金额时默认传入第一个账户的

查看区块号:eth.blockNumber
显示结果:59

停止挖矿:

miner.stop()

转账

eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})
显示结果:Error: authentication needed: password or unlock
    at web3.js:3104:20
    at web3.js:6191:15
    at web3.js:5004:36
    at :1:1
===> 所以我们需要解锁第一个账户

输入:personal.unlockAccount("第一个账户地址", "密码")
显示结果:true

然后我们再进行转账就能成功
显示结果:"0x30751bbb05bb3ac5bf5316d172b484476e2d0d2e6243bc5fe7cb30d6bc0cc552"
为本次交易的地址

然后我们查看user2的账户余额:eth.getBalance(user2)
显示结果:0
这是因为没有矿工来挖矿处理。根据区块链的概念,我们知道,每次交易的确认,其实都是需要挖矿的,也就是被其他矿工共识确认,然后才能加入区块链的账本中。

然后我们启动挖矿:miner.start()
再查看user2的余额:3000000000000000000

参考博客:here 和 here

你可能感兴趣的:(区块链,区块链学习笔记)