美文网首页区块链研习社
基于以太坊的多节点私链系统搭建

基于以太坊的多节点私链系统搭建

作者: tpkeeper | 来源:发表于2019-02-17 17:54 被阅读1次

    基于以太坊的多节点私链系统

    一、环境

    Golang https://golang.org/
    Geth https://ethereum.github.io/go-ethereum/downloads/(make all 编译goeth)

    二、节点部署(包含接入、共识、全量记录节点)

    创建账号

    geth --datadir node0 account new
    目录下会增加keystore文件夹,keystore是保存账户密钥的文件

    创世区块文件genesis.json

    genesis文件定义了私链的第一个块,可以使用puppeth工具来生成,可以自定义出块时间共识算法等


    image.png
    初始化

    geth --datadir node0 init genesis.json(步骤2生成)
    node0目录下会增加geth ,geth存储区块相关的数据

    启动第一个节点

    创建创世块:
    geth --datadir node0 init genesis.json

    启动:
    geth --datadir node0 --port 30000 --nodiscover --unlock '账户地址'  console

    加入新的节点

    创建账号:
    geth --datadir node1 account new
    创建创世块:
    geth --datadir node1 init genesis.json(步骤2生成的)

    启动节点:
    geth --datadir node1 --port 30000 --nodiscover --unlock '地址'  console

    在node1控制台通过admin.nodeInfo.enode 获取enode信息
    在node0控制台通过admin.addPeer("enode信息") 添加节点

    当增加第三个节点时,由于超过3个,节点启动miner会报unauthorized 错误,这是因为新节点的加入需要一半以上的节点提名,控制台中执行:
    clique.propose(ldquo;账户地址rdquo;,true)

    开启rpc服务(接入节点和全量交易记录节点启用)

    admin.startRPC("127.0.0.1",8545,"*","eth,net,web3,admin,personal")

    开启挖矿(共识节点启用)

    miner.start()

    三、使用

    image.png

    客户端通过相应的SDK调用接入节点,完成合约部署,合约调用、数据查询等功能。

    相关文章

      网友评论

        本文标题:基于以太坊的多节点私链系统搭建

        本文链接:https://www.haomeiwen.com/subject/xxtneqtx.html