最近,EOSIO社区开始注意到一种叫做“DISK”的新存储资源计划。根据Block.One 的CTO Dan Larimer的说法:
EOSIO很快就会有一个磁盘备份的键值存储作为智能合约的一种选择,这对于不经常访问的大型数据集尤其有用。
EOSIO开发者有一系列的存储系统可以选择使用,每个存储系统都有自己独特的优缺点。
很多人也以为vRAM和其他存储系统一样,只是存储堆栈中的另一组件。
但vRAM完全不一样!
使用单层存储——无论是IPFS、RAM还是DISK——需要在速度和成本效率之间进行权衡。
但vRAM更像是一个粘合剂,将不同的存储系统整合在一起,成为在不同存储层之间去信任传输数据的分页机制。
如此一来,开发者可以将RAM、IPFS和最近发布的DISK数据库的优点结合到一起,根据不断变化的需求组合成一个动态的、经济的存储堆栈,实现经济实惠、速度和容量的完美结合。
一、EOSIO的分层存储堆栈
RAM、IPFS和现在的DISK都是EOSIO开发者可用的存储堆栈上的不同层。
EOSIO的分层存储结构与传统计算并没有太大不同。计算机还由许多存储层组成,每个存储层都有其独特的优缺点。
计算机存储结构的底部最接近处理器,因此非常昂贵和有限,但速度非常快。当我们向上移动结构时,存储层在容量和成本效益方面增加了,但是也比较低层慢了几个级别。
在底部,我们有CPU寄存器,它是计算机存储结构中最基本的组件。中央处理寄存器可以保存相当有限的数据量,以方便某些快速进行的操作。
除了寄存器之外,CPU也有CPU缓存,其目的是保存从主内存中读取的数据的临时副本。缓存比寄存器大,但速度比较慢。
接下来是计算机的RAM,它充当计算机的白板,用于执行快速读写操作。
当需要进行特定操作时,数据从持久存储设备(如计算机的内部驱动器,它们本身可以分层,具有更快的SSD和更便宜、更慢的HDD)被输入RAM。
一旦操作完成执行,那部分的RAM就可以由另一个程序从计算机的持久存储中加载。
最后,外部硬盘驱动器和其他备份设备或网络解决方案为计算机提供更大的存储容量,但对设备的读写要比访问计算机的本机存储慢得多。
类似地,EOSIO开发人员可用的存储结构遵循基于层的结构。
RAM位于堆栈的底部,是存储dApp数据最快但最昂贵的方式。
在更高的层次上,IPFS类似于外部硬盘驱动器,因为它提供了丰富的存储容量,但是对于构建EOSIO dApp的开发人员来说,速度要慢得多。
DISK给了开发者更多的选择。
在EOSIO的存储堆栈上,DISK位于RAM和分布式文件存储系统(如IPFS)之间,IPFS比RAM和DISK都要丰富得多,但速度也比两者都慢。
DISK是一个键值对存储器,它可以提供比RAM更高的容量,但需要消耗更多的处理资源。
虽然预计它将比RAM更便宜,但也会更慢,需要更多的CPU来运行,这使得它不太适合存储按需提供的数据。
Github的技术规范指出,EOSIO很快将会拥有一个新的DISK资源。
vRAM并没有成为这个存储堆栈中的另一层,而是将其作为一种分页机制,在不同的存储层之间去信任地传输数据。
vRAM允许开发人员通过使用堆栈的不同部分来优化他们的应用程序,以平衡成本效益、容量和速度。
此外,vRAM是不同步工作的,这意味着它不会阻止其他操作在链上执行。
这使得访问时间变得不那么重要,因为vRAM操作是并行发生的,而不像传统的分页机制那样会在执行期间造成瓶颈。
二、vRAM是如何工作的?
在Youtube最新一期的视频中,LiquidApps CTO Tal Muskal详细向我们解释了vRAM如何将RAM、DISK和IPFS整合在一起。
∆ 持续关注LiquidApps公众号
本视频中文版字幕将在不久后推出
我们可以在vRAM出现之前,dApp开发者必须把他们的智能合约和相关的数据存储在一个稀缺的RAM数据库中。
dApp的状态信息,比如每个用户的账户余额,将永久存储在RAM中,无论这些用户当前有没有与dApp交互。
从这一角度来说,“EOS RAM”十分具有误导性,因为它更像是一个硬盘,而不是一个只存储与实时操作相关数据的随机访问内存设备。
vRAM释放了宝贵的RAM资源,使dApp开发者能够将智能合约状态数据存储在链上历史中,而不是直接存储在RAM中。
此外,DAPP服务提供商(DSP)还通过在它的IPFS节点上保存副本来索引数据。
除EOS节点外,通过托管IPFS的存储节点,DSP还提供了冗余存储数据和快速RAM预热。
当智能合约需要数据时,DSP从它的IPFS节点获取数据并将数据转发给智能合约,并使用默克尔证明来验证它的完整性。
vRAM的新颖之处在于,它以一种允许数据在两个存储层之间去信任地移动的方式连接RAM和IPFS。
它就像一个由DSP操作的穿梭路线,在需要时将数据从IPFS传输到RAM,并在操作或其他相关期间完成时将数据从RAM中传输出去。
因此,EOSIO开发者可以利用类似于计算机使用的存储设置,根据应用程序的需求在存储层之间传输数据。
DISK则是数据传输路径上的另一站。这条路径从最快但也是最昂贵的RAM开始,一直延伸到充裕但速度较慢的IPFS存储。
开发者需要存储解决方案,把延迟和成本最小化,同时把容量最大化。
然而,使用单层存储——无论是IPFS、RAM还是DISK——需要在速度和成本效率之间进行权衡。
由于有了vRAM,开发者可以一起利用多个存储层,根据不断变化的需求在它们之间传输信息。
三、vRAM完全不影响底层拓展性
vRAM不仅可以成倍地增加内存容量,而且还不会影响EOSIO的底层可扩展性。
vRAM系统只在一个节点子集上复制数据存储,这些节点属于存储数据的任何人所选择的DSP,允许系统水平扩展。
RAM、DISK和其他基础层资源被复制到系统中的所有节点上。
每一个BP都需要支持整个链的资源需求,随着BP的增长,资源需求会变得更加昂贵。
如果网络上RAM的大小可以不断增加,则可能会为缺乏支持此类基础设施能力的小型BP团队设置一个进入壁垒。
最终,区块生产将集中在资金充足的团队,这些团队能够承担支持网络所需的基础设施成本。
四、vRAM用于dApp的案例
为了研究vRAM如何将DISK集成到EOSIO存储堆栈中,接下来我们来了解一下EOSquare的体系结构。
EOSquare是一个运行在EOSIO公有链上的虚拟社交媒体 dApp。
这个dApp需要以一种可以从智能合约中访问的方式存储关于每个用户和每个帖子的数据,包括所有评论和互动。
将数据全部存储在RAM中是最快的方案,但是RAM资源的稀缺使这样的解决方案变得不可行。
相反,EOSquare只能在帖子创建或用户参与后用到RAM存储数据,这大大降低了它对RAM的需求。
在将来,沉了的帖子将可以移动到DISK上,它们将一直存在,直到有人浏览或回复。
IPFS可以作为老帖子和非活跃用户的存档,这些用户在不久的将来可能不会很活跃。
这种多层存储体系结构的核心是vRAM,它使数据在不影响去中心化的前提下,可以在所有层之间自由流动。
五、vRAM诞生初衷
就在一年前,vRAM系统在DAPP网络上上线,目标是解决EOSIO开发者面临的最棘手的一个问题——RAM的稀缺性。
在EOS 主网上,购买一兆字节的RAM(用于存储dApp智能合约和状态信息的EOSIO专有数据库资源),需要花费大约59个EOS,因此RAM的数据存储量不宜超过基本的数据量。
虽然目前其他EOSIO链可以提供更丰富的资源,但在未来,链上活动的增加可能会使其资源市场面临类似的压力。
举个例子,Wax为每个新帐户提供3KB的RAM。
在目前128 GB的容量下,假设RAM没有被用于其他用途,当用户数量达到42.5万,Wax仅因为这些帐户就会把RAM消耗完。
开发者可以利用vRAM,以价格合理的方式高效地存储和检索更大量的数据。
vRAM的工作原理是将EOSIO的RAM连接到IPFS,这是一种分布式的存储解决方案,其容量比RAM大得多。
它充当一种分页机制,在IPFS和RAM之间可靠地传递数据,这大大降低了开发者对RAM的需求。
通过使用vRAM来获得丰富的存储资源,开发者可以为他们的应用程序做准备,以备未来的不时之需,能够进行扩展。
Moonlighting是一个拥有75万用户的自由职业者平台,它利用vRAM将用户库加载到EOS区块链上,成本仅为传统EOS RAM模型的0.5%。
Moonlighting并没有把用户配置文件存储在有限的RAM数据库中,而是利用vRAM丰富的内存容量存储用户数据。
秉持一种协作和共同进步的态度,有利于创造双赢的局面。
把类似的软件看作是竞争对手,这种想法是很普遍的。
然而,在这个行业中,不可避免地会出现类似的工具和解决方案。
与其尝试做出不同的产品来击败对方,不如从寻找协同作用和利用彼此技术的方法中获得巨大的收益。
DISK当然不是IPFS或RAM的竞争对手,而是EOSIO动态存储结构的另一个重要组成部分。
vRAM作为一种分页机制,让开发者可以利用所有这些层来创建强大的动态数据应用程序。
如果你希望大幅度降低存储成本,那就就开始使用vRAM吧!
或者你也可以扫描下方二维码添加 LiquidApps中国社区经理 您将获得最细致的回答、最耐心服务以及最全面的答案。
-THE END-
欢迎加入LiquidApps社区
LiquidApps的使命是通过引入一系列技术解决方案,降低区块链开发的难度和成本, 以此推动去中心化应用 (dApps) 的大规模发展和落地。
去中心化应用要实现其最大的潜力有赖于社区的共识和参与,LiquidApps是一个开放的社区,期待大家能够参与到社区关系的建立和沟通上来,从而推动dApp的成熟和大规模落地,共同塑造未来并享受创造价值的过程。
官网:https://www.liquidapps.io/
币乎:https://bihu.com/people/1528429636
Twitter:https://twitter.com/liquid_dapps
英文电报:https://t.me/LiquidAppsOfficial
中文电报:https://t.me/LiquidApps_community_China
微博:https://www.weibo.com/7126862764/profile?topnav=1&wvr=6&is_all=1