当前位置:网站首页>EOS的共识机制与区块生成
EOS的共识机制与区块生成
2022-08-05 11:08:00 【智慧浩海】
在《EOSIO 技术白皮书》中,对 EOS 的共识机制 BFT-DPOS(拜占庭容错算法+权益委托共识机制)进行了说明。其中拜占庭容错算法(Byzantin eFault Tolerance)的用途是:
所有的出块者都要对所有区块签名,以确保在同一时间戳或者同一区块高度上,没有区块生产者能够同时在两个区块上签名。一旦一个区块有了 15 个区块生产者的签名,该区块就被认为是不可逆的。任一区块生产者如果想在同一时间戳或者同一区块高度的两个区块上签名,就会留下密码学证据。在这一模式下,一秒之内就可以达成不可逆的共识。
在白皮书中,EOS 对其区块的出块机制进行了介绍,转摘如下:
根据这一算法,在使用 EOSIO 软件构建的区块链上持有通证的人,可以通过一个持续进行的投票系统来选择区块生产者。任何人都可以选择参加区块生产,只要能够说服通证持有人为其投票,就会有机会参与区块的生产。
EOSIO 软件可以让区块每 0.5 秒生成一个。在任何时刻,只有一个生产者被授权生产区块。如果在计划的某个时间内没有成功出块,则跳过该块。如果有一个或更多的区块被跳过,则在区块链上会有 0.5 秒或者更久的空白。
使用 EOSIO 软件,区块的产生以 126 个区块(每个出块者六个区块,乘以 21 个出块者)为一个周期。在每个出块周期开始时,软件会根据通证持有人所投票数选出 21 个区块生产者。被选中的区块生产者的出块顺序要获得 15 个及以上的区块生产者的同意。
如果出块者错过了一个块,并且在最近 24 小时内没有产生任何块,则这个出块者将被剔除在考虑范围之外,直到他们通知区块链可以重新开始产生区块。这确保了网络的顺利运行,把被证明为不可靠的区块生产者排除在出块排序之外,这一方式使得错过区块的数量最小化。
边栏推荐
- 双因子与多因子身份验证有什么区别?
- SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
- What do T and Z in the time format 2020-01-13T16:00:00.000Z represent and how to deal with them
- SQL Outer Join Intersection, Union, Difference Query
- Android 开发用 Kotlin 编程语言三 循环控制
- Discover the joy of C language
- Naive bayes
- 微信小程序标题栏封装
- How to choose coins and determine the corresponding strategy research
- 并非富人专属,一文让你对NFT改观
猜你喜欢
数据可视化(二)
SQL Outer Join Intersection, Union, Difference Query
Scaling-law和模型结构的关系:不是所有的结构放大后都能保持最好性能
【OpenCV】-仿射变换
sqlserver编写通用脚本实现获取一年前日期的方法
Opencv算术操作
Android development with Kotlin programming language II Conditional control
Android 开发用 Kotlin 编程语言 二 条件控制
智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
【加密解密】明文加密解密-已实现【已应用】
随机推荐
智能算力的枢纽如何构建?中国云都的淮海智算中心打了个样
脱光衣服待着就能减肥,当真有这好事?
Header file search rules when compiling with GCC
发现C语言的乐趣
【心里效应】98 个著名的心理效应
安全软件Avast与赛门铁克诺顿NortonLifeLock合并获英国批准
poj2935 Basic Wall Maze (2016xynu暑期集训检测 -----D题)
Linux: Remember to install MySQL8 on CentOS7 (blog collection)
四、kubeadm单master
R语言ggplot2可视化:可视化密度图(Density plot)、可视化多个分组的密度图、数据点分布在箱图中间、添加主标题、副标题、题注信息
How to write a blog with Golang - Milu.blog development summary
nyoj757 期末考试 (优先队列)
L2-042 老板的作息表
Android 开发用 Kotlin 编程语言 二 条件控制
Android development with Kotlin programming language three loop control
TiDB 6.0 Placement Rules In SQL Usage Practice
Android development with Kotlin programming language II Conditional control
Leetcode刷题——623. 在二叉树中增加一行
化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)
Http-Sumggling Cache Vulnerability Analysis