Elastico算法详解(二)

2023-12-10 09:32
文章标签 算法 详解 elastico

本文主要是介绍Elastico算法详解(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

②委员会设置

  Elastico算法的一个精妙之处就在于,开始用POW算法验证身份,组成多个委员会,在委员会内部由于节点数量少,因此可以采用BFT算法对交易达成共识。当委员会建立成功后,委员会中的每一个节点都要与其他节点建立点对点连接,Elastico算法通过将最初通过身份验证进入系统的C个节点组成一个目录委员会,其他后进入的节点联系目录委员会,获取它的peer节点的信息并与之建立连接的方式,将通信复杂度从O(n^2)降到O(nc);

具体步骤:

  节点通过pow方式验证身份进入系统,检查当前系统中目录委员会成员个数,若小于c个,则该节点将自己加入目录委员会,并向全网广播身份;若不少于c个,则该节点会将自己的身份信息发给所有目录委员会成员,注意:每一个节点观察到的目录委员会成员可能不同,只需将最先看到的c个成员当作目录委员会成员即可。
目录委员会成员接收到节点的身份信息后,根据节点ID的后s位将其匹配到对应的委员会中,若该委员会成员数不足c个,则将该节点加入委员会中。最终所有的委员会满员后,目录委员会成员会将每一个普通委员会成员列表发送给该委员会中的每一个成员。其中目录委员会c个成员中允许最多存在 c / 3 c/3 c/3个恶意成员,这些恶意成员可以不发送正确目录信息,也可以发送错误目录信息,因此其他节点最少收到 2 c / 3 2c/3 2c/3个正确的委员会成员列表。将其作并集处理,创建一个至少包含c个成员的view

③委员会内部共识

  委员会建立并设置成功后,每一个委员会成员要创建一个至少包含c个成员的view,这个view最多包含 3 c / 2 3c/2 3c/2个成员(由于BFT算法最多可容纳1/3作恶节点,c个诚实节点所占的比例为2/3,因此最多包含3c/2个节点),包含c/2个作恶节点。委员会成员开始验证交易的有效性,若交易正确,则对其签名。当交易集合收到 c / 2 + 1 c/2+1 c/

这篇关于Elastico算法详解(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476719

相关文章

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

MySQL表空间结构详解表空间到段页操作

《MySQL表空间结构详解表空间到段页操作》在MySQL架构和存储引擎专题中介绍了使用不同存储引擎创建表时生成的表空间数据文件,在本章节主要介绍使用InnoDB存储引擎创建表时生成的表空间数据文件,对... 目录️‍一、什么是表空间结构1.1 表空间与表空间文件的关系是什么?️‍二、用户数据在表空间中是怎么

python3 pip终端出现错误解决的方法详解

《python3pip终端出现错误解决的方法详解》这篇文章主要为大家详细介绍了python3pip如果在终端出现错误该如何解决,文中的示例方法讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下... 目录前言一、查看是否已安装pip二、查看是否添加至环境变量1.查看环境变量是http://www.cppcns

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

Swagger2与Springdoc集成与使用详解

《Swagger2与Springdoc集成与使用详解》:本文主要介绍Swagger2与Springdoc集成与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1. 依赖配置2. 基础配置2.1 启用 Springdoc2.2 自定义 OpenAPI 信息3.