1,安装Geth:
从此处下载: http://ethfans.org/wikis/Ethereum-Geth-Mirror,本文使用版本:1.8.3
2,安装Mist:
https://github.com/ethereum/mist/releases/tag/v0.10.0 ,版本:0.10.0
2,编写genesis.json 合约文件,放到Geth安装目录下。(kvgenesis.json)
内容如下:
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x4000",
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x4b6576696e2047656e65736973426c6f636b",
"gasLimit": "0xffffffff"
}
Parameters:
config.chainId // 区块链的ID,在 geth 命令中的 --networkid 参数需要与 chainId 的值一致
config.homesteadBlock // Homestead 硬分叉区块高度,不需要关注
config.eip155Block // EIP 155 硬分叉高度,不需要关注
config.eip158Block // EIP 158 硬分叉高度,不需要关注
nonce:64位随机数,用于挖矿,当与mixHash组合时,证明此区块已经执行了足够的计算,
mixHash:一个Hash值,当与nonce组合时,证明此区块已经执行了足够的计算3, Geth 创建节点:
开始--》运行--》cmd,
进入Geth安装目录,输入:
geth --datadir "%cd%\chain" init kvgenesis.json
--datadir: 为文件产生的目录。
得到如下结果:创世区块创建成功:
查看Geth目录,发现生成chain文件夹及其相关目录文件。
4,启动Console:
geth -datadir "%cd%\chain" console
or
geth --identity "kvetherum" --rpc --rpccorsdomain "*" --datadir "C:\Geth\chain" --port "30303" --rpcapi "db,eth,net,web3,personal" --networkid 11100 -nodiscover --verbosity=5 console 2>>kvchain.log
参数详解:
identity:区块链的标示,随便填写,用于标示目前网络的名字
init:指定创世块文件的位置,并创建初始块
datadir:设置当前区块链网络数据存放的位置
port:网络监听端口
rpc:启动rpc通信,可以进行智能合约的部署和调试
rpcapi:设置允许连接的rpc的客户端,一般为db,eth,net,web3
networkid:设置当前区块链的网络ID,用于区分不同的网络,是一个数字
console:启动命令行模式,可以在Geth中执行命令
nodiscover:禁止被网络中其它节点发现,需要手动添加该节点到网络
verbosity:打印详细的日志信息
personal.newAccount('password1')
如:
personal.newAccount('123456')
如下,账号:
personal.newAccount('123456')
0x4a0ec4848a516a55aa2cd3325cbf604eb71c970d 创建成功
账户会保存在:Geth/keystore文件夹中
可以在此处创建多个账户
5,开始/结束挖矿
Miner.start(1); //表示启动一个线程挖矿
Miner.stop()
6, 打开Mist,显示private-net,表示链接私有节点成功。
7,添加新节点形成私有网络