go ethereum 安装与使用 - mac

弓智明
2023-12-01

转自

go ethereum 安装与使用 - mac


1. 安装

· home-brew 安装: here

· go ethereum 客户端安装:here

· solc 安装

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

 
 
  • 1
  • 2

2. 使用

查看当前账户列表

geth account list

 
 
  • 1
  • 2

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

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

 
 
  • 1
  • 2

指定 –dev 为开发环境

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

geth --dev console 2>>file_to_log_output

 
 
  • 1
  • 2

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

查看当前有哪些账户

eth.accounts

 
 
  • 1
  • 2
显示结果为:[]····
可以发现,初始是没有账户的
 
 
  • 1
  • 2

创建一个新账户

personal.newAccount(‘密码')

 
 
  • 1
  • 2
显示结果为:"0x7bf0acbe8478f41a8ada15a1c814d0db5387b94a"
然后我们查看 eth.accounts
显示结果为:["0x7bf0acbe8478f41a8ada15a1c814d0db5387b94a"]
可以发现是成功创建了账户
然后我们继续创建第二个账户
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

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

user1 = eth.accounts[0]
user2 = eth.accounts[1]
eth.getBalance(user1)
eth.getBalance(user2)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
显示结果:两个账户的余额都为0
 
 
  • 1

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

tail -f file_to_log_output

 
 
  • 1
  • 2

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

查看区块号:

eth.blockNumber

 
 
  • 1
  • 2
显示结果:0
 
 
  • 1

在geth控制台中启动挖矿:

miner.start()

 
 
  • 1
  • 2
查看日志,可以看到已经在挖矿了

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

查看区块号:eth.blockNumber
显示结果:59
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

停止挖矿:

miner.stop()

 
 
  • 1
  • 2

转账

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

 
 
  • 1
  • 2
显示结果:Error: authentication needed: password or unlock
    at web3.js:3104:20
    at web3.js:6191:15
    at web3.js:5004:36
    at <anonymous>:1:1
===> 所以我们需要解锁第一个账户

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

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

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

然后我们启动挖矿:miner.start()
再查看user2的余额:3000000000000000000
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

参考博客:here 和 here

 类似资料: