资讯专栏INFORMATION COLUMN

运行以太坊私有网络

王陆宽 / 1780人阅读

摘要:运行以太坊私有网络以太坊以的形式来标识一个网络,推荐使用的形式去指定,主网络的是默认的,如果你想要建立私有网络,你可以指定一个新的网络。

运行以太坊私有网络 network ID

以太坊以 netWorkID的形式来标识一个网络,推荐使用--networkid的形式去指定,主网络的networkid是1(默认的),如果你想要建立私有网络,你可以指定一个新的网络id。

创建创世区块

创世区块将在系统启动的时候commit到数据库中,一个私有网络可以定义一些私有创世区块。
一般来说,创世区块可以分配一些预分配的资源,如下是一个创世区块样例:

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200000000",
    "gasLimit": "2100000",
    "alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
}

如果需要利用你自己的创世区块配置文件生成一个创世链,你可以用如下命令:

geth --datadir path/to/custom/data/folder init genesis.json

然后你可以再用如下命令运行你的私有网络:

geth --datadir path/to/custom/data/folder --networkid 15
网络联通性

为了节点都能够相互联通,并达成一致的状态,我们需要设置一些bootstrap节点,这些节点能够帮助其他节点实现相互联通,这里配置bootstrap节点的命令如下:

bootnote --genkey=boot.key
bootnote --nodekey=boot.key

一旦bootstrap节点在线,它将返回一个合法的远程连接URL,该URL能够用于实现节点之间的相互连接。请确保显示的IP地址同你期望的外网访问的IP地址一致。

注意:你也可以使用全功能的geth节点作为bootstrap节点。

启动你的网络成员节点

一旦你的bootstrap节点已经配置好,并能够通过网络访问,最简单的方式就是通过telnet 进行测试。所有的geth节点都能够通过--bootnotes选项指定bootnode,在启动多个节点的时候,请确保是每个节点的数据文件夹是独立的,避免冲突,可以通过--datadir的选项进行指定:

geth --datadir path/to/custom/data/folder --networkid 15 --bootnodes 

如此一来,你的私有网络就可以work了,该网络完全同主网络和测试网络隔离开,所以你需要配置一些挖矿节点接受并处理交易生成新的区块。

运行一个私有的矿工节点

在以太坊主网络上实现挖矿是一个非常艰巨的任务,需要利用GPA,针织需要OpenCL,CUDA的支持,但是在私有网络中就轻松一些了,一个单CPU的矿工实例基本上能够满足你的需求,它基本上能够完成稳定出块,并能够实现在较短的时间间隔内出块。

如下的命令能够帮助你启动一个新的geth挖矿节点:

$ geth  --mine --minerthreads=1 --etherbase=0x0000000000000000000000000000000000000000

请注意,所有的挖矿收入都会记录到--etherbase这个账户上,进一步地,你可以通过指定--targetlimit来限制gas limit,也可以通过--gasprice来指定gas的价格。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24008.html

相关文章

  • 以太是什么 - 以太开发入门指南

    摘要:以太坊是什么以太坊是一个建立在区块链技术之上,去中心化应用平台。运行环境以太坊虚拟机是以太坊中智能合约的运行环境。是由以太坊客户端提供的是典型的开发以太坊时使用的客户端,基于语言开发。 本文首发于深入浅出区块链社区原文链接:以太坊是什么 - 以太坊开发入门指南原文已更新,请读者前往原文阅读 很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗...

    tomlingtm 评论0 收藏0
  • SegmentFault 技术周刊 Vol.41 - 深入学习区块链

    摘要:和比特币协议有所不同的是,以太坊的设计十分灵活,极具适应性。超级账本区块链的商业应用超级账本超级账本是基金会下的众多项目中的一个。证书颁发机构负责签发撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 从比特币开始 一个故事告诉你比特币的原理及运作机制 这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来...

    qianfeng 评论0 收藏0
  • 以太创世区块与链配置载入分析

    摘要:本文首发于深入浅出区块链社区原文链接以太坊创世区块与链配置载入分析,原文已更新,请读者前往原文阅读。以太坊允许通过创世配置文件来初始化创世区块,也可使用选择使用内置的多个网络环境的创世配置。再准备两个以太坊账户,以便在创世时存入资产。 本文首发于深入浅出区块链社区原文链接:以太坊创世区块与链配置载入分析,原文已更新,请读者前往原文阅读。 创世区块作为第零个区块,其他区块直接或间接引用到...

    姘搁『 评论0 收藏0
  • Mac环境搭建以太私有

    摘要:原文地址石匠的为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链。网络在连接到其他节点的时候会用到,以太坊公网的网络是,为了不与公有链网络冲突,运行私有链节点的时候要指定自己的网络。当设置为表示使用发布该链。 原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链。在mac上搭建环境主要需要以下步骤。 geth安装 geth是go-ether...

    张金宝 评论0 收藏0
  • 以太智能合约开发第二篇:理解以太相关概念

    摘要:原文发表于以太坊智能合约开发第二篇理解以太坊相关概念很多人都说比特币是区块链,以太坊是区块链。它是以太坊智能合约的运行环境。是由以太坊节点提供。以太坊社区把基于智能合约的应用称为去中心化的应用。 原文发表于:以太坊智能合约开发第二篇:理解以太坊相关概念 很多人都说比特币是区块链1.0,以太坊是区块链2.0。在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态...

    yibinnn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<