以太坊系列之九: 从零一步一步搭建以太坊私有链

从零一步一步搭建以太坊私有链

我会说明一步一步怎么做,同时说明可能的注意事项。

1.下载geth

这一步网上很多,就不细说了,windows的,linux的,mac都有。

2. 创建genesis.json

关于genesis文件的介绍,在此处:http://blog.csdn.net/sportshark/article/details/51855007有详细说明,自行查阅。

我的genesis.json如下

{
    "config": {
        "chainId": 89120348581,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "20",
    "gasLimit": "2100000",
    "alloc": {
        "0x1a9ec3b0b807464e6d3398a59d6b0a369bf422fa": { "balance": "30000000000000000000000" },
        "0x33df901abc22dcb7f33c2a77ad43cc98fbfa0790": { "balance": "40000000000000000000000" }
    }
}

我这里预先给自己的测试账号分配了一些以太币,这样就不用挖矿了。

3.初始化区块链

这里需要注意的是,如果你要有多台电脑,那么每台电脑都要执行一遍下面的操作,也不能图省事,复制geth目录。
geth --datadir ~/eth/privnet/ init genesis.json,我设定的私有链主目录是~/eth/privnet,你可以根据自己的情况修改

4.节点运行

节点之间能够联通,首先要保证网络是通的,测试网络是否畅通,可以通过telnet ip 30303来测试,有时候由于防火墙或者nat等原因,有些节点之间是没法直接通信的.

在各个节点上运行下面命令

geth --datadir ~/eth/privnet --networkid 89120348581

这时候各个几点已经独立运行起来了,但是他们是没有连通的,因为他们的networkid,和创世块和以太坊网络上的都不一样,所以导致在p2p网络认证过程中会失败.

5.连接节点

在各自节点上运行geth attach来添加节点
各自节点信息可以通过admin.nodeInfo来获取,获取以后再其他节点通过

admin.addPeer('enode://69e4026e61198088b9bdc353a7e0c924481b1835b35acbf298066634bf47406655516f251933992d3ae2d2752048c0df5656981d4113faa92bb0302243a62eea@xx.xx.xx.xx:30303')

来添加,

还有一种方式可以通过在运行参数中直接指定
如下:

 geth.exe --datadir=d:/privnet --networkid 89120348581 --bootnodes   enode://69e4026e61198088b9bdc353a7e0c924481b1835b35acbf298066634bf47406655516f251933992d3ae2d2752048c0df5656981d4113faa92bb0302243a62eea@xx.xx.xx.xx:30303

如果有多个node,用逗号分隔即可.

6.注意事项

    1. init genesis.json必须每个节点都运行一遍,否则添加节点的时候因为创世块不匹配,会失败,我就是在这里耽误了很久.
    1. 节点之间单向网络通就可以,也就是在nat环境下A可以直接访问B,那就用A添加B
    1. 后续转账等操作,必须启动挖矿,怎么挖矿,很简单,就是在启动的时候加上--mine参数就可以了.

7 加入我的私有链

    1. 将上面的genesis.json内容保存为c:\privnet\genesis.json
    1. 运行命令
      geth --datadir c:\privnet init genesis.json
    1. 启动节点
      geth.exe --datadir=c:/privnet --networkid 89120348581 --bootnodes enode://69e4026e61198088b9bdc353a7e0c924481b1835b35acbf298066634bf47406655516f251933992d3ae2d2752048c0df5656981d4113faa92bb0302243a62eea@123.206.176.142:30303
    1. 特别注意,genesis.json要一字不差,否则无法加入我的私有网络.
      在私有链上挖矿很容易,方便自己测试开发.
posted on 2017-08-02 15:42  baizx  阅读(2716)  评论(0编辑  收藏  举报