私链搭建

准备账户

进入工作目录 /path/to/dxc/build/bin下(本文'/path/to/dxc'指的是dxc源码的下载目录,在此之前,确保已经进行过编译,未编译参考:编译和运行

$ ./geth account new --datadir ./data

新建账户的keystore文件位于 /path/to/dxc/build/bin/data/keystore文件夹下(过程如下)。

将新地址导入metamask小狐狸钱包。

  1. 首先进入导入页面

  2. 按照上图中标记顺序进行导入

    1. 选择导入方式为JSON 文件

    2. 选择新地址的keystore文件

    3. 填入创建新账户时的密码

    4. 点击导入(此处需要等待几十秒)

    5. 如果导入成功则会显示如下

创建genesis.json

  1. /path/to/dxc/build/bin/下创建genesis.json文件

  2. 更换测试网chainId 为72(这里默认为72,则不需要改)。

  3. 使用上面新账户(不带0x)替换 extraData 中的初始节点地址(注意:只替换中间40个地址字符)如下。

"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000a88548e97af8809afac9dc7a930650c1179510590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
===>>>
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000'your new account'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",

4. 修改alloc中节点地址为自己的新地址,并配置初始余额。至少0x50c783eb9b5c85f2a80000000。

{
    "config": {
        "chainId": 72,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0,
        "constantinopleBlock": 0,
        "petersburgBlock": 0,
        "istanbulBlock": 0,
        "muirGlacierBlock": 0,
        "dpos": {
            "period": 3,
            "epoch": 28800
        }
    },
    "nonce": "0x0",
    "timestamp": "0x5fc58968",
    "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000a88548e97af8809afac9dc7a930650c1179510590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "gasLimit": "0x280de80",
    "difficulty": "0x1",
    "alloc": {
        "0xa88548e97af8809afac9dc7a930650c117951059": {
            "balance": "0x50c783eb9b5c85f2a80000000"
        }
    },
    "number": "0x0",
    "gasUsed": "0x0",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}

初始化创世块

$ ./geth init ./genesis.json --datadir ./data

开启节点

运行

开启挖矿

  • 打开控制台 ./geth attach --datadir ./data

  • 解锁矿工账户 personal.unlockAccount("miner address","password",0)

  • 开启挖矿 miner.start()

多节点挖矿

  1. 其余节点使用相同的genesis.json初始化节点。

  2. 获取主节点的enode信息admin.nodeInfo

  3. 新节点geth attach 打开控制台,添加主节点信息admin.addPeer("enode info")

Last updated