草庐IT

2022年分布式存储项目分析报告

先驱君 2024-02-28 原文

分布式存储是元宇宙持久运行的基本方式!

分布式存储与分布式价值交互、分布式计算一起,构成智能社会经济活动的底层技术架构!

分布式存储、分布式计算、分布式能源是元宇宙时代的数字新基建!

分布式存储,即去中心化存储,在这一领域,由Protocol Labs于2014年成立的星际文件系统IPFS(InterPlanetary File Systen)是先行者,作为承载Web3科技革命和元宇宙持久运行的三大基础设施(分布式存储、分布式计算、分布式能源)之一,分布式存储作为信息文明时代科技革命浪潮中必须要建设的数字经济新基建,随着IPFS上线后走上了人类社会和科技发展历史的舞台。开创了当前波澜壮阔的以Web3、Crypto、元宇宙为叙事主轴的财富浪潮。

IPFS一直宣传对标HTTP,其最大的特点是内容寻址和哈希去重,当将文件添加到IPFS时,文件会被拆分为较小的块,每块都会进行哈希运算形成独特的哈希值,每个文件也都会得出一个称为内容标识符(CID)的独特指纹。当其他节点查找文件时,他们会询问存储文件CID引用的内容的对等节点,当他们查看或下载文件时会缓存文件副本并成为另一个内容提供商,直到缓存被清除。网络中的每个节点只存储它感兴趣的内容,如果将文件的新版本添加到IPFS,则其加密哈希是不同的,因此它获得了新的CID。这意味着存储在IPFS上的文件可以抵御篡改和审查,并且可以重复使用文件中常见数据块,以最大限度地降低带宽和流量。IPFS的底层技术是分布式哈希表、块交换协议、版本控制和自验证文件系统。

IPFS准确来说是没有冗余机制的,切片是为了传输和哈希去重,而不是为了将数据存储在不同节点,文件切片后数据仍然存储在本地,只有别人访问或下载该数据时才会复制和备份到其他节点,而备份也是将文件整体备份,在IPFS网络中每个节点只存储自己感兴趣的内容,每个节点并没有长久存储某份数据的义务,很多时候用户上传数据仅仅只是存在本地节点。

IPFS为了防止文件篡改设计了一种自验证系统(SFS),这个是为文件加密,但缺乏存储验证这一功能,在去中心化存储网络中,验证是一项决定数据是否完好存储的关键技术。

IPFS在数据修复机制上是缺失的,冷数据访问人数低,无法有效产生副本,一旦本地节点损坏,数据就会永久丢失。(对热数据友好)

IPFS激励机制是激励上传而非存储,作为底层文件传输协议是OK的,却不适合做一个完整的去中心化存储项目。

在数据检索与访问,数据上传与下载,费用方面的技术架构上IPFS因为缺乏智能合约虚拟机,导致对标HTTP的愿景在落地层面大打折扣。比如Filcoin将数据进行编码(哈希运算)后上传运用的是IPFS底层技术之一,但是编码是一项复杂的计算工作,不仅需要消耗大量算力,也非常耗时,按最小的标准扇区32GB计,密封过程大约需要1小时左右。同样,数据存储后,用户如果需要读取也必须先对数据进行解封,解封的过程和密封的过程对等,其过程也相当耗时,这使Filcoin的读取和下载性能低下,可用性降低。IPFS从技术本质上是强调注重数据的分享与传播,保证数据不被篡改,却无法保证不被删除,适合存储公开数据,却不适合存储冷门数据和加密数据。在激励机制上是为了出块而非存储,出块与算力挂钩,导致激励变形,参与Filcoin不是为了存储,而是为了出块。

综上所述,IPFS作为一个底层文件传输协议是没有问题的,但作为一个分布式存储项目,短期内看不到希望应用落地。具体Filcoin将走向何方,让我们拭目以待。

题外话:Filcoin曾经是分布式存储的代名词,但我们深深的懂得,世界在变,IPFS也不完美,错失智能合约的机遇,以及在技术和激励上的一些不完美的BUG,我们很容易预测到Filcoin的未来:在2000年门户网站雅虎曾经是互联网的代名词,但最后笑傲互联网江湖的是微软、谷歌、亚马逊等巨头;在中国,2005年前是谷歌的天下,但舆论的主导权对一个政府来说不可能放弃,所以有了后来的百度;2007年之前,网络支付也就是现在所熟悉的三方支付是PayPal,在中国叫E-Bay是行业老大,但是支付宝、财付通一批国产三方支付的崛起改写了中国市场的历史。在大数据也是生产资料的今天,数据安全法的出台,市场上宣扬IPFS为成为中国市场存储领域的代表的人非傻即蠢!要么是别有用心!一部分人甘当驼鸟,不愿意把头从沙子堆里拔出来看看外面真实的世界,一部分人因为深陷其中,需要继续忽悠跟随他的人,如果他不讲,他要么就还钱,甚至是进监狱。作为分布式存储领域的先驱者,我们需要站在上帝的视角看待这个行业。潮起潮落,云卷云舒!

MEFS(MEMO File Systen)是MEMO分散式云存储的文件系统,MEMO分散式云存储是Memo Labs于2017年成立的旨在利用区块链和智能合约在链接全球海量边缘存储空间的基础上组建一个云中心化的存储网络。系统设计了数据分层机制,将智能合约、角色信息等关键数据存储在区块链上,而其他数据则保存在边缘存储节点上。系统拥有三个角色:存储服务使用者User、边缘存储空间提供者Provider和维护者Keeper,任何拥有闲置存储空间者都可以注册成Provider,而Keeper的主要功能是对存储供需双方进行信息匹配及对存储服务进行验证。MEFS的核心技术是公开验证机制和数据修复机制,公开验证机制是保障数据安全和付费的基础,RAFI技术则可以让损坏数据得到快速修复。

MEFS的冗余机制采用了多层级容错机制,体量小的热数据采用多副本冗余,体量大的冷数据采用纠删码相结合的方案。形成相对成熟和安全的分散式存储系统。

Arweave提出永久存储,复兴亚历山大图书馆定为其远景目标,打造出一次付费,永久存储的文件协议,目的是解决Web1和Web2时代互联网的言论自由受限、过度审查、易于篡改的问题。解决服务商停止运营、政府审查等诸多原因所造成的数据丢失问题,为互联网提供永久性的数据存储方案,并基于一种加密激励机制,激励开发者基于该协议打造一个永久生态应用系统。

Arweave使用社交等级来评判节点的参与,节点需要较高带宽来接收区块和交易信息,具备较大的存储容量来存储历史区块,同时需要使用算力与其他候选节点竞争,以维持较高的社交等级,并获取出块的权利。社交等级低的节点有被网络完全排斥的风险,同时节点中存储的数据需要符合大多数节点的内容策略,否则有可能所生成的区块不被其他节点所接受。目前Arweave全球有151个节点,其中一半的节点都来自美国,主网上线3年多以来,全网存储数据只有22T.

Arweave引入了的概念使得节点在不存储整条链的前提下仍然可以完成关键的网络功能,通过减少每个节点的存储数据量来降低整条链的体积,这种方式的弊端类似于调高区块大小来进行扩容,会对去中心化程度造成影响。

Arweave永久存储的机制可以说是它的优势也是弊端,追求极致的同时也舍弃了很多应用场景,比如做二次开发,已经上传的代码是无法修改的,只能重新上传,这样无疑增加了开发成本和工作量。Arweave最显著的特点就是不计成本实现永久存储,造成资源的极大浪费。

Arweave全网存储的数据都是公开透明的,没有访问控制机制,任何人都可以通过Arweave网关查看全网数据,并不需要成为Arweave的节点。由于其数据对全网公开,因此只适合保存一些公开信息,并没有对数据进行加密保护,因而不适用于保存个人信息。只能有限地存储自己适合公开的数据。虽然区块链上的地址是完全匿名的,但通过对公开数据的分析,在这个大数据时代,可以轻易的关联到用户的现实身份,这或许是Arweave上线三年来,全网数据量只有22T的一大原因。(另一个原因是成本高昂)

以上IPFS、MEFS、Arweave三大分布式存储系统具有行业代表性,特作重点分析阐述。

Storj是一个基于以太坊的去中心化分布式云存储平台。Storj将文件加密,把文件分解成加密数据块,然后进行分布式地存储在网络上。也就是说是基于以太坊公链开发的智能存储合约,而非是一条独立的公链,没有独立的存储生态系统。

YTA(YottaChain)的愿景是提供最佳存储服务的基础架构链,在规模上超越AWS,与互联网巨头云存储相抗衡,撬动万亿美元的存储蓝海市场,并打造通过‘有价值无门槛’实现‘区块链改变世界’的生态。王东临是YTA存储公链创始人,但过度的商业化让YTA公链走变形。

XFS是Stars Labs开发的新一代分布式文件系统,重庆理工大学人工智能学院院长张小川教授是核心技术骨干,激励机制类似于DeFi,在XFS分布式存储上打造的社交DLine据悉已在内测。

BTD(BitDisk)是基于区块链技术的分布式共享存储生态,现在已经归零,败在经济模型,人性的贪婪。团队对商业的无知和对事物发展规律的无知让其拿着工业时代大一统的思维把公链,钱包,交易所及商城妄想一次性搞定,结果呵呵

HDFS分布式存储公链是一套完整的个人数据存储解决方案,它由无数的节点以p2p的形式组成一个数据存储阵列,采用POC+POST的双重共识机制来识别及分配奖励,采用加密机制对数据传输及存储过程进行保护形成一套安全、高效、经济的个人数据存储全套解决方案。

CRU经济模型改了几改,典型的中心化控制的存储概念。

Siacoin云储币,宣传为一个去中心化的云储存平台。通过运用加密技术,加密合约,和重复备份,使各个分布的计算机节点联合起来组成统一运行的云储存平台。本质是挖矿。

另外还有诸如Chia、Swarm\bzz、Genaro、LAMB、MTP已经接近币圈骗局,就不再一一点评了。

如果你是一个分布式存储的资深人士,你就可能知道,理论上任何一个懂得Libp2p技术的团队都可以宣称自己搞的是分布式存储,就像任何一个泥瓦匠都可以宣称自己可以盖房一样,但是盖摩天大楼,还是民房,还是鸡鸭羊圈,那就是另一回事了。

总结分布式存储项目的18条评价标准,作为分布式存储项目分析的参考,无论是学习理解,还是投研投资 ,都是一个比较有价值的参照:

分布式存储公链评估模型

一、综合比较:

1、存储架构与有效容量

2、存储数据分散程度(影响去中心化程度的因素包括参与难度、物理分散度、审核机制、工作证明方式等)

3、文件系统的鲁棒性与安全

4、能耗与成本

二、技术架构与激励机制:

5、冗余机制与技术

6、验证机制与技术

7、修复机制与技术

8、激励机制与智能性

三、使用性能和费用:

9、数据检索与访问

10、数据上传与下载

11、费用

四、市场与应用场景

12、每日交易笔数

13、每日活跃地址数

14、每日总交易手续费

15、每日总 Gas 消耗量

16、每月链上总活跃Dapp数量

17、每日链上DeFi活动TVL

18、每月总开发活动

有关2022年分布式存储项目分析报告的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  5. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  6. ruby - 分布式事务和队列,ruby,erlang,scala - 2

    我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和

  7. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  8. ruby - Rack:如何将 URL 存储为变量? - 2

    我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.

  9. ruby-on-rails - 为什么在 Rails 5.1.1 中删除了 session 存储初始化程序 - 2

    我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于

  10. ruby - 如何在 Ruby 字符串中插入项目符号字符? - 2

    我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195

随机推荐