1,安装go语言(百度)。
2,安装geth。
下载源码解压编译:https://github.com/ethereum/go-ethereum
cd go-ethereum-master make geth 运行 /usr/software/go-ethereum-master/build/bin/geth version
显示如下表明安装成功。
Geth
Version: 1.8.18-unstable
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.9.4
Operating System: linux
GOPATH=
GOROOT=/usr/lib/golang
3,建立私有以太坊网络:以太坊节点之间能够互相链接需要满足:
1)相同的协议版本
2)相同的networkid,所以搭建私有网络最方便的方法就是通过geth命令中的–networkid选项,设置一个与主网不同的networkid(主网的networkid为1),这也是官方推荐的
4,新建一个目录用来存放区块链数据
以太坊支持自定义创世区块,要运行私有链,我们就需要定义自己的创世区块,创世区块信息写在一个json格式的配置文件中。首先将下面的内容保存到一个json文件中,例如genesis.json(涉及到权限问题所以进入root权限)
vim genesis.json
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x020000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc" : {}
}
进入新建的目录中,执行初始化命令:
/usr/software/go-ethereum-master/build/bin/geth --datadir data init genesis.json
INFO [10-24|15:40:49.886] Maximum peer count ETH=25 LES=0 total=25
INFO [10-24|15:40:49.887] Allocated cache and file handles database=/usr/local/private-geth/data/geth/chaindata cache=16 handles=16
INFO [10-24|15:40:49.891] Writing custom genesis block
INFO [10-24|15:40:49.891] Persisted trie from memory database nodes=0 size=0.00B time=8.914µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [10-24|15:40:49.891] Successfully wrote genesis state database=chaindata hash=5e1fc7…d790e0
INFO [10-24|15:40:49.891] Allocated cache and file handles database=/usr/local/private-geth/data/geth/lightchaindata cache=16 handles=16
INFO [10-24|15:40:49.894] Writing custom genesis block
INFO [10-24|15:40:49.894] Persisted trie from memory database nodes=0 size=0.00B time=1.559µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [10-24|15:40:49.894] Successfully wrote genesis state database=lightchaindata hash=5e1fc7…d790e0
5,启动geth:
/usr/software/go-ethereum-master/build/bin/geth --datadir data --networkid 1108 console
进入js的控制台
基本命令
查看账户
> eth.accounts
[]
创建账户
> personal.newAccount()
查看账户余额
> eth.getBalance(eth.accounts[0])
0
开始挖矿
> miner.start()
停止挖矿
> miner.stop()
以上为整理的搭建过程,方便以后使用。