安装Geth
通过PPA在Ubuntu上安装
在基于Ubuntu的发行版上安装go-ethereum的最简单方法是使用内置的启动板PPA(个人软件包档案)。我们提供的是包含了我们的稳定和开发版本的Ubuntu版本的单PPA仓库trusty,xenial,zesty和artful。
要启用我们的启动板存储库,请运行:
sudo add-apt-repository -y ppa:ethereum/ethereum
然后安装稳定版的go-ethereum:
sudo apt-get update sudo apt-get install ethereum
安装golang
sudo apt-get install golang
搭建私链
创建创世区块文件
{ "config": { "chainId": <arbitrary positive integer>, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, "istanbulBlock": 0 }, "alloc": {}, "coinbase": "0x0000000000000000000000000000000000000000", "difficulty": "0x20000", "extraData": "", "gasLimit": "0x2fefd8", "nonce": "0x0000000000000042", "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp": "0x00" }
启动私链节点
下面命令的主体是geth console,表示启动节点并进入交互式控制台,–datadir选项指定使用data0作为数据目录,–networkid选项后面跟一个数字,这里是1108,表示指定这个私有链的网络id为1108。网络id在连接到其他节点的时候会用到,以太坊公网的网络id是1,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络id
geth --datadir data0 --networkid 1108 console
运行上面的命令后,就启动了区块链节点并进入了Javascript Console:
这是一个交互式的Javascript执行环境,在这里面可以执行Javascript代码,其中>是命令提示符。在这个环境里也内置了一些用来操作以太坊的Javascript对象,可以直接使用这些对象。这些对象主要包括:
eth:包含一些跟操作区块链相关的方法 net:包含以下查看p2p网络状态的方法 admin:包含一些与管理节点相关的方法 miner:包含启动&停止挖矿的一些方法 personal:主要包含一些管理账户的方法 txpool:包含一些查看交易内存池的方法 web3:包含了以上对象,还包含一些单位换算的方法
创建账户
账户默认会保存在数据目录的keystore文件夹中。
# 查看账户 eth.accounts # 创建新账户 personal.newAccount('你的密码1') # 可以创建多个账户 personal.newAccount('你的密码2')
查看账户余额
eth.getBalance(eth.accounts[0]) eth.getBalance(eth.accounts[1])
启动/停止挖矿
# 括号中的参数为挖矿的线程数,可以不设置,默认全力挖矿 miner.start(10) # 第一次启动挖矿会先生成挖矿所需的DAG文件,这个过程有点慢,等进度达到100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。 # 停止挖矿 miner.stop() # 输入的字符会被挖矿刷屏信息冲掉,没有关系,只要输入完整的miner.stop()之后回车,即可停止挖矿
矿工的账户,叫做coinbase,默认情况下coinbase是本地账户中的第一个账户
# 查看账户 eth.coinbase # 修改账户 miner.setEtherbase(eth.accounts[1])