在windows电脑上创建一个文件夹,目录下包含一个data目录,一个genesis文件(创建创世区块的配置文件),genesis的内容如下:
{
“config”: {
“chainId”: 0,
“homesteadBlock”: 0,
“eip155Block”: 0,
“eip158Block”: 0
},
“alloc” : {},
“coinbase” : “0x0000000000000000000000000000000000000000”,
“difficulty” : “0x20000”,
“extraData” : “”,
“gasLimit” : “0x2fefd8”,
“nonce” : “0x0000000000000042”,
“mixhash” : “0x0000000000000000000000000000000000000000000000000000000000000000”,
“parentHash” : “0x0000000000000000000000000000000000000000000000000000000000000000”,
“timestamp” : “0x00”
}
参数解释:
homesteadBlock:homestead协议升级所在区块的高度
eip155Block:eip155k协议升级所在区块的高度
eip158Block:eip158协议升级所在区块的高度
注:签名算法是homestead ->eip155 -> eip158,所以从homesteadBlock之前区块都通过homestead相关算法机制来验证,homesteadBlock 到 eip155Block之间的用eip155算法来验证,依次类推
coinbase 矿工的账号
difficulty 设置当前区块的难度,如果难度过大,cpu挖矿就很难,这里设置较小难度
extraData 附加信息,随便填
gasLimit 该值设置对GAS的消耗总量限制,用来限制区块能包含的交易信息总和
nonce 就是一个64位随机数,用于挖矿。
mixhash 与nonce配合用于挖矿,由上一个区块的一部分生成的hash。
parentHash 上一个区块的hash值,因为是创世块,所以这个值是0
timestamp 设置创世块的时间戳
alloc 用来预置账号以及账号的以太币数量,因为私有链挖矿比较容易,所以我们不需要预置有币的账号
接下来在该目录下使用命令来初始化区块链,命令如下:
geth --datadir ./data init ./genesis.txt,执行该命令后,结果如下图:
此时在data目录下多了geth和keystore目录,接下来就是启动区块链,命令如下:
geth --datadir ./data --port 30303 --networkid 99 --nodiscover console
出现如下结果:
此时用户 并没有账户,用personal.newaccount(“123456”)命令去创建一个新用户,命令为123456。由于该用户是第一个创建的用户,系统默认改啊地址为旷工地址。然后执行miner.start()去执行挖矿,结果如下:
出下
出现如上结果表明第一次初始化挖矿成功,接下来可以用命令创建用户,进行用户间转账,查询区块数据来体验一下以太坊,对应以太坊的console端的支持的命令,推荐下述链接,有需要的可以去自行查找相关命令:
https://github.com/ethereum/go-ethereum/wiki/Management-APIs
针对以太坊支持rpc远程调用模式,即可通过约定的数据格式,rpc端监听到接收数据并处理返回结果,对应的接口如下:
https://github.com/ethereum/wiki/wiki/JSON-RPC
本文仅仅是简单的介绍了私有链的搭建过程,搭建后如何用命令做一下操作请大家自行探索,很简单的。
2019/03/21 高烧38.3,在医院挂了3瓶水,回来就随便写写这边博客,希望对初学者有帮助,自己随带在新电脑上搭建一个私有链环境,方便以后阅读以太坊源码并对相关功能进行验证!
好了,还洗洗睡觉了,明早起来希望烧会退,晚安,合肥!