欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

架构师深度拆解:Web3 需要什么样的存储系统?

时间:2023-06-28 16:46:52 | 浏览:239

写在前面文字产生以前,结绳记事是人类用来存储知识和信息的主要方式。此后,从竹简、纸张的发明,到工业时代的磁盘存储,再到信息时代的数据库,存储方式不断革新,“存力”不断提高。11月3日,在2022云栖大会上,蚂蚁链历经4年技术攻关与测试验证的

写在前面

文字产生以前,结绳记事是人类用来存储知识和信息的主要方式。此后,从竹简、纸张的发明,到工业时代的磁盘存储,再到信息时代的数据库,存储方式不断革新,“存力”不断提高。

11月3日,在2022云栖大会上,蚂蚁链历经4年技术攻关与测试验证的区块链存储引擎LETUS(Log-structured Efficient Trusted Universal Storage)正式发布。

这一款面向区块链可信数据存储的技术产品,不仅用来解决当前蚂蚁链及区块链产业的规模化发展问题,也面向Web3时代提供“可信存力”支撑。

我们认为,随着大量的数据和数字资产在数字化世界里流转,可信数据的“存力”将如同电力网络的承载力一样重要。

本文希望通过对LETUS的深入技术解读,回答读者们普遍关心的关键问题:LETUS是什么?主要解决哪些问题?为什么坚持用“可验证结构”?为什么要自研?以及未来要走向何处?

文 | LETUS技术负责人 田世坤01背景是什么?

从2009年序号为0的创世块诞生至今已过去十多年,“中本聪”依然神秘,但区块链技术的发展却因为公链、token、开源的推动,没有丝毫神秘感。

经过几代技术演进,在比特币的UTXO模型基础上诞生了应用更为广泛、支持可编程智能合约的区块链技术:通过密码学、共识算法、虚拟机、可信存储等技术,多个参与方执行相同的“指令”,来完成同一个业务逻辑,如账户转账,或者合约调用,维护不可篡改和不可伪造的业务数据。

简单讲,可将这类账本数据库,看作一个去中心化防作恶、防篡改的复制状态机,所执行的是智能合约描述的业务逻辑,而状态机通过日志 (区块数据)产生新的状态(状态数据):

区块数据:包括交易、回执、世界状态Root Hash等信息,和数据库系统中的日志类似,但是块之间由Hash锚定防篡改,并且不会删除。(区块数据记录的是区块链上发生的每一笔交易,如:Alice向Bob转账xx)

状态数据:记录账户、资产、业务合约数据等状态信息,和数据库系统中表数据类似,需要实现可验证可追溯。(状态数据记录的是区块链上每个账户或智能合约的当前状态,如:Bob账户剩余xx)

链上数据的特点可以总结为以下三个:

持续增长:从创世块开始,账本数据随交易持续增长,保留周期长;

多版本:交易修改状态数据产生新版本,系统提供历史版本查询和验证功能;

可验证:交易和账户状态通过Merkle根哈希(Merkle Root Hash)锚定在区块头,通过SPV(simple payment verification,简单支付证明)提供存在性证明;

区块链应用通过可验证数据结构(Authenticated Data Structure,如Merkle tree)实现可验证和可追溯。我们认为,Web3“存力”一个非常重要的要素是可验证,而今天我们看到的区块链存储瓶颈大多来源于可验证结构ADS(如Merkle tree)的低效存取和查询,这正是蚂蚁链LETUS重点攻克的难题。

02我们要什么?

随着时间推移和链上交易的增加,对存储容量的要求也不断增长,随之而来的是区块数据存储成本的大幅提升;与此同时,链上状态数据规模也持续增加,可验证数据结构持续膨胀,导致交易性能随账户规模提升和历史状态数据增加而持续下降。

2019年,蚂蚁链上线了一个供应链金融业务,大家特别兴奋。但是,这种兴奋并没有维持多久,随着程序跑的时间越来越长,问题慢慢暴露出来。

供应链金融是面向ToB的,不像ToC端随时都有数据,可能会在某个时刻(比如每天晚上)有一笔状态数据非常大的交易进来,跑了一个星期后发现性能越来越慢。

链平台TPS的衰减和存储直接相关,而与共识、虚拟机都无关,随着业务合约持续写入数据,存储性能大幅衰减。

如果要在技术上长时间支持亿级账户规模、每天能稳定支撑亿级交易量,存储的规模和性能问题必须要攻克。

期间,团队也曾试过各种技术方法对他进行优化,得到一些缓解。但多次尝试之后发现,随着数量增加而出现的性能衰减,是一个绕不开的瓶颈,需要从本质上解决。

我们需要从问题表象分析背后的原因。

区块链应用通过可验证数据结构实现可验证和可追溯,但是可验证数据结构会带来读写放大(问题1)和数据局部性(问题2)

而存储系统为了实现数据管理,需要对数据分页/分层、排序,如KV数据库基于LSM-tree将数据分层有序存储,而MySQL之类的数据库将数据分页,也会基于B-tree数据结构来排序索引。

业界现有的实现方式,大多采用基于LSM架构的通用 Key-Value 数据库,在数据库之上运行一个独立Merkle树来实现可验证,如:

以太坊:MPT(Merkle Patricia Tree)+LevelDB

Diem:JMT(Jellyfish Merkle Tree)+RocksDB

背后的核心矛盾为:

01

Merkle树每次状态数据修改,即使只改一个KV,也需要从叶子节点到根节点,每一层节点都重新编码后,写到KV数据库,例如上图中Alice给Bob转账,需要写入Merkle树的2个叶子节点和3个中间节点,最坏情况需要写入数十个中间节点;

02

Merkle树的节点的key完全随机(如对内容算hash,再以hash为key),数据局部性(data locality)非常不友好,如RocksDB里为了让Level内sst文件有序,即使没有垃圾依然需要层层进行数据压实(compaction),从而消耗了大部分的磁盘读写带宽;

03

数据规模越大,Merkle树本身的层数越多,需要额外写入的key-value越多,DB里的数据量越多,后台数据管理的代价越大(如compaction流量),消耗大量的磁盘和CPU资源。

除此之外,吞吐、延时等存储性能(问题3)持续增长下的存储成本(问题4)单机存储下的规模瓶颈(问题5)也都是需要解决的问题。

03面临什么挑战?

在过去几年的快速发展中,区块链的业务场景对交易吞吐量和响应时间要求越来越高,很多技术也被推动迭代发展,如PBFT、HoneyBadger、MyTumbler等高性能共识算法,BTN等网络基础设施,JIT加持的WASM虚拟机、以及高效的并行执行技术。

但比较而言,存储的性能对区块链平台整体性能影响非常大。对面向2C场景的数字藏品类业务(如鲸探,需支持秒杀),交易TPS与延时要求极为苛刻;而对需要在链上保存大量数据的存证类业务,大容量存储带来的成本又十分可观。

要支撑业务的长期可持续发展,我们归纳出区块链存储面临的核心挑战:

规模:业务账户规模可达数10亿,状态数据和历史版本规模分别需要支撑到十亿、千亿级;

性能:转账交易需求可达十万级TPS、百毫秒级延时,要求性能不能受制于单机瓶颈,数据规模持续增长下性能不衰减;

成本:随着交易增长,存储容量持续增加,存储空间占用、节点间带宽占用居高不下。业务持续增长要求低成本存储。

这些问题在行业内很普遍。业界技术路线主要分三条:

路线A:弱化可验证可追溯,如HyperLedger Fabric 1.0开始不支持可验证和多版本,保存读写集、只持久化最新版本状态数据;

路线B:优化KV数据库存储,如实现键值分离、hash索引的KV数据库等(BadgerDB、ParityDB),接入通用分布式数据库(MySQL)等;

路线C:优化Merkle树,交易ID作为版本、树结构稀疏化,如Diem JMT。

根据公开信息,目前区块链产品中主流的MPT + LevelDB、JMT + RocksDB、MySQL等存储架构,没有能全部解决上述5个问题的方案,难以在支持多版本和可验证的同时,满足10亿级账户规模下的高性能、易扩展、低成本的业务要求。

04我们做到了什么?

我们自研了一套区块链存储引擎LETUS(Log-structured Efficient Trusted Universal Storage),保证完整的可验证、多版本能力,既满足区块数据不可篡改、可追溯、可验证等要求,也提供对合约数据友好访问、存储规模可分片扩展,高性能低成本等特性。同时也满足通用性,统一管理区块数据、状态数据。

LETUS在2022云栖大会发布

4年前不敢想象的能力,现在具备了(以下数据为统一环境下的测试结果):

01

大规模:通过存储集群扩展支持十亿账户规模,TPS超过12万,交易平均时延低于150ms;

02

高性能:存储层IO吞吐相比以太坊MPT + LevelDB等架构提升10~20倍,IO延迟降低90%以上。链平台在7x24高压力压测中,端到端TPS不随数据量增加而衰减;

03

低成本:相比MPT + LevelDB架构,磁盘带宽减少95%、空间占用减少60%;相比于Diem JMT + RocksDB架构,磁盘带宽减少约60%、空间占用降低约40%;

04

进一步降成本方案,供用户选用:

(a)针对区块数据容量与成本持续增长,提供智能控温分层存储能力,并应用于存证等业务降低约70%存储成本,同时也降低运维成本。

(b)针对状态数据的历史版本容量与成本持续增长,提供范围扫描的批量裁剪能力,实现历史版本状态数据的裁剪和后台空间回收,在十亿账户规模时,使用链原生存储可以减少近90%状态存储空间。

但这背后是一个技术架构的跨越,从下图左边的可验证数据结构+KV数据库架构,升级为现在的LETUS存储引擎,架构更简洁,系统更高效。

如Alice给Bob转账,只需要写增量数据,不需要写入7个Merkle树节点,数据局部性更友好,如Alice和Bob的账户数据,按区块号有序,不再hash随机。

05怎么做到的?

回顾这四年,主要经历的三个大的阶段。

阶段一:开源思路优化

第一年里,为了满足业务急迫诉求,我们需要在有限时间内,实现亿级账户规模和交易TPS。先从已有系统入手,深度优化了状态树,基于开源MPT到自研FDMT,同时调优RocksDB数据库、增加并发、提升介质性能。

一系列优化措施缓解了问题,但依然无法根本解决,例如数据规模增加后,写放大依然有几十倍,数据在底层存储里依然随机分布。

阶段二:自研存储引擎

为了能彻底解决上述所有问题,我们不得不重新思考存储引擎的设计。

核心设计

针对读写放大(问题1)、数据局部性(问题2)和性能(问题3),我们结合区块链特征,如可验证数据结构的读写行为、链上数据的多版本诉求、只追加和不可篡改等,重新设计存储引擎的架构分层、关键组件、索引数据结构:

根据区块链特征,我们根据可验证数据结构的读写行为、链上数据的多版本诉求,重新设计存储引擎的架构分层、关键组件、索引数据结构:

01

将可验证特性下推到存储引擎内部,由内置的Version-based(区块号)多版本Merkle树提供可验证可追溯,并且直接操作文件,从而缩短IO路径;

02

多版本Merkle树的Node聚合为page,提升磁盘友好性,page存储采用Delta-encoding思想避免in-place更新(结合Bw-tree思路),状态数据修改时主要保存增量,定期保存基线,从而减少写放大,也减少了空间占用;

03

为page存储实现Version-based的存储与检索,索引page都按区块号有序写入、在索引文件里有序总局,核心数据结构为B树变种,从而实现有序数据locality;

04

利用区块链场景数据的追加写、Immutable特点,架构上采用Log-Structured思想,通过日志文件来组织数据;

05

数据与索引分离,数据按区块号有序写入数据文件,通过异步IO、协程并发等提升系统并发度,索引多模,区块&状态通用,除Merkle树支持状态数据,实现有序B树支持区块数据;

06

当前最新版本Merkle树优先在内存里缓存或者全部缓存,链上合约执行时,如果存在则直接读取,不需要访问page来重放,从而加速合约执行。

基于这些核心设计,实现了成本降低的同时性能提升,链平台交易TPS、延时等性能指标不会随着数据规模的提升而衰减。

降成本

虽然存储资源占用大幅降低后,但是链上数据依然面临持续增长带来的高成本问题(问题4)。

基于LETUS架构的后台数据治理框架,我们能很方便的扩展实现数据迁移/压缩/垃圾回收等治理策略,基于这些策略,为用户提供进一步降成本能力,并针对自己的业务特点来选择使用:

(1)智能控温分层存储:存储介质按照性能、成本分层,通过智能控温调度数据在不同介质的分布量,将冷数据后台自动迁移到廉价介质(如NAS),降低存储整体成本,并实现容量扩展,不受单盘空间限制。

(2)范围扫描的批量裁剪:对于历史版本Merkle树和状态对象,基于版本有序性与内置Merkle树,让用户可以指定目标区块号范围裁剪,通过Page边界扫描,批量索引与数据裁剪、垃圾回收实现存储空间释放,进一步降低状态数据成本。

规模扩展

针对问题5,LETUS采用分布式存储架构,实现单个共识参与方计算和存储分离,计算层和存储层可分别部署独立集群,通过高性能网络通讯框架进行数据读写访问。

为了对海量状态数据进行灵活的数据分片,并且保证各个区块链的参与方hash计算的一致性,将数据切片为256个最小存储单元(msu),并将一个或者多个msu构成一个状态数据分片(partition),将所有数据分片调度到多个物理机器。从而实现规模弹性扩展,解决了单机存储的容量瓶颈和带宽瓶颈。

阶段三:生产落地

为了全面落地铺开的同时让业务平稳运行,能够开着飞机换引擎,在这几年的研发过程里,我们充分准备、循序渐进的分阶段落地:

2021年5月,基于LETUS存储引擎的区块数据冷热分层,在版权存证业务灰度上线,存储成本降低71%,解决容量瓶颈并降低运维成本。

2021年8月,基于LETUS存储引擎的状态数据,在数字藏品平台“鲸探”双写灰度上线,并成功支撑秒杀场景;

2022年2-6月,LETUS引擎的历史状态数据裁剪、存储服务架构升级等生产ready,在数字藏品和版权存证等业务全面落地,并从灰度双写切为单写;LETUS单写意味着对硬件资源要求大幅下降,我们将“鲸探”生产环境的云资源全面降配,降配后链平台性能水位提升200%,同时存储成本下降75%

06总结与展望

蚂蚁一直坚持“成熟一个开放一个”的技术战略。同样的,LETUS不只为蚂蚁链定制,也同样给其他联盟链、公链提供高性能、低成本的支持。

蚂蚁链坚持技术自研,确保在共识协议、智能合约、网络传输、存储引擎、跨链技术、区块链隐私计算等领域处于全球领先水平。我们始终认为,坚持技术自主研发是建立长期可持续竞争力的关键。

在“可信存力”这条赛道上,我们也需要为进一步的技术壁垒提前布局,如合约结构化查询语言,为链上合约实现结构化+可验证的查询能力,提升开发者体验;Fast-Sync与节点多形态,提升组网效率和节点成本灵活性;以及Web3等潜在的技术生态。

技术创新永远在路上。接下来,继续沿着硬核技术方向突破,啃一些硬骨头,持续为整个价值互联网提供可靠的、可持续的存力。

- END -

相关资讯

架构师深度拆解:Web3 需要什么样的存储系统?

写在前面文字产生以前,结绳记事是人类用来存储知识和信息的主要方式。此后,从竹简、纸张的发明,到工业时代的磁盘存储,再到信息时代的数据库,存储方式不断革新,“存力”不断提高。11月3日,在2022云栖大会上,蚂蚁链历经4年技术攻关与测试验证的

建设Web3需要Web2的人才?探索传统技能在Web3时代的作用

摘要:Web3作为下一代互联网技术的前沿,许多人关注着它的发展和应用。然而,建设Web3是否需要Web2的人才仍然是一个有争议的问题。Web3作为下一代互联网技术,以去中心化、智能合约和用户自治等特点引起了广泛的关注。与此同时,Web2作为

建设 Web3,现在最需要 Web2 的移民?

从某种意义上看,人们在期待一场「熊市」。在经历过 3 年的狂暴牛市之后,2022 年,加密货币行业逐渐进入熊市——比特币单价从最高的 6 万 9 千美元跌落到现在的 1 万 7 千美元,遭遇脚踝斩。第二大币种以太坊同此凉热,单价从最高 47

Web3行业专题研究:Web3,过去一年发生了什么?

(报告出品方/作者:华泰证券,黄乐平、于可熠)Web3:以所有权为核心的价值网络伴随着底层技术的发展突破以及用户需求的演化升级,互联网的范式也在发生着演进。为 了解决原始 web 网络无法支持普通人进行信息交流和分享的难题,一个“可读”的

Web3.0带来天翻地覆的变化?全面科普!所谓的Web3.0到底是什么?

Web3.0在2021年尾声突然蹿红,在美国国会的听证会里,一句“我们如何确保web3革命发生在美国”引发了大家对于Web3.0的关注,而后马斯克一篇内容为“有人看过web3.0吗? 我没有找到”的推文,将关于Web3.0的讨论推向了高潮。

CertiK顾荣辉:Web3正在吞噬全世界,但黑客们正在吞噬Web3

2022 年春天,在加密货币领域一些最混乱的事件发生之前,一位名叫米卡·约翰逊(Micah Johnson)的 NFT 艺术家举行了一场新的作品拍卖。约翰逊在加密圈子中以他的角色阿库(Aku)而闻名,阿库是一个梦想成为宇航员的年轻黑人男孩。

我去了中国最大的 Web3 聚会,发现人们想要的不是 Web3

01危险气氛忽然凝重起来。眼前这位漂亮姑娘不经意间皱起眉头,盯着我朋友递给她的手机屏幕,纠结该输入些什么。10 秒钟之前,我们正坐在这家咖啡馆里相谈甚欢,气氛融洽,直至提出互加微信。时间停滞了那么一下。这位供职于国外某加密交易所的姑娘略带尴

Web3社交平台怎么样了?能否复刻Web2社交平台的成功?

Web2社交平台如Facebook、Twitter和Instagram等已经在过去的几十年里取得了巨大的成功,成为了人们日常生活中不可或缺的一部分。然而,随着Web3技术的兴起,越来越多的人开始关注Web3社交平台的发展,并猜测它是否能够复

万维网之父:Web3 根本不是 Web,我们应该忽略它

作者 | Ryan Browne译者 | 明知山策划 | Tina万维网之父、英国计算机科学家 Tim Berners-Lee 在 2022 年 Web 峰会上表示,区块链并不是构建下一代互联网的可行解决方案,我们应该忽略它。他有自己的 W

不同地方存储的六堡茶,品质有啥不一样?

近几年,六堡茶是黑茶界的一匹黑马,因“红浓陈醇”的特色及广为人知的祛湿效果,日渐受到国内茶人的欢迎。与普洱茶、白茶一样,六堡茶也具有越陈越香的存放价值。关于储藏年份对六堡茶品质的影响,我们此前曾介绍过,可点击《不同年份的六堡茶有什么区别?》

涨知识!广西六堡茶的存储方法(完整版,请收藏)

实践是检验真理的唯一标准,对于喝茶这件注重感官体验的事情更是如此。过去,我们曾做过几场实验,希望通过理论回归到实际体验,让茶友们更好地了解六堡茶知识。一、如何正确存放六堡茶?六堡茶就好比一个人,虽然喜欢安静的环境,但也需要“与外界交流”,而

冬虫夏草如何保存(存储)和食用

说起冬虫夏草,可能很多人都不陌生,并且这种中药材是非常昂贵的。冬虫夏草一般在适宜的条件下才能生长,不仅如此,采摘和储存的时候也是非常讲究的,下面就一些基本常识为大家介绍。冬虫夏草如何保存冬虫夏草富含蛋白质与糖类,容易霉变及虫蛀。合理的储藏和

惊险的贵州梵净山,谁徒步爬上过老金顶?不止需要体力还需要胆量

来贵州省旅游一般只知道黄果树瀑布,还有一个独特的景点就是梵净山,低调险峻少为人知。梵净山是武陵第一峰,也是贵州第一名山,是国内为数不多还保持原生态的景点,这里游客不多,山路惊险堪比华山,是登山爱好者体验爬山乐趣的好地方。从贵阳到梵净山的路线

挤爆了的洪崖洞将全方位升级?慢行系统了解下

“一到节假日,重庆‘轧’断了桥(洪崖洞附近),又‘轧’断了街,因为桥上、街上全是拍照的人。就连普通的周末,客流量有时也站上七、八万。”2月26日,小天鹅集团董事长何永智告诉上游新闻记者,今年将是洪崖洞全面升级的一年,将从交通、文创旅游、管理

“陀螺院士”房建成:我要做民用、便宜、芯片级的惯性导航系统

“心绞痛和心梗是无法通过心电图看出来的,患者的心电图与正常人的是一样的。但心磁图就可以看出来。”应用极弱磁场测量技术,捕捉身体自身发射的微弱磁信号,绘制出三维磁图,帮助医生更迅速地判断病症。零磁医学正是北京航空航天大学房建成院士和团队当前研

友情链接

网址导航 SEO域名抢注宝宝起名网妈妈知道币圈微商货源批发官网莫高窟旅游攻略东鹏瓷砖资讯网网红奶茶排行榜熊猫资讯网伯爵腕表之家圣罗兰奢侈品面霜眼霜品牌网户外露营地官网十堰新闻头条网深圳交友相亲网废旧物资回收网巴菲特股神故事网小说阅读网紫金矿业股票
Web3概念网-Web3概念股是指在加密货币和区块链领域中的企业股票,这些企业致力于开发使用Web3技术的应用程序和基础设施。Web3.0作为元宇宙的数字基座,是下一代互联网,具备区块链去中心化、分布式、共享共建的特点。元宇宙将推动进入第三代互联网,从PC互联网到移动互联网,再到元宇宙互联网,元宇宙将推动互联网进入3.0时代。
Web3概念网 pinzhili.cn ©2022-2028版权所有