使用Pilotfish扩展Sui执行能力

Pilotfish第一个多机智能合约执行引擎,使Sui网络的验证节点可以利用多台机器,并在负载增加时自动扩展以执行更多的交易。这一目标实现不会影响可靠性或功能完整性。

Pilotfish可以从内部执行机器的故障中恢复,并支持Sui的全面动态操作。其流式架构导致非常低的延迟性。我们对Pilotfish与Sui集成的性能评估表明,在使用八台服务器进行执行时,吞吐量最多增加了八倍,显示了对于计算受限负载的线性扩展。

执行面临的挑战

惰性区块链是一种有前景的新兴设计架构,将交易排序(共识)和执行解耦。在这种设计中,一个排序层对交易进行排序,然后在稍后的时间,执行层执行交易序列。这使得最先进的区块链系统可以使用现代共识算法(如Bullshark和Hammerhead)对大量交易进行排序(每秒约10万笔交易)。然而,执行性能一直落后,如今执行成为了瓶颈。例如,以太坊虚拟机在执行简单交易时据报道峰值只能达到每秒2万笔交易。

分批处理:高延迟的解决方案

解决执行瓶颈的一种方法是分批处理。通过构建大量交易的批次或区块,并将它们作为一个单元提交以执行,可以在不对架构进行重大更改的情况下实现高吞吐量。然而,分批处理的代价是高延迟。分批处理执行的延迟通常在几百毫秒,对于像Sui这样的低延迟区块链来说是不可忽视的。

Pilotfish在引入了可以忽略延迟性的同时实现了高吞吐量,延迟在十几毫秒到几十毫秒的范围内,采用了Sui已经使用的流处理方法进行多核执行。

纵向扩展与横向扩展

实现高吞吐量同时保持低延迟的一种方式是横向扩展,即单台机器上的并行交易执行,一些区块链,包括Sui,成功地采用了这种模式。这种方式的优势在于不需要进行巨大的架构更改。验证节点已经完全位于一台机器上,只需在保持交易因果关系的同时并行执行交易而不是顺序执行即可。

采用纵向扩展方法,一旦当前负载超出了当前机器的处理能力,您唯一的选择就是升级到更强大的机器。但是这种解决方案的持续性有限。服务器上只能容纳那么多CPU核心,那么多内存等。因此,如果负载不断增长,最终会超出任何单台机器的处理能力。更令人沮丧的是,可能不仅是CPU会枯竭,而且机器的任何单一资源都可能枯竭。即使当前验证节点机器在CPU方面并未饱和,也可能会耗尽内存容量,并被迫依赖于缓慢的持久性存储,从而拖慢整个流程。最后,依赖单一强大机器对区块链空间来说并不友好,因为强大的机器很少,并且只有少数数据中心提供商支持。

解决执行瓶颈的另一种方法,由Pilotfish在区块链领域开创,是通过在多台机器上进行分布式交易执行进行横向扩展。横向扩展方法的优势在于它具有无限扩展的潜力。当负载超出当前机器数量的能力时,我们只需增加更多的机器,从根本上保证我们永远不会耗尽资源,也永远不必依赖于关键路径上的缓慢持久性存储。这种方法的另一个优势是它与纵向扩展方法是正交且相容的。最后,它还可以更容易地实现去中心化,防止硬件提供商出现“单一文化”。相比于单一超强大机器,多个小型机器有着更大的市场。

Pilotfish的工作原理

以下是Pilotfish如何在多台机器上分发交易执行的过程。每个验证节点内部分为三个逻辑角色:(1)主要角色,负责共识,(2)顺序工作者(SWs),负责存储交易并将其分派给执行;(3)执行工作者(EWs),负责存储区块链状态并执行来自SWs的交易。

一个潜在的Pilotfish部署使用一个主要角色,以及三个顺序工作者和三个执行工作者。

除了主要角色始终是单台机器外,这些角色中的每一个都可以在一个或多个机器上实例化。请注意,组成验证节点的机器彼此信任(它们由同一实体运行),因此它们不需要沉重的拜占庭容错(Byzantine Fault Tolerant,BFT)协议来协调。只有当主要角色与其他节点交互时,主要角色才需要BFT。

Pilotfish能够扩展的原因在于SWs和EWs对状态进行了分片。每个交易被分配给一个单独的SW,每个区块链对象被分配给一个单独的EW。请注意,这与验证节点间的分片不同,验证节点被分配了状态的不同子集。在Pilotfish中,所有验证节点都被分配了整个状态,而分片发生在使用多台机器的每个验证节点内部。

在理想的世界中,每个交易只会访问来自一个分片的对象,因此分发交易执行将是将每个交易分派到其适当的EW分片。然而,在现实世界中,交易通常会访问来自多个分片的对象。为了处理这样的跨分片交易,Pilotfish的EWs会根据需要交换对象数据,以确保指定执行给定交易的EW在开始执行之前始终具有所需的对象数据。

在这个Pilotfish的示例部署中,一个SW和三个EW处理由主要角色接收的交易。

在上面的图表中,主要角色与其他验证节点的主要角色交互以将交易排序(➊)。 SW从主要角色接收交易排序信息,并将交易分派给适当的EW(➋)。在上面的示例中,当前交易T访问来自分片EW1和EW3的输入对象,因此SW只将T分派给这些EW。然后EW1和EW3分别针对可能与T冲突的其他交易进行调度(关于我们的调度算法更多内容,请参阅完整论文)(➌)。一旦T准备执行,EW1和EW3将适当的对象数据发送给T的指定执行者(在本例中,指定执行者是EW1,因此只需要EW3发送对象)。一旦EW1具有了所有所需的对象数据,它就执行T(➍)并将输出效果发送给所有的EW。每个EW都会对其拥有的对象进行本地更改(➎)。

其他基本原理

除了这个基本的交易流程外,阅读我们的完整论文以了解:

  • 我们如何调度交易以允许非冲突交易的并行执行。
  • 我们如何处理和从分片崩溃中恢复。
  • 我们如何在动态字段上实现读写操作。

实验结果简要介绍

快速浏览以下实验结果,该论文包含实验设置和结果的完整细节。

在下面的延迟与吞吐量图中,每个数据点代表一个实验运行,其中SequencingWorker以固定速率提交交易,持续时间为五分钟。我们实验性地增加发送到系统的交易负载,并记录执行交易的中位吞吐量和延迟。因此,所有的图表都展示了在低负载下所有系统的稳态延迟以及它们可以提供的最大吞吐量,之后延迟迅速增长。这是延迟突然增加到超过20毫秒的吞吐量。

我们强调,在所有的实验中,交易都是按照流式方式逐个提交的,而不是分批处理。对于Sui来说,这点尤为重要,因为它会在交易被批准后,异步处理快速通道交易,然后才会在共识提交中进行批处理。Pilotfish还支持批处理,这会显著提高吞吐量,但(当然)也会导致更高的延迟。

在这个第一个工作负载中,每个交易都是从一个地址向另一个地址转移硬币。我们生成的交易保证没有两个交易发生冲突。每个交易都操作来自其他交易不同的对象集。因此,这个工作负载是完全可并行化的。

延迟与吞吐量在简单转账方面:Pilotfish保持低延迟(<20毫秒)。

我们观察到,无论EW的数量如何,Pilotfish都能保持低于20毫秒的延迟。值得注意的是,我们还观察到随着添加更多的EW,每个交易的延迟会降低。在延迟为6到7毫秒的情况下,配置了八个EW的系统处理的单个转账数量比只有一个EW的配置要多五到六倍。

请注意,当工作负载增加时,对于单个执行工作者来说,延迟会呈线性增长,主要是因为交易排队的影响。更具体地说,单台机器没有足够的核心来充分利用工作负载的并行性,因此一些交易必须等待进行调度。对于更多的执行工作者,这种影响不再存在,这说明增加更多的硬件有利于通过降低执行延迟来降低服务时间。

在这种工作负载下,Pilotfish的可伸缩性并非完全线性。特别是,随着执行工作者数量的增加,吞吐量的边际改善逐渐减小。这是由于计算轻量级的简单转账工作负载以及吞吐量不受计算限制所致。因此,增加更多的CPU资源不再以相应地提高性能。下图展示了当工作负载受计算限制时,增加执行工作者数量的好处。

为了说明计算强度的影响,我们在每个交易中添加了一些合成计算。为简单起见,我们将迭代的斐波那契计算作为我们的合成计算。例如,在下面的图表中,“Fib-2500”表示每个交易计算第2500个斐波那契数。该图表显示了Pilotfish的最大吞吐量随着EW数量的增加而扩展的情况,针对三个不同的计算强度级别(Fib-2500是最低的,Fib-10000是最高的)。作为基准,我们包含了Sui基准的性能,该基准在单个计算机上运行,并且无法利用额外的硬件。

正如图表所示,在这种情况下,Pilotfish的吞吐量随着可用EW数量的增加呈线性增长,最多可达到八个EW的八倍吞吐量,接近理想状态。

计算密集型工作负载下的可扩展性:在计算成为瓶颈的情况下,Pilotfish可以实现线性扩展。

下一步是什么?

目前,Pilotfish是一个概念验证,它表明在惰性区块链中可以实现良好的分布式执行扩展性,而不会影响延迟。特别是,我们展示了高度分布式的执行器可以实现低延迟执行和更高的吞吐量,即使对于简单的转账也是如此。此外,对于计算密集型智能合约,我们展示了随着我们增加更多执行资源,吞吐量几乎实现了理想的增加。

Pilotfish为智能合约中的廉价计算开辟了道路,消除了一个CPU密集型合约的执行会对其他智能合约产生负面影响的担忧。

在下一次迭代中,我们计划实现并测试支持超过一个SW、分片复制和故障恢复,并支持超快速的远程直接内存访问网络。我们正在通过工程优化来改进我们的原型,添加这些功能并提高其端到端的性能。


关于 Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/506771.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openstack云计算(一)————openstack安装教程,创建空白虚拟机,虚拟机的环境准备

1、创建空白虚拟机 需要注意的步骤会截图一下&#xff0c;其它的基本都是下一步&#xff0c;默认的即可 ----------------------------------------------------------- 2、在所建的空白虚拟机上安装CentOS 7操作系统 &#xff08;1&#xff09;、在安装CentOS 7的启动界面中…

杨元庆:AI是创新者的赛跑,必须打造自研自创产品

在2024/25财年誓师大会上&#xff0c;联想集团董事长兼CEO杨元庆宣布公司未来十年的新使命——引领人工智能变革。在杨元庆看来&#xff0c;这次誓师大会吹响了联想第五个十年征程集结号&#xff1a;在联想稳健穿越周期、恢复增长&#xff0c;迎来成立40周年的里程碑时刻&#…

【嵌入式智能产品开发实战】(十二)—— 政安晨:通过ARM-Linux掌握基本技能【C语言程序的安装运行】

目录 程序的安装 程序安装的本质 在Linux下制作软件安装包 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 嵌入式智能产品开发实战 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xf…

机器学习 -- 随机森林DEMO

场景 之前看一些歌手或者演员选取节目的时候&#xff0c;上面不是一个评委&#xff0c;少则三五个&#xff0c;多则几十个&#xff0c;当做重要决定时&#xff0c;大家可能都会考虑吸取多个专家而不只是一个人的意见。机器学习也是一样的&#xff0c;机器学习中分为两种&#…

开源AI引擎:自然语言处理技术在人岗匹配中的应用

一、应用场景介绍 如何从海量的求职者中精准地匹配到合适的候选人&#xff0c;是每个人力资源部门都需要解决的问题。自然语言处理&#xff08;NLP&#xff09;技术的发展为人岗匹配提供了新的解决方案。通过信息抽取和文本分类技术&#xff0c;企业可以更高效地分析职位描述和…

数据结构堆

前言&#xff1a; 在前面我们已经学习了数据结构的基础操作&#xff1a;顺序表和链表及其相关内容&#xff0c;今天我们来学一点有些难度的知识——数据结构中的二叉树&#xff0c;今天我们先来学习二叉树中堆的知识&#xff0c;这部分内容还是非常有意思的&#xff0c;下面我们…

苹果App上架指南

苹果上架要求是苹果公司对于提交应用程序到苹果商店上架的要求和规定。这些要求主要是为了保证用户体验、应用程序的质量和安全性。以下是苹果上架要求的详细介绍&#xff1a;1. 应用程序的内容和功能必须符合苹果公司的规 苹果上架要求是苹果公司对于提交应用程序到苹果商店上…

APS54083 大功率深度调光降压恒流驱动IC PWM 线性调光 车灯IC

特点 ◆ 宽输入电压范围&#xff1a;5V&#xff5e;100V ◆ 可设定电流范围&#xff1a;10mA&#xff5e;2000mA ◆ 固定关断时间控制 ◆ 内置抖频电路&#xff0c;降低对其他设备的 EMI 干扰 ◆ 过温保护 ◆ 调光功能&#xff1a;线性调光/PWM 调光 ◆ PWM 调光深度小于…

机器学习——卷积的变种

机器学习——卷积的变种 卷积神经网络&#xff08;Convolutional Neural Networks, CNNs&#xff09;是深度学习领域中最重要的技术之一&#xff0c;它在图像处理、语音识别、自然语言处理等领域取得了巨大成功。在CNN中&#xff0c;卷积层是最核心的组成部分之一&#xff0c;…

【解决方案】荣耀系统Android8.0 system目录Read-only file system

本来以为直接把Charles证书改成系统证书格式&#xff0c;然后通过mt管理器root之后移动到系统证书目录就行了&#xff0c;结果访问baidu仍然显示网络错误&#xff0c;折腾一晚上。安装为用户证书&#xff0c;又与系统证书冲突。 手机型号&#xff1a;荣耀v10 EMUI&#xff1a…

ALPHA开发板上的PHY芯片驱动:LAN8720驱动

一. 简介 前面文章了解到&#xff0c;Linux内核是有提供 PHY通用驱动的。 本文来简单了解一下ALPHA开发板上的 PHY网络芯片LAN8720的驱动。是 LAN8720芯片的公司提供的 PHY驱动。 二. ALPHA开发板上的PHY芯片驱动&#xff1a;LAN8720驱动 我 们 来 看 一 下 LAN8720A 的 …

Linux系统下安装ElasticSearch

一、228环境ES使用安装 1、检验ES服务是否安装成功的方法 &#xff08;1&#xff09;查看Elasticsearch进程是否成功 ps -ef|grep elasticsearch &#xff08;2&#xff09;linux elasticsearch下访问&#xff08;curl带认证访问&#xff09; curl --user elastic:Zhes.13…

基于ssm的企业台账管理平台(java项目+文档+源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的企业台账管理平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 管理员&#xff1a;首页、个人…

使用argocd作为cd流程

一、前言 讲述关于argocd在cicd流程中的使用&#xff0c;ci这里使用gitlabjenkins流水线的方式&#xff0c;jenkins用于拉代码打包、构建镜像、变更yaml文件的镜像、推送变更的yaml文件到gitlab的gitops仓库中&#xff0c;最后再有argocd实现cd流程&#xff0c; 二、使用 关于…

抢占AI算力头筹,宁畅发布全局智算新战略AI算力栈

1、在以大模型为焦点的新一轮AI竞赛中&#xff0c;智能计算作为推动产业发展的关键引擎&#xff0c;已经不再局限于算力性能这一单一竞争要素。 2、算法协同优化、数据处理能力、模型可解释性以及与特定行业应用的融合度&#xff0c;都成为了智能计算能否成功推动技术创新和实际…

用可视化案例讲Rust编程5.用泛型和特性实现自适配绘制和颜色设置

上一节我们讲了用泛型实现返回结果&#xff0c;这一节我们来讲讲在函数签名里面使用泛型来对输入参数进行自适配。 先看UML设计图&#xff1a; 好吧&#xff0c;看起来有点复杂&#xff0c;我们一个个来解释。 首先定义的是一个生成绘图元素需要的参数结构,并且定义个特性&am…

紫外线吸收剂为光稳定剂代表产品 塑料及化妆品领域为其主要需求端

紫外线吸收剂为光稳定剂代表产品 塑料及化妆品领域为其主要需求端 紫外线吸收剂指能吸收阳光及荧光光源中的紫外线部分的一种光稳定剂。紫外线吸收剂具有热稳定性好、可吸收紫外线、化学稳定性好、能增强目标物色泽稳定性、毒性低等优势&#xff0c;在塑料、化妆品、纺织品、涂…

大厂级别交互设计秘籍:一篇读懂

交互式设计属于UI设计之一&#xff0c;也是当今流行的设计之一。许多大型工厂非常需要交互式设计人才&#xff0c;这一趋势也引起了许多毕业生和UI设计爱好者的广泛关注&#xff0c;那么你知道大型工厂设计师必要的交互式设计是什么吗&#xff1f;这篇文章将带你了解。 什么是…

【PFA树脂交换柱】实验室高纯PFA材质过滤柱耐受电子级氢氟酸含氟树脂层析柱

PFA离子交换柱&#xff0c;也叫PFA层析柱、PFA过滤柱等&#xff0c;其原理是利用吸附剂对不同化合物有不同吸附作用和不同化合物在溶剂中的不同溶解度&#xff0c;用适应溶剂使混合物在填有吸附剂的柱内通过&#xff0c;使复杂的混合物达到分离和提纯的目的。 柱体为透明PFA材…

再生式收音机填坑记

年前踩坑再生式收音机&#xff0c;还是得找机会把坑填上&#xff0c;最终选定了K8TND的方案&#xff0c;其实与Mr. Kitchen的也基本差不多。电路图如下&#xff1a; 实物图如下&#xff1a; 实际接收效果还不错&#xff0c;但是感觉频段上哪哪都是中国之声&#xff0c;对这种…