Windows环境下搭建Geth私有网络
1、下载以太坊客户端Geth
https://ethereum.github.io/go-ethereum/downloads/
2、安装到F:\Geth目录
3、执行 geth version 验证:
F:\Geth>geth version
Geth
Version: 1.8.17-stable
Git Commit: 8bbe72075e4e16442c4e28d999edee12e294329e
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.11.1
Operating System: windows
GOPATH=
GOROOT=C:\go
4、定义私有网络的创世状态:
首先需要定义私有网络的起始状态,之后的所有节点都需要对其认可。起始状态由 JSON 文件定义,比如可以为 genesis.json,在F:\Geth目录下新增创建创世块的初始化文件genesis.json,内容如下:
{
"config":{
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty":"0x40000",
"extraData":"",
"gasLimit":"0xffffffff",
"alloc":{}
}
注释 :
chainId:区块链的ID,用来标识当前区块链,并被用来防止重放攻击,在 geth 命令中的 –networkid 参数需要与 chainId 的值一致
homesteadBlock:Homestead 硬分叉区块高度
eip155Block: EIP 155 硬分叉高度
eip158Block: EIP 158 硬分叉高度
“difficulty”//难度,该值越大,出块越慢。
“extraData”//附加信息,随意填写
“gasLimit”//交易的执行时使用gas的上限
alloc:用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号,需要的时候自己创建即可以。
5、定义完 JSON 文件中定义的创世状态之后,还需要在启动前初始化每个 Geth 节点,来确保所有的区块链参数被设置正确
6、进入cmd命令行,切到F:\Geth目录,进行创世块信息初始化:
F:\Geth>geth --datadir "F:\Geth\data" init genesis.json
说明:datadir :保存databases 和 keystore的目录
(欢迎打赏,一分也是爱)