以太坊 -- 客户端 geth 使用入门
1. 前言
Geth 的全称是 go-ethereum,是一个以太坊客户端,用 go 语言编写,是目前最常用的客户
端。以太坊客户端还有用 C++、Ruby、Python、Java 等其他多种语言编写的,不同类型的客
户端是为了满足不同的需求场景。这里主要介绍 geth(发音同 guess)的使用。
注意:
尽量使用 Ubuntu 系统官方的 apt 源。
安装过程均在 Ubuntu14.04 64 位系统下完成。
在使用 npm 安装某些软件的时候,由于系统某些进程占用,会导致安装过程出错。重
启即可。
2. 安装 Geth
执行以下命令:
# sudo apt-get
install
software-properties-common
# sudo add-apt-repository
-y ppa:ethereum/ethereum
# sudo apt-get update
# sudo apt-get
install
ethereum
2. 启动 Geth
打开 geth 控制台的 2 种方式(两者的账户不能共用):
开发方式
私链方式
2.1. 开发方式
2.1.1. 启动 geth
打开终端 Terminal,执行以下命令,以开发方式启动 geth。
# geth --datadir
“~/ethdev”
--dev
注:该命令在当前根目录下创建一个 ethdev 文件夹(文件夹名称可以自定义)。
2.1.2. 打开 geth 控制台
以开发方式启动 geth 成功后,重新打开一个终端 Terminal,执行以下命令,打开 geth 控制
台。该命令同时会在当前目录下生成一个叫做 file_to_log_output(可自定义)的日志文件。
# geth --dev
console 2>>file_to_log_output
2.2. 私链方式
暂无。
3. 操作
2.2.1. 账户
2.2.1.1. 查看账户(eth.accounts)
查看当前有哪些账户。
命令:eth.accounts
当前无账户。
2.2.1.2. 创建账户(personal.newAccount( ))
创建新账户。
命令:personal.newAccount('密码')
创建了 2 个新账户。可用 eth.accounts 查看。
2.2.1.3. 账户赋值(=)
把账户赋值给某一个变量,例如把第一个账户赋值给 user1。
user1 = eth.accounts[0]
2.2.1.4. 查询账户余额(eth.getBalance( ))
命令:eth.getBalance(账户或变量)
例如:eth.getBalance(user1)或者 eth.getBalance(eth.accounts[0])都可以。
2.2.1.5. 解锁账户(personal.unlockAccount( ))
命令:personal.unlockAccount(帐户或变量,'密码')
2.2.2. 挖矿
2.2.2.1. 启动挖矿(miner.start( ))
命令:miner.start()
挖矿时有日志输出。查看日志的方法是,新打开一个终端 Terminal,使用以下命令打开日志:
# tail
-f
file_to_log_output
打开结果:
挖矿时的跟踪日志:
注:可以键入 miner.start(1) 使用一个 cpu 挖矿,减少对电脑性能的消耗。
2.2.2.2. 停止挖矿(miner.stop( ))
命令:miner.stop()
此时查看账户余额,有钱!但挖矿所得的以太币默认是传入第一个账户的。
2.2.2.3. 转移以太币(eth.sendTransaction( ))
账户之间转移以太币,如 user1 向 user2 转移以太币。
命令:eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})
注:
如果出现账户被锁定的错误,需要先用命令 personal.unlockAccount()解锁账户,再转移
以太币。
以太币转移后的 user2 账户余额实际还为 0。
这是因为没有矿工来挖矿处理。根据区块链概念,每次交易的确认,都是需要挖矿的,
也就是被其他矿工共识确认,然后才能加入区块链的账本中。所以,需要再次执行
miner.start()挖矿,然后就发现账户 user2 有 3 个以太币了。
3. 外一篇
3.1. 32 位 UBUNTU 安装 Geth
3.1.1. 安装 GO
下载 Go 源码:
# wget https://storage.googleapis.com/golang/go1.4.1.linux-386.tar.gz
解压到/usr/local
# tar
-xzvf
go1.4.1.linux-xxx.tar.gz
-C /usr/local
添加 PATH 环境变量
# vi
/etc/profile
添加 1 行:
export PATH=$PATH:/usr/local/go/bin
注:如果你在/usr/local 之外的自定义位置中安装了 Go,你同样需要设置 GOROOT 环境
变量来指向自定义的安装位置。例如:
# vi
/etc/profile
export GOROOT=/path/to/custom/location
重启
重启后,检查 Go 语言的版本
# go version
有显示表示 Go 安装成功
3.1.2. 安装 Geth
下载源码
地址:https://geth.ethereum.org/downloads/
源码:geth-linux-386-1.7.2-1db4ecdc.tar
解压
# tar
zvxf
geth-linux-386-1.7.2-1db4ecdc.tar
移动
# mv
./geth-linux-386-1.7.2-1db4ecdc/geth /usr/bin