首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PoA Clique共识下新增验证者节点

PoA Clique共识下新增验证者节点

原创
作者头像
孟斯特
发布于 2024-11-21 01:51:47
发布于 2024-11-21 01:51:47
2330
举报
文章被收录于专栏:EthereumEthereum

在前一篇文章中,我们介绍了PoA Clique共识下如何新增同步节点。本文将介绍如何在PoA Clique共识下新增验证者节点。

Clique 共识是以太坊的权威证明(Proof of Authority, PoA)共识机制的一种实现,主要用于私链或测试链场景。在 Clique 共识中,验证者节点(Sealer Nodes)扮演了核心角色,负责区块的生成和链的维护。

1. 验证者节点的定义

验证者节点是 Clique 共识下的核心节点,负责以下任务:

  • 提议新区块:验证者通过轮流机制(Round Robin)提议新区块。
  • 签署区块:验证者在生成的区块中附加自己的数字签名,证明区块的合法性。
  • 维持网络安全:验证者是唯一能够出块的节点,防止了非验证者的恶意挖矿。

2. 验证者节点的特点

  • 固定列表:验证者节点的身份是静态配置的,初始时由创世区块(genesis.json)定义。
  • 动态调整:运行时可以通过投票增减验证者节点。
  • 身份明确:验证者节点使用自己的账户地址作为身份标识
  • 无需高算力:不像 PoW 共识,Clique 共识不需要复杂的计算,因此验证者节点对硬件要求较低。

3. 验证者节点的职责

  1. 轮流出块
    • 验证者节点按顺序轮流出块。
    • 如果轮到某个验证者,但它未及时出块(例如离线),下一个验证者将接替。
  2. 遵守出块时间
    • 出块间隔通常为固定时间(period,默认 15 秒),定义在创世文件中。
    • 每个验证者节点只能在自己的时间段内出块。
  3. 签署区块
    • 每个区块都必须由验证者节点签署,其签名信息保存在区块头中。
    • 验证者的签名证明区块是由合法的节点生成。
  4. 防止恶意行为
    • 验证者不能连续生成多个区块(除非其他验证者离线)。
    • Clique 共识通过强制的冷却时间防止一个验证者频繁出块。
  5. 参与验证者管理:验证者节点可以通过投票机制增加或移除其他验证者。

4. 验证者的管理

Clique 共识支持动态管理验证者节点:

  • 增加验证者:现有验证者可以提议增加新的验证者节点,超过 50% 的验证者投票赞成后,新的节点将成为验证者:clique.propose("0xNewValidatorAddress", true)
  • 移除验证者:现有验证者可以提议移除某个验证者,超过 50% 的验证者投票赞成后,目标节点将被移除:clique.propose("0xValidatorAddressToRemove", false)
  • 验证者列表:以下命令查看当前的验证者节点列表:clique.getSigners()
  • 检查当前出块状态:通过以下命令查看当前节点的出块活动:clique.status()

5. 验证者节点的出块机制

Clique 共识的出块机制如下:

  1. 按顺序轮流出块:每个验证者按预定顺序生成区块,顺序在创世文件中定义或通过验证者列表确定。
  2. 冷却时间
    • 验证者在生成一个区块后,必须等待其他验证者出块后才能再次出块。
    • 如果强制出块,其他节点会拒绝该区块。
  3. 容错机制:如果某个验证者离线,其他验证者会接管出块,网络仍能正常运行。

6. 验证者节点的设置

创世文件中定义验证者:在创世区块配置(genesis.json)中,可以通过 extraData 字段定义初始验证者。

示例:

代码语言:json
AI代码解释
复制
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000<validators_addresses_in_hex>0000000000000000000000000000000000000000000000000000000000000000"

<validators_addresses_in_hex> 是验证者地址的拼接,每个地址为 20 字节。

节点启动时开启挖矿:验证者节点需要使用 --mine 参数启动 Geth:

代码语言:bash
AI代码解释
复制
$ geth --datadir /path/to/data --networkid 1234 --mine --miner.etherbase "0xYourValidatorAddress" --unlock "0xYourValidatorAddress" --password password.txt

检查是否正在挖矿:通过以下命令查看节点是否正在挖矿:

代码语言:javascript
AI代码解释
复制
eth.mining

返回 true 表示节点正在尝试生成区块。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PoA 验证者也能获取出块奖励吗?
出块奖励是指在区块链网络中,节点(如矿工或验证者)成功创建和添加一个新的区块到区块链上时所获得的奖励。这种奖励通常以加密货币的形式发放,目的是激励节点参与网络的维护和安全。
孟斯特
2024/10/17
2900
PoA 验证者也能获取出块奖励吗?
PoA 共识下的ethereum如何引入出块奖励?
在之前的文章中介绍了通过修改源码的方式来实现PoA共识下的出块奖励,在只有一个节点的情况下,这种方式并不会有什么问题;一旦有新的节点加入网络,那新增的节点就会卡在数据同步的阶段。那为什么会出现这种情况呢?
孟斯特
2024/12/10
1910
PoA 共识下的ethereum如何引入出块奖励?
构建基于PoA共识的以太坊私链
创建两个账户,分别为account 1和account 2,用做初始的验证者地址。
孟斯特
2024/09/27
4100
构建基于PoA共识的以太坊私链
PoA Clique共识下新增同步节点
增加同步节点(Full Nodes)对于区块链网络,尤其是基于 PoA(Proof of Authority)Clique 共识机制的私链,具有重要意义。以下是增加同步节点的主要原因及其优势:
孟斯特
2024/11/20
2640
PoA Clique共识下新增同步节点
用Geth设置基于POA权利证明的私有以太网网络
目标:逐步指导,帮助你使用权威证明共识引擎(也称为clique)设置本地私有以太网网络。
笔阁
2019/03/20
3K0
用Geth设置基于POA权利证明的私有以太网网络
面向企业的区块链教程(一)
区块链正在迅速增长,并改变着商业的运作方式。领先的组织已经在探索区块链的可能性。通过本书,你将学会如何构建端到端的企业级去中心化应用程序(DApps)并在组织中扩展它们以满足公司的需求。
ApacheCN_飞龙
2024/05/24
8860
面向企业的区块链教程(一)
geth 搭建 私有链节点
作为区块链的起始区块,其他区块直接或间接引用到创世区块。因此要运行以太坊私有链,需要定义自己的创世区块,创世区块信息写在一个 JSON 格式的配置文件中。
星辉
2019/12/25
3.9K1
以太坊挖矿源码:clique算法
上文我们总结了以太坊最主要的共识算法:ethash算法,本文将重点分析以太坊的另一个共识算法:clique。 关键字:clique,共识算法,puppeth,以太坊地址原理,区块校验,认证结点,POA,选举投票,snapshot,Comma-ok断言 clique 以太坊的官方共识算法是ethash算法,这在前文已经有了详细的分析: 它是基于POW的共识机制的,矿工需要通过计算nonce值,会消耗大量算力来匹配target值。 如果在联盟链或者私链的方案里,继续使用ethash就会浪费算力
文彬
2018/05/03
3.4K0
多验证者节点PoA私链搭建
孟斯特
2024/10/11
3880
多验证者节点PoA私链搭建
Istanbul BFT解读(中)
前端时间写了Istanbul BFT的一些原理,以及逻辑详情[1]。今天想写一篇实战的技术文章,所以底层原理就不赘述。下一篇我们将介绍Istanbul BFT的信息存储。
Tiny熊
2020/09/24
6650
Istanbul BFT解读(中)
【深度知识】25种区块链共识算法全面详解
本文尽可能列出所有主要的共识算法,评估各自的优劣之处。共识算法是区块链的核心技术,本文会跟随作者的理解,持续更新。如果读者发现有所遗漏,或是存在错误,希望能通过评论指出。
辉哥
2020/07/28
15.2K2
【深度知识】25种区块链共识算法全面详解
区块链中的共识机制以及共识算法
共识,从字面上来看,是在某方面达成一致。打个比方,一个部门最近来了几位新同事,部门主管为了欢迎新同事的加入,以能让新同事融入到新环境,提议下班后聚个餐,对于聚餐了,大伙对此举双手赞成,毕竟能蹭个免费餐的事并不是每月都有的,这时便可以说,大家对下班后聚餐迎新达成了一致认同。
zhangjiqun
2024/12/13
2K0
区块链中的共识机制以及共识算法
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
通过各方资料了解学习之后,决定自己开始搭建基于以太坊go-ethereum的私有链环境。由于本人的电脑系统为win8,为避免window环境出现过多莫名其妙的问题,特意通过vm搭建了一台ubuntu16.04版本的虚拟系统。以下内容均基于ubuntu16.04系统。
程序新视界
2022/05/06
1.1K0
区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
关于智能合约DAPP系统开发方案流程详情
搭建私网并启动Geth相关概念:主网:以太坊真是节点运行的网络,节点遍布全球,此网络中使用的ETH是真实的虚拟数字货币,部署合约时需要消耗真金白银。测试网:测试网的节点没有主网节点那么多,主要是为以太坊开发者提供一个测试的平台环境,此网络上的ETH可以通过做任务获得。私网:私网是由开发者自行组建的网络,不与主网及测试网连通,独立存在,仅用于个人测试或企业项目使用。第一步:配置创世块文件创建genesis.json文件:{"config":{"chainId": 18,"homesteadBlock": 0,
开发v_syn520110
2022/11/03
4510
以太坊数据存证性能与膨胀率测试
我们基于区块链在企业中的应用最广泛的就是“存证”功能需求,这是利用了区块链不可篡改和数据共享的特点,存证的业务数据一方面可以保证留痕和追溯,另一方面也实现了多个节点(如果部署在不同企业和部门)之间的数据共享。如果要实现存证,我们最关心并不是图灵完备,也不是去中心化,而是 存证的性能(也就是TPS)和数据膨胀率(也就是存1M的业务数据,单个节点要消耗多少M的磁盘空间)。
深蓝studyzy
2023/09/15
3750
以太坊数据存证性能与膨胀率测试
区块链共识机制
区块链是一种分布式数据库技术,已经在金融、物流、医疗等领域得到广泛应用,其中共识机制是确保区块链安全性和可靠性的关键机制之一,共识机制可以确保所有节点对于区块链上的数据和交易的一致性,从而防止双重支付和其他恶意行为,本文将详细介绍区块链共识机制的原理、分类和应用并探讨当前共识机制面临的挑战和未来的发展方向。
Al1ex
2023/05/26
9130
区块链共识机制
搭建以太坊私有链
区块链技术正在逐渐走向成熟,以太坊作为区块链领域的重要代表被广泛应用于智能合约、去中心化应用等领域,然而公有链上的交易需要消耗大量的手续费,且数据的公开性也限制了其在某些场景下的应用。因此搭建以太坊私有链成为了一种更加灵活、高效、安全的解决方案,本文将介绍如何搭建以太坊私有链帮助读者更好地理解和应用区块链技术
Al1ex
2023/09/07
2.1K1
搭建以太坊私有链
以太坊数据存证性能与膨胀率测试
我们基于区块链在企业中的应用最广泛的就是“存证”功能需求,这是利用了区块链不可篡改和数据共享的特点,存证的业务数据一方面可以保证留痕和追溯,另一方面也实现了多个节点(如果部署在不同企业和部门)之间的数据共享。如果要实现存证,我们最关心并不是图灵完备,也不是去中心化,而是 存证的性能(也就是TPS)和数据膨胀率(也就是存1M的业务数据,单个节点要消耗多少M的磁盘空间)。
深蓝studyzy
2023/09/14
3660
以太坊多节点私有链部署
https://g2ex.github.io/2017/09/12/ethereum-guidance/
飞狗
2018/09/10
1.6K0
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
在区块链的交流和学习中,「共识算法」是一个很频繁被提起的词汇,正是因为共识算法的存在,区块链的可信性才能被保证。
区块链大本营
2018/12/20
3.4K0
盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼
相关推荐
PoA 验证者也能获取出块奖励吗?
更多 >
交个朋友
加入腾讯云官网粉丝站
双11活动抢先看 更有社群专属礼券掉落
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档