本文参考了简书上的一篇文章:https://www.jianshu.com/p/672f400deaeb
首先需要搭建一个私有链,先进行环境的配置
1.Node.js的安装
这个安装比较简单,直接去Node的官网去下载安装就可以了,验证安装成功:打开cmd之后输入node -v
2.安装Geth
Geth是一个以太坊客户端,可以直接在Go Ethereum官方下载,下载后直接安装即可。安装完毕,打开控制台窗口,可以查看是否安装成功。如果你不能打开这个网站进行下载,可以从国内镜像下载。安装完成之后可能会出现一个错误PATH was not updated with "XXXX > 1024"
。这个经过分析应该是安装的时候没有把环境变量添加到系统内的结果,也就是自动添加失败了。这时候可以手动添加PATH,也可以进入刚才安装的地址去运行geth命令。
E:\>cd blockchain
E:\blockchain>geth -v
Incorrect Usage. flag provided but not defined: -v
NAME:
geth - the go-ethereum command line interface
Copyright 2013-2017 The go-ethereum Authors
USAGE:
geth [options] command [command options] [arguments...]
VERSION:
1.8.3-stable-329ac18e
COMMANDS:
account Manage accounts
attach Start an interactive JavaScript environment (connect to node)
bug opens a window to report a bug on the geth repo
......
3.安装Solidity
建议使用Remix -Solidity IDE来进行开发。不需要安装。
4.启动环境,搭建私有链
4.1配置创世区块
搭建私有链前需要创建一个 json 配置文件,用于初始化创世区块。这里自己将创建一个名为 genesis.json
的文件。也就是自己新建一个文件命名为genesis.json
它的内容为:
{
"config": {
"chainId": 1000,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x400",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc": {}
}
config.chainId
:用来声明以太坊网络编号,选择一个大于10的数字即可(实际操作最好大于1000,不然很容易报错)。config.homesteadBlock
: Homestead 硬分叉区块高度,不需要关注config.eip155Block
: EIP 155 硬分叉高度,不需要关注config.eip158Block
: EIP 158 硬分叉高度,不需要关注coinbase
:矿工账号,第一个区块挖出后将给这个矿工账号发送奖励的以太币difficulty
:用来声明挖矿难度,越小的值难度越低,也就能更快速地出块。extraData
: 附加信息随便填gasLimit
: gas 的消耗总量限制,用来限制区块能包含的交易信息总和,因为我们是私有链,所以填最大nonce
: 一个 64 位随机数mixhash
: 与 nonce 配合用于挖矿,由上一个区块的一部分生成的 hashparentHash
: 上一个区块的 hash 值alloc