PoA私链搭建

go-ethereum自带puppeth工具, 可以方便地部署支持PoA的以太坊私链,以本地部署2节点的以太坊私有链为例, 部署步骤如下:

  1. geth1.6版本后自带puppeth工具(编译geth时用 make all )
  2. 创建两个文件夹,用来保存2个节点数据, 创建后进入到testnet文件夹
      testnet|-- node1|-- node2
  1. 创建2个账户作为signer,生成的2个地址保存为变量: {ADDR1} 和 {ADDR2}
      $ geth --datadir node1 account new$ geth --datadir node2 account new
  1. 通过puppeth创建genesis文件
      $ puppethPlease specify a network name to administer (no spaces, please)> testnetWhat would you like to do? (default = stats)1. Show network stats2. Configure new genesis3. Track new remote server4. Deploy network components> 2Which consensus engine to use? (default = clique)1. Ethash - proof-of-work2. Clique - proof-of-authority> 2How many seconds should blocks take? (default = 15)> 10Which accounts are allowed to seal? (mandatory at least one)(addresses from the account creation above, replace with your own)> 0x{ADDR1}> 0x{ADDR2}> 0x<ENTER>Which accounts should be pre-funded? (advisable at least one)> 0x{ADDR1}> 0x{ADDR2}> 0x<ENTER>Specify your chain/network ID if you want an explicit one (default = random)> <ENTER>Anything fun to embed into the genesis block? (max 32 bytes)> <ENTER>What would you like to do? (default = stats)1. Show network stats2. Save existing genesis3. Track new remote server4. Deploy network components> 2Which file to save the genesis into? (default = testnet.json)> <ENTER>What would you like to do? (default = stats)1. Show network stats2. Save existing genesis3. Track new remote server4. Deploy network components> <CTRL-C>
  1. 启动节点, 在2个终端上分别执行:
      serv1$ geth --datadir node1 init testnet.jsonserv1$ geth --datadir node1 --port 3000 --syncmode "full" consoleserv2$ geth --datadir node2 init testnet.jsonserv2$ geth --datadir node2 --port 3002 --syncmode "full" console

启动后也可以通过attach到geth节点

      console1$ geth attach ipc:node1/geth.ipcconsole2$ geth attach ipc:node2/geth.ipc
  1. 连接2个节点
      console2> admin.nodeInfo.enode{ENODE-URL}console1> admin.addPeer({ENODE-URL})console1> admin.nodeInfo.enode{ENODE-URL}console2> admin.addPeer({ENODE-URL})

在客户端上 net.peerCount 应该可以看到数量是1

如果2个节点部署在2个主机上,那么ENODE-URL中的[::]需要替换为对应主机的IP地址

  1. 启动"挖矿"
      > personal.unlockAccount(eth.coinbase)> eth.defaultAccount = eth.coinbase> miner.start()

一切顺利的话,就开始定时出块.
注意:

  • 出块时间如果配置为0, 代表没有固定的出块时间, 只有当有新交易产生时才触发出块.

作者:shi_qinfeng
链接:https://www.jianshu.com/p/82e0e1424a53
來源:简书

以太坊PoA共识引擎算法介绍(3)相关推荐

  1. 以太坊PoA共识引擎算法介绍(1)

    1. 以太坊中PoA产生的背景 如果你想用以太坊搭建一个联盟/私有链, 并要求该链交易成本更低甚至没有, 交易延时更低,并发更高, 还拥有完全的控制权(意味着被攻击概率更低). 目前以太坊采用PoW或 ...

  2. 以太坊POA共识机制Clique源码分析

    以太坊中除了基于运算能力的POW(Ethash)外,还有基于权利证明的POA共识机制,Clique是以太坊的POA共识算法的实现,这里主要对POA的Clique相关源码做一个解读分析. Clique的 ...

  3. PoA共识引擎算法实现分析(2)

    PoA共识引擎算法实现分析 clique中一些概念和定义 EPOCH_LENGTH : epoch长度是30000个block, 每次进入新的epoch,前面的投票都被清空,重新开始记录,这里的投票是 ...

  4. 以太坊POA共识算法解析

    1.clique中的概念和定义 EPOCH_LENGTH : epoch长度是30000个block, 每次进入新的epoch,前面的投票都被清空,重新开始记录,这里的投票是指加入或移除signer ...

  5. 以太坊POA共识机制Clique源码分析 1

    转载自Ryan是菜鸟 | LNMP技术栈笔记 以太坊中除了基于运算能力的POW(Ethash)外,还有基于权利证明的POA共识机制,Clique是以太坊的POA共识算法的实现,这里主要对POA的Cli ...

  6. 以太坊Geth 共识算法源码解析

    共识算法 目前以太坊中有两个公式算法的实现,分别为clique和ethash.其中clique是PoA共识的实现,ethash是PoW共识的实现,其相应的代码位于go-ethereum/consens ...

  7. 第03篇 以太坊POA联盟链介绍

    1.共识机制 区块链采用去中心化的设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者.这样的制度 ...

  8. 以太坊P2P中Kad算法解析

    以太坊笔记综合 ###源码目录结构: accounts 实现了一个高等级的以太坊账户管理 bmt 二进制的默克尔树的实现 build 主要是编译和构建的一些脚本和配置 cmd 命令行工具,又分了很多的 ...

  9. 【杨镇】【中译修订版】以太坊的分片技术官方介绍

    杨镇,资深软件架构师,资深开发工程师.以太坊技术爱好者与布道者. 是Solidity官方文档中译项目的重要贡献者,以太坊Homestead官方文档中文版译者,并对以太坊黄皮书中文版.Thunder共识 ...

最新文章

  1. html语言设计表格,HTML标记语言——表格标记
  2. 网络推广方法带你了解优质的网站结构对网站SEO有什么好处?
  3. C# Socket与实现
  4. eclipse常用快捷键——非常实用
  5. Linux下读写芯片的I2C寄存器
  6. Andoid TextView显示富文本html内容及问题处理
  7. javascript中的时间处理
  8. python安全性_关于python安全性的问题
  9. 2010年是一道坎,也是一座桥
  10. 情侣c语言程序,C/C++编程笔记:C语言制作情侣必备《爱情电子相册》,源码解析!...
  11. 全网首发:WINDOWS主机与MAC虚拟机文件访问的解决办法
  12. 计算机硬件参数的工具软件,电脑硬件参数修改工具
  13. 《面试》游戏开发常用面试问题以及答案
  14. 如何缩减XFS分区格式的根目录
  15. 位运算相关题目-一些小trick 1bit代表独立数字 求只出现一次的数字 无进位n进制数 n(-n) Boyer-Moore 投票算法 n(n-1)
  16. 遇到无法打出的字怎么办?
  17. P8685 [蓝桥杯 2019 省 A] 外卖店优先级
  18. ZCANPRO 周立功CAN通道配置方法
  19. trans系列是sci几区_如何看SCI期刊属于几区
  20. 乌丹一中2021高考成绩查询,2021年赤峰高考状元名单公布,赤峰文理科状元是谁多少分...

热门文章

  1. hypermesh安装包百度云_HYPERMESH11.0 64bt软件
  2. JavaScript-获取浏览器信息
  3. 2016年日本计算机专业排名,2016年国大学排名计算机专业排名情况.doc
  4. js json数组_JaveScript对象篇和数组篇
  5. java手动调用finalize_Java并手动执行finalize
  6. mysql查询女生的成绩_MySQL 统计查询实现代码
  7. MySQL学习8 - 数据的增删改
  8. Eclipse SVN插件安装
  9. 如何在rul中添加图片
  10. programming review (c++): (1)vector, linked list, stack, queue, map, string, bit manipulation