Standard Quorum Intersection
标准定足数交集
定义和背景
系统模型:
- 系统中有 \(n\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点(恶意节点)。
- 为了保证容忍 \(f\) 个拜占庭节点,系统通常需要至少 \(3f + 1\) 个节点。
Quorum(定足数):
- 一个定足数(quorum)是一个足够大的节点子集,能够代表整个系统做出决定。在拜占庭容错模型中,一个常用的定足数大小是 \(2f + 1\) 个节点。
标准多数交集特性(Quorum Intersection Property):
- 定足数交集特性要求任意两个定足数集合之间至少有一个共同节点。这个共同节点确保信息的一致性,即便存在恶意节点。
数学依据
考虑一个系统中总共有 \(n = 3f + 1\) 个节点,其中最多 \(f\) 个节点可能是拜占庭故障节点。为确保共识的正确性和安全性,我们需要以下条件:
Quorum Size:
- 每个定足数(quorum)包含至少 \(2f + 1\) 个节点。
Intersection Property:
- 任意两个定足数集合之间至少有一个公共节点。假设有两个定足数 \(Q_1\) 和 \(Q_2\),其中 \(Q_1\) 和 \(Q_2\) 均包含 \(2f + 1\) 个节点。我们需要证明 \(Q_1\) 和 \(Q_2\) 之间至少有一个节点是公共的。
证明
我们有总共 \(n = 3f + 1\) 个节点:
假设不相交:
- 如果假设 \(Q_1\) 和 \(Q_2\) 没有交集,那么 \(Q_1\) 和 \(Q_2\) 的节点总数将会是 \((2f + 1) + (2f + 1) = 4f + 2\)。
矛盾:
- 由于总体只有 \(3f + 1\) 个节点,而 \(4f + 2\) 大于 \(3f + 1\),这与总节点数冲突,因此 \(Q_1\) 和 \(Q_2\) 必然至少有一个公共节点。
结论:
- 因此,任意两个包含 \(2f + 1\) 个节点的定足数必然至少有一个公共节点。这就是标准多数交集特性的核心。
应用场景
共识算法(例如拜占庭容错共识算法,如 PBFT、Tendermint):
- 在这些共识算法中,参与者必须就某一事务(如交易、状态更改)达成一致。标准多数交集特性确保即使部分节点是恶意的,只要诚实节点占多数(\(2f + 1\)),系统能够达成安全的一致性。
分布式数据库:
- 在分布式数据库中,更新和查询需要通过多数集合来确保数据的强一致性和可用性。
可靠性和容错性:
- 通过确保定足数之间的交集特性,系统能够有效地防止数据一致性问题,即便存在网络分区或节点故障。
Standard Quorum Intersection的更多相关文章
- Paper Reading_Distributed System
最近(以及预感接下来的一年)会读很多很多的paper......不如开个帖子记录一下读paper心得 Mark一个上海交通大学东岳网络工作室的paper notebook Mark一个大神的笔记 Ed ...
- Gym 100952J&&2015 HIAST Collegiate Programming Contest J. Polygons Intersection【计算几何求解两个凸多边形的相交面积板子题】
J. Polygons Intersection time limit per test:2 seconds memory limit per test:64 megabytes input:stan ...
- Introducing XAML Standard and .NET Standard 2.0
XAML Standard We are pleased to announce XAML Standard, which is a standards-based effort to unify X ...
- Codeforces Round #506 (Div. 3) C. Maximal Intersection
C. Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input stan ...
- 一篇很好的解释了.Net Core, .Net Framework, .Net standard library, Xamarin 之间关系的文章 (转载)
Introducing .NET Standard In my last post, I talked about how we want to make porting to .NET Core e ...
- codeforces D. Area of Two Circles' Intersection 计算几何
D. Area of Two Circles' Intersection time limit per test 2 seconds memory limit per test 256 megabyt ...
- CF1029C Maximal Intersection 暴力枚举
Maximal Intersection time limit per test 3 seconds memory limit per test 256 megabytes input standar ...
- 理解 .NET Platform Standard
相关博文:ASP.NET 5 Target framework dnx451 and dnxcore50 .NET Platform Standard:https://github.com/dotne ...
- [LeetCode] Intersection of Two Arrays II 两个数组相交之二
Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...
- [LeetCode] Intersection of Two Arrays 两个数组相交
Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...
随机推荐
- 【ClickHouse】0:clickhouse学习2之数据类型
一 :如何查看clickhouse具体支持哪些数据类型? 1:查看官方文档:https://clickhouse.tech/docs/en/sql-reference/data-types/ 2:查看 ...
- Qt--共享内存监听工具
共享内存概述 共享内存的特点: 1)共享内存是进程共享数据的一种最快的方法. 一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容. 2)使用共享内存要注意的是多个进程 ...
- 关于ComfyUI的一些Tips
关于ComfyUI的一些Tips 前言: 最近发的ComfyUI相关文章节奏不知道会不会很快,在创作的时候没有考虑很多,想着把自己的知识分享出去.后台也看到很多私信,有各种各样的问题,这是我欠缺考虑了 ...
- 「悬浮捷径SoftCircle」安卓平台的hao123,一键打开万物
罗老师的onestep一步发布之前, 终端的打开形式还拘泥于桌面和负一屏 这种方式够简洁,但缺点明显: 1.入口单一性:只能在app首页和各种扫一扫之间选择和切换 2.操作复杂:入口切换需要频繁的进入 ...
- sshd管理限制登录配置(centos7.9)
背景情况:为了公网的主机,被无限的密码爆破,需要对主机的ssh进行安装加固 1.首先要禁用root的远程登录和修改ssh的端口 vi /etc/ssh/sshd_config# 修改端口,不适用22端 ...
- WCF异常System.ServiceModel.ProtocolException问题处理
现象: 最近遇到了WCF 服务无法调用的错误,异常如下. System.ServiceModel.ProtocolException, System.ServiceModel, Version=4.0 ...
- 测试思想-流程规范 用例优先级定义与使用规范 V1.0
用例优先级定义与使用规范 V1.0 By:授客 1. 规范说明 目的 对软件测试过程中的用例级别进行详细描述及标准化定义,明确不同测试阶段的测试范围,减少测试冗余投入,提高测试效率,建立 ...
- 使用 useRequestEvent Hook 访问请求事件
title: 使用 useRequestEvent Hook 访问请求事件 date: 2024/7/23 updated: 2024/7/23 author: cmdragon excerpt: 摘 ...
- 【IDEA】DEBUG调试问题
不要将断点打在方法的声明上: 会有一个菱形标志,在标记之后运行DEBUG模式会跑不起来 查看所有的断点标记: 在这里直接找到所有标记位置,弄掉就会跑起来了
- 【Docker】07 部署挂载本地目录的Tomcat
1.拉取Tomcat镜像: docker pull tomcat:9.0.37 2.创建并运行Tomcat容器: 挂载容器的webapps目录到本机(宿主机)自己设置的目录 docker run -d ...