geth入门
geth是以太坊的go版本客户端
go ethereum --- geth
是目前主流的连接以太坊网络的客户端
现在我们来搭建一个以太坊私有网络
来看下步骤
1.准备创世文件genesis.json
2.创建文件夹,指定为私有网络数据存储位置
3.创建私有链
我们先来安装下geth
我是ubuntu系统
是这样装的
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum
安装完成后
geth version
看下版本号
我们创建个项目
PrivateNetDemo
然后创建一个json文件
genesis.json
这个文件就是我们的创世文件
然后我们复制一下创世文件的内容进去
{
"alloc": {},
"config": {
"chainID": 72,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000000",
"difficulty": "0x4000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",
"gasLimit": "0xffffffff"
}
然后
我们创建私有链
geth --datadir ".node1" init genesis.json
然后我们执行
ls -a
看到有一个隐藏文件夹.node1
然后这个文件夹里面有
-geth
-keystore
然后
我们启动一下私有链节点
geth --datadir "./node1" --networkid 72 --port 30301 console
启动成功之后
我们可以直接执行
eth
这样可以显示出所有的eth的命令
比如
eth.accounts
eth.coinbase
等等
那么我们现在可以来看看账户
eth.accounts
我们发现
显示了
[]
这是因为我们现在还没有账户
那么我们现在来创建账户
我们执行
personal.newAccount()
然后输入两次密码
或者我们可以直接
personal.newAccount("123456")
这样来直接创建账户和密码
创建完后
我们可以执行下
eth.accounts
看下账户
["0xd1778ce38764025bbd16c1105e2d17fbb2f0e539", "0x6ef7172aff03a58dfe54165aa46655999421ddff", "0xe29667d0d1c83da88cad47af3c55cc20fb11cc77", "0x79978f4ab9e376f17378925db0eb3e0f154deede", "0xc5750da6d82b0dac0356830cd12e2a390b3444b6"]
那么现在我们创建了5个账户
我们来看下账户里有没有钱
我们可以这样
eth.getBalance('0xd1778ce38764025bbd16c1105e2d17fbb2f0e539')
我们发现
显示了0
所以没有钱
那么我们来挖点矿
我们先设置一下挖矿人
miner.setEtherbase('0xd1778ce38764025bbd16c1105e2d17fbb2f0e539')
返回了一个true
然后
miner.start()
开始挖矿
想停止的话就是
miner.stop()
如果我们的start和stop
没有返回true
而是返回的null
那么我们可以这样
加2个命令
--dev --dev.period 1
然后
geth --datadir "./node1" --networkid 72 --port 30301 console --dev --dev.period 1