区块链时代的拜占庭容错:Tendermint (八)

2024-02-19 16:20

本文主要是介绍区块链时代的拜占庭容错:Tendermint (八),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文题目:《Tendermint: Byzantine Fault Tolerance in the Age of Blockchains》

原文作者:Ethan Buchman

本文为节选

 

性能和容错

Tendermint被设计为拜占庭容错的状态机复制算法。只要不超过总量的三分之一的验证人是拜占庭节点,就能保证网络的安全性,并且只要网络消息最终得到传递,即使对于gossiping提议的网络同步性假设很弱,它也能保持运行。在发生此类故障时,Tendermint共识的落实不会影响安全性,它会对性能产生最小的影响,并且可以快速恢复。 可以通过几种关键的方式来评估Tendermint算法的性能。最明显的衡量指标是块提交时间,它是衡量最终延迟的指标,也是衡量交易吞吐量的网络容量指标。我们在网络上收集每个分布在地球上的验证人节点的测量值,其中验证人的数量范围是2的倍数,从2到64。

 

概览

可以使用https://github.com/tendermint/network_testing 上的代码库重现本章中的实验。 所有实验都在t2.medium或c3.8xlarge的Amazon EC2实例上运行的docker容器中进行。 t2.medium有2个CPU和4GB RAM,c3.8xlarge有32个CPU和60GB RAM。 实例分布在七个数据中心,跨越五大洲。 负责生成交易的第二个docker容器在每个实例上运行。 交易大小为250字节(包括一些32或64字节的哈希和签名的合理大小),并且构造为可调试的方式,也便于快速生成指令,并且也包含了一些随机性。 因此,前导字节是表示该实例的交易编号和验证人索引的Big-Endian编码整数,从操作系统中随机抽取尾随的16字节,并且中间字节仅为零。

 

网络监控工具用于维护每个验证人节点的Tendermint RPC服务器的活跃websocket连接,并在第一次收到新的已提交块时使用其本地时间作为该块的正式提交时间。 首先在没有监控的情况下运行实验,方法是复制验证人节点中的所有数据进行分析,并使用提交块的2/3验证人节点的本地时间作为提交时间。 使用监控要快得多,适合在线监视,只要只有块头信息(而不是整个块)通过websocket传递,就不会影响到结果。

 

使用docker-machine工具可以轻松管理远程计算机上的Docker容器,并且网络测试存储库提供了一些工具,这些工具利用Go语言的并发功能在多个远程计算机上同时对docker容器执行操作。

 

每个验证人节点直接相互连接,以避免网络拓扑的混淆影响。

 

对于涉及崩溃故障或拜占庭行为的实验,故障节点的数量取决于Nfault = ⌊(N − 1)/3⌋,其中N是验证人节点的总数。

 

吞吐量和延迟

本节描述了测量Tendermint在非对抗条件下(编者注:作者意指不考虑拜占庭节点等容错的情况)的原始性能的实验,其中所有节点都在线并同步,并且没有为异步做出调整。 也就是说,使用了极高的TimeoutPropose(10秒)参数,并且所有其他超时参数都设置为1毫秒。 此外,所有mempool活动都被禁用(没有交易的gossiping亦或在提交完成后的复检),进程内的nil应用程序为了绕过TMSP。 

 

实验基于验证人集合运行,集合大小从2增加到64,块大小从128到32768加倍。每个验证人节点都预先加载了交易。每个实验运行16个区块。

 

从图1中可以看出,Tendermint每秒可以轻松处理数千个交易,大约有一秒的出块延迟,尽管每秒大约有一万个交易处理容量限制。 16384个交易的块大小约为4 MB,并且网络带宽分析显示每个连接容易达到20MB / s以上,但是对日志的分析表明,在达到高的区块高度时,验证人节点可能花费超过两秒的时间来等待块部件。 此外,如图2所示,单个数据中心的实验表明,可以实现更高的吞吐量,而在更好的机器上进行的实验表现出更一致的性能,从而减轻了容量限制,如图3所示。 我们将此容量限制的进一步调研留待未来的工作。

 

图1:延迟-吞吐量权衡。 较大的块会导致交易吞吐量逐渐减少,最终容量约为10,000 txs / s

图2:单个节点的情况。 当消息不需要通过网络时,Tendermint每秒可以进行数万次交易。

图3:大型机。 使用32个vCPU和60GB RAM,交易吞吐量随块大小线性增加,从而减轻了较小机器上的容量限制。

 

在后续的实验中将注入各种形式的故障并呈现延迟统计。 对于不同的TimeoutPropose值,以及块大小为2048个交易,每个实验运行的验证人集合大小从4增加到32。

 

死机故障

为了评估遭受节点崩溃故障的网络的性能,每隔三秒就会随机选择,停止并在三秒钟后重新启动Nfault个验证者。

表1中的结果表明,此崩溃故障情形下的性能下降了约50%,而较大的TimeoutPropose值有助于减轻延迟。 虽然平均延迟增加到大约两秒,但中位数接近一秒,并且延迟可能高达十甚至二十秒,虽然极端情况可高达七十秒。 而将TimeoutPropose修改为略微的不确定性可以缓解这种极端延迟的可能性。

表1:崩溃 - 故障延迟统计信息。 每三秒钟,一次随机选择的Nfault个验证者崩溃,并在三秒钟后重新启动。 此崩溃重启过程持续了200个块。 对于TimeoutPropose参数的不同值,每个表都报告出块延迟的最小值,最大值,平均值,中位值和第95百分位数(95th percentile)。

 

随机网络延迟

另一种形式的故障,可能归因于拜占庭行为或网络异步,是为每次读取和写入网络连接注入随机延迟。在这个实验中,在每次网络连接的每次读写之前,验证者的Nfault都会休眠X毫秒,其中X统一绘制在(0,3000)上。 从表2中可以看出,延迟与崩溃失败情况类似,但增加TimeoutPropose会产生相反的效果。 由于并非所有验证人节点都有错误,因此TimeoutPropose的小值允许快速跳过错误的验证人节点。如果所有验证人节点都受到网络延迟的影响,则预期较大的Timeout-Propose值将减少延迟,因为不会有无错误的验证人节点跳过,并且将提供更多时间来接收延迟的消息。

 

表2:随机延迟延迟统计。 Nfault个验证者设置为在每次读取和写入之前注入随机延迟,其中延迟时间在(0,3000)毫秒上均匀选择。

 

拜占庭式的失败

通过对状态机的以下修改,可以注入更明确的拜占庭故障:

  • 相互矛盾的提案:在提出建议时,拜占庭验证员会分别签署两个相互冲突的提案并进行广播,同时进行投票前和预先提交,以分离其连接对等体的一半。

  • 没有nil票:拜占庭验证者从不签署一次空的投票(nil-vote)。

  • 签署每个提案:拜占庭验证者提交投票前和投票一看到它就会预先提交它看到的每个提案。 

 

总之,这些行为明显违反了双重签名和锁定规则。 但请注意,这种行为主要是由于冲突提案的广播,以及最终提交其中一个提案。 更复杂的拜占庭策略则有待后续的工作。


虽说注入了拜占庭故障会导致许多系统完全立即失效,但Tendermint保持了可观的延迟,如表3所示。 由于这些故障与异步处理几乎没有关系,因此TimeoutPropose没有真正可辨别的效果。性能也随着更大的验证者集合而下降,这可能是处理拜占庭投票的一个想当然结果。

 

相关工作

本章节中的吞吐量实验基准测试了PBFT实现的性能和称为HoneyBadgerBFT的新随机BFT协议。 在他们的结果中,PBFT在四个节点上每秒实现超过15,000次交易,但随着节点数量的增加呈指数衰减,而HoneyBadgerBFT每秒可实现10,000到15,000次交易的比较均匀的性能。 然而,HoneyBadgerBFT中的出块延迟要高得多,对于大小为8,16和32的验证人集合,接近10秒,对于较大的验证人集合则更接近10秒。

 

用于研究共识实现的众所周知的工具是Jepsen (译者注:JEPSEN - Distributed Systems Safety Analysis. http://jepsen.io.),它用于通过模拟多种形式的网络分区来测试数据库的一致性保证。 使用Jepsen测试Tendermint仍然是未来工作中一个令人感到兴奋的领域。

 

结论

作者和Jae Kwon编写的Tendermint的实现很容易在全球分布的机器上实现每秒数千个交易,最多64个节点,延迟大多在一到两秒范围内。 这也使它与其他解决方案竞争激烈,尤其是区块链的当前状态,例如比特币,支持每秒约7笔交易。 此外,我们的软件实现体现出即使面对崩溃故障、消息延迟和故意的拜占庭故障等都是健壮的,在每个方案中也能够保持每秒超过一千个交易。

表3:拜占庭故障延迟统计。 拜占庭验证人提出冲突的阻止,并在他们看到任何提案后立即对其进行投票。 对于TimeoutPropose参数的不同值,每个表都报告出块延迟的最小值,最大值,平均值,中位值和第95百分位数。

 


至此,论文《Tendermint: Byzantine Fault Tolerance in the Age of Blockchains》中文译名《区块链时代的拜占庭容错:Tendermint》系列的核心内容一共八篇译文,全部推送完毕。

 

相关阅读:

区块链时代的拜占庭容错:Tendermint(一)

区块链时代的拜占庭容错:Tendermint(二)

区块链时代的拜占庭容错:Tendermint(三)

区块链时代的拜占庭容错:Tendermint (四)

区块链时代的拜占庭容错:Tendermint (五)

区块链时代的拜占庭容错:Tendermint(六)

区块链时代的拜占庭容错:Tendermint (七)

这篇关于区块链时代的拜占庭容错:Tendermint (八)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

内卷时代无人机培训机构如何做大做强

在当今社会,随着科技的飞速发展,“内卷”一词频繁被提及,反映了各行业竞争日益激烈的现象。对于无人机培训行业而言,如何在这样的时代背景下脱颖而出,实现做大做强的目标,成为每个培训机构必须深思的问题。以下是从八个关键方面提出的策略,旨在帮助无人机培训机构在内卷时代中稳步前行。 1. 精准定位市场需求 深入研究市场:通过市场调研,了解无人机行业的最新趋势、政策导向及未来发展方向。 明确目标

数据库遇上知识图谱、区块链、深度学习

参考资料: https://zhuanlan.zhihu.com/p/33381916 https://www.zuozuovera.com/archives/1062/ 东南大学D&Intel Lab相关ppt 数据库的核心概念——表示、存取、查询 有了数据库是干什么,大概实现的逻辑,特点,才能引申出对当今这些新技术的对比、适应和发展。 目的:研究数据表示、存取数据模型:表示数据的模型,通

数字经济时代,零售企业如何实现以消费者为中心的数字化转型?

在数字经济时代,零售企业正面临着前所未有的挑战与机遇。随着消费者行为的数字化和多样化,传统的零售模式已难以满足市场需求。为了在激烈的市场竞争中立于不败之地,零售企业必须实现以消费者为中心的数字化转型。这一转型不仅仅是技术的升级,更是一场涉及企业战略、组织结构、运营模式和人才管理的深刻变革。本文将探讨零售企业在数字化转型过程中遇到的难点,并提出相应的解决策略,通过实际案例分析,展示如何通过综合措施进

人工智能时代开启ai代写模式,让创作变得更加简单!

随着人工智能技术的飞速发展,我们的生活和工作方式正在发生翻天覆地的变化。在这个信息爆炸的时代,内容创作领域也迎来了新的变革——ai代写。这一模式的出现,让文章写作变得更加简单高效,为创作者们打开了新的可能。   一、ai代写的优势   提高写作效率   在传统写作过程中,创作者需要花费大量时间和精力进行资料搜集、构思和撰写。而ai代写能够在短时间内完成这些工作,大大提高了写作效率。创

站在 AI 与 Web3 的交汇路口,EraAI 如何带领投资者进入智能化决策时代?

“基于 AI 、区块链等前沿技术,通过与 D3X 等伙伴的深入合作,EraAI 正在以智能化的方式带领投资者们开启“向前看”的全新时代。” 01 二八定律 金融市场并不缺乏投资者,而是缺乏聪明的投资者,事实上,聪明的投资者总能通过深入研究并制定有效的投资策略,把握市场中的关键机会。无论行情如何、无论市场周期如何亦是如此。 早在 1896 年,意大利经济学家 Vilfredo Pa

彩虹数字屏保时钟 芝麻时钟开启个性化的时代 屏保怎么能少它

彩虹数字屏保时钟 芝麻时钟开启个性化的时代 屏保怎么能少它?电脑屏保多样化,让大家有了更多的选择,让更多人有机会把自己的电脑打扮得漂漂亮亮,今天小编给大家推荐:芝麻时钟(官网下载地址:http://clock.zhimasoft.cn/?bili),一起看下怎么开启彩虹数字时钟屏保吧! 彩虹数字屏保时钟 1、先下载芝麻时钟到电脑,可以百度,或者微软应用商城搜索“芝麻时钟”下载;

AI时代产品经理面临的变与不变:0经验求职产品经理要注意哪些细节?

AI时代,各种产品形态、业务的变化,让市场也对产品经理提出了新的要求,产品经理要有哪些变与不变呢?现在入行产品经理是好时机么?没有技术背景、没有学历有优势如何入行做产品经理?今天我们一起探讨一下! 产品人究竟需要具备哪些能力?看这个最新的能力模型图就知道了。 随着当前市场的细分,不同行业和领域对产品经理的能力要求已经从单一的具备产品专业能力演变成了兼具产品专业技能+行业/业务知识

区块链技术介绍

一.概述 1.什么是区块链?   区块链是一种分布式数据库技术,它以链式数据结构的形式存储数据,每个数据块与前一个数据块相关联,形成了一个不断增长的数据链。每个数据块中包含了一定数量的交易信息或其他数据,这些数据经过加密和验证后被添加到区块链上。由于每个数据块都包含了前一个数据块的哈希值,因此任何尝试篡改数据的行为都会被迅速地检测出来。 2.区块链技术的起源   区块链的起源可以追溯到