以太坊PoA共识引擎算法介绍(3)
PoA私链搭建
go-ethereum自带puppeth工具, 可以方便地部署支持PoA的以太坊私链,以本地部署2节点的以太坊私有链为例, 部署步骤如下:
- geth1.6版本后自带puppeth工具(编译geth时用
make all
) - 创建两个文件夹,用来保存2个节点数据, 创建后进入到testnet文件夹
testnet|-- node1|-- node2
- 创建2个账户作为signer,生成的2个地址保存为变量:
{ADDR1} 和 {ADDR2}
$ geth --datadir node1 account new$ geth --datadir node2 account new
- 通过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>
- 启动节点, 在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
- 连接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地址
- 启动"挖矿"
> personal.unlockAccount(eth.coinbase)> eth.defaultAccount = eth.coinbase> miner.start()
一切顺利的话,就开始定时出块.
注意:
- 出块时间如果配置为0, 代表没有固定的出块时间, 只有当有新交易产生时才触发出块.
作者:shi_qinfeng
链接:https://www.jianshu.com/p/82e0e1424a53
來源:简书
以太坊PoA共识引擎算法介绍(3)相关推荐
- 以太坊PoA共识引擎算法介绍(1)
1. 以太坊中PoA产生的背景 如果你想用以太坊搭建一个联盟/私有链, 并要求该链交易成本更低甚至没有, 交易延时更低,并发更高, 还拥有完全的控制权(意味着被攻击概率更低). 目前以太坊采用PoW或 ...
- 以太坊POA共识机制Clique源码分析
以太坊中除了基于运算能力的POW(Ethash)外,还有基于权利证明的POA共识机制,Clique是以太坊的POA共识算法的实现,这里主要对POA的Clique相关源码做一个解读分析. Clique的 ...
- PoA共识引擎算法实现分析(2)
PoA共识引擎算法实现分析 clique中一些概念和定义 EPOCH_LENGTH : epoch长度是30000个block, 每次进入新的epoch,前面的投票都被清空,重新开始记录,这里的投票是 ...
- 以太坊POA共识算法解析
1.clique中的概念和定义 EPOCH_LENGTH : epoch长度是30000个block, 每次进入新的epoch,前面的投票都被清空,重新开始记录,这里的投票是指加入或移除signer ...
- 以太坊POA共识机制Clique源码分析 1
转载自Ryan是菜鸟 | LNMP技术栈笔记 以太坊中除了基于运算能力的POW(Ethash)外,还有基于权利证明的POA共识机制,Clique是以太坊的POA共识算法的实现,这里主要对POA的Cli ...
- 以太坊Geth 共识算法源码解析
共识算法 目前以太坊中有两个公式算法的实现,分别为clique和ethash.其中clique是PoA共识的实现,ethash是PoW共识的实现,其相应的代码位于go-ethereum/consens ...
- 第03篇 以太坊POA联盟链介绍
1.共识机制 区块链采用去中心化的设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者.这样的制度 ...
- 以太坊P2P中Kad算法解析
以太坊笔记综合 ###源码目录结构: accounts 实现了一个高等级的以太坊账户管理 bmt 二进制的默克尔树的实现 build 主要是编译和构建的一些脚本和配置 cmd 命令行工具,又分了很多的 ...
- 【杨镇】【中译修订版】以太坊的分片技术官方介绍
杨镇,资深软件架构师,资深开发工程师.以太坊技术爱好者与布道者. 是Solidity官方文档中译项目的重要贡献者,以太坊Homestead官方文档中文版译者,并对以太坊黄皮书中文版.Thunder共识 ...
最新文章
- html语言设计表格,HTML标记语言——表格标记
- 网络推广方法带你了解优质的网站结构对网站SEO有什么好处?
- C# Socket与实现
- eclipse常用快捷键——非常实用
- Linux下读写芯片的I2C寄存器
- Andoid TextView显示富文本html内容及问题处理
- javascript中的时间处理
- python安全性_关于python安全性的问题
- 2010年是一道坎,也是一座桥
- 情侣c语言程序,C/C++编程笔记:C语言制作情侣必备《爱情电子相册》,源码解析!...
- 全网首发:WINDOWS主机与MAC虚拟机文件访问的解决办法
- 计算机硬件参数的工具软件,电脑硬件参数修改工具
- 《面试》游戏开发常用面试问题以及答案
- 如何缩减XFS分区格式的根目录
- 位运算相关题目-一些小trick 1bit代表独立数字 求只出现一次的数字 无进位n进制数 n(-n) Boyer-Moore 投票算法 n(n-1)
- 遇到无法打出的字怎么办?
- P8685 [蓝桥杯 2019 省 A] 外卖店优先级
- ZCANPRO 周立功CAN通道配置方法
- trans系列是sci几区_如何看SCI期刊属于几区
- 乌丹一中2021高考成绩查询,2021年赤峰高考状元名单公布,赤峰文理科状元是谁多少分...
热门文章
- hypermesh安装包百度云_HYPERMESH11.0 64bt软件
- JavaScript-获取浏览器信息
- 2016年日本计算机专业排名,2016年国大学排名计算机专业排名情况.doc
- js json数组_JaveScript对象篇和数组篇
- java手动调用finalize_Java并手动执行finalize
- mysql查询女生的成绩_MySQL 统计查询实现代码
- MySQL学习8 - 数据的增删改
- Eclipse SVN插件安装
- 如何在rul中添加图片
- programming review (c++): (1)vector, linked list, stack, queue, map, string, bit manipulation