0xMedia

小文件可不简单:Walrus在Quilt上的一小步,dStorage的一大步

便宜、好用、稳定是各类项目遴选去中心化项目的重要标准,这也迫使降本增效这一命题成为去中心化储存项目的兵家必争之地。

而想要实现降本增效,对于储存文件的有效编排则是关键所在。@Filecoin

曾经做过伟大的尝试,它把数据变成交易型存储合约,矿工按 32/64GiB的标准扇区封装并提交证明。这一套机制对大对象确实很经济,但对海量小对象则有些许别扭。

对于小文件而言,其先需要将其聚成CAR包,才能喂进扇区。而每个扇区的封装流程又是重 CPU/IO 的流水线,最终的后果就是对高频、小批量、低时延的写入并不是那么友好。

但作为行业前辈,Filecoin的努力则为整个去中心化项目储存板块提供了重要的思考点:如何在为大对象实现经济储存的同时,服务好小对象储存呢?

你可能会好奇说,为什么我们需要去考虑小对象储存呢?这就牵扯到另一个很有趣的去中心化储存上统计学分布问题,小对象虽然小,但是它密度大。

怎样来理解小对象密码度大这个概念呢?首先我想在这里引用一篇乔治梅森大学学者们的研究成果《A Closer Look into IPFS: Accessibility, Content, and Performance》

Image

在5.1这个章节中,学者们得出一个重要结论,在他们取样的IPFS上,19.5%的文件小于0.25MB,并且几乎99%的文件小于32MB。

这个结论是否是孤立的呢?答案是否定的。这一结论甚至非常具有普遍性,在其他的去中心化储存如 @WalrusProtocol 上,这一结论同样成立。

Image

上图是一张来自Walrus制作的文件分布图,可以非常清晰的看到,1KB-100KB的文件占据了Walrus储存的半壁江山。如果按照1MB以及以下为口径进行计算,几乎覆盖了Walrus储存的近八成内容。

其实到这里我们就知道,小文件可不小,其庞大的数量让dStorage项目不得不去正视小文件的有机储存问题。

而Walrus新推出的Quilt结构,则提供了一种可能的思路。

核心原理是将多个小文件捆绑成一个大的存储单元(Quilt,在不丢失文件独立性的前提下统一编码和存储。具体而言,每个 Quilt 最多可包含约 660 个文件。

当开发者调用 Quilt 上传时,客户端会将待存文件按序组合,将它们的原始数据及自定义元数据打包成一个大的数据流,并提交给 Walrus 发布者。

在逻辑上,每个文件在 Quilt 中依旧保留文件边界信息。系统会为每个打包的文件分配一个 QuiltPatchId 作为唯一标识。与普通的 BlobId 不同,QuiltPatchId 的计算依赖于整个 Quilt 的内容,因此将同一文件放入不同 Quilt 会产生不同 ID。

举一个生活化的例子你可能就一目了然Walrus的Quilt在做什么。如果你平时喜欢去超市享受购物的乐趣,你也许会有在散装区装袋上秤的这样的经历。而你是否思考过,这些散装区的货物是从哪里来的呢?

Quilt 做的事就是把一堆小文件一次性装进同一个大的运输托盘,但每个小文件都会贴上自己的独立标签和编号,随时都能单独拿出来用,不需要把整包倒出来。这就像把超市里散装的小零食装进一个托盘发往销售区,但每袋零食都有条码,收银时依然能单件扫码结账。

对实际开发最直接的好处就是省钱省时更稳。以前你有六百个小文件就要做六百次上传与确认,每一步都有固定开销和失败概率。Quilt 把它们变成一次提交,费用和尾部延迟一下子被摊薄了,重试与断点续传也只围绕这一次进行。读取时也不用解压整包,按编号就能把其中一张图片、一段文本精准取回,用户点开就能看,速度体验和单文件几乎一样。

使用 Quilt 后,Walrus 在存储性能和成本上有显著提升。首先是在存储空间利用率方面:Walrus 的 RedStuff 编码会将 Blob 数据扩大约 4.5~5 倍。如果 600 个小文件各自独立上传,这些膨胀开销会叠加到每个文件上;而采用 Quilt 后,这个 4.5 倍的膨胀仅作用于整个打包好的 Blob,一次性分摊到所有文件上,从而大幅提高空间利用率。

其次是存储成本和 Gas 费用。Walrus文档给出测试数据:将 600 个 10KB 文件作为一个 Quilt 存储时,所需的 WAL 存储费约为 0.005,而单独存储则需要约 2.088 WAL,降低了约 409 倍。相应地,Sui 交易费也从600笔聚合到1笔,节省了约 238 倍。简单地说,Quilt 让每次存储操作能够批量做功,极大地降低了总体的费用和网络负载。

Image

再举个加密玩家最熟悉且具像化的例子:NFT,小文件存储的经典代表。一个 NFT 项目常常包含上百张图片和对应的 JSON 元数据。利用 Quilt,这些图片和描述可以一次性批量上传到 Walrus,只花费一笔存储费,却还能通过文件标签快速找到任意一张图片或元文件,无需下载整个集合。

对于项目方而言,长期运维上也更省心,写入时你可以给每个小文件顺手打上标签,后面按标签检索就能立刻定位。一批相关数据作为一个大包裹天然具备原子性,回滚、审计和复现场景更加干净。

Image

除了NFT,可能你还会关心,那么对于AI有什么影响呢?

样本切片、提示模板、对话与日志,这些独属于AI的小文件,Quilt把这些细碎数据按时间或版本打成一个大对象一次上链,但保留每个条目的独立ID与标签,读取时可直取单条,不必解包整批,直接摊薄训练与推理的数据进场成本,让AI在区块链上持续发生成为可能。

总的来说,Quilt的效用是广义的。这一小步却是dStorage的一大步,他缓解了高密度小文件所带来的损耗,直击去中心化储存的主要矛盾,为dStorage作为储存基座的深度优化铺平道路。

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Daily Debrief Newsletter

Start every day with the top news stories right now, plus original features, a podcast, videos and more.

中文zh中文中文

Appreciate Insights?

Show your support for the author.

usdc USDC
wallet icon ...

Send Tip (Sui Wallet)

QR Code

0x398d...b7f9

Link your wallet

Link a wallet to your Cluster account

Metamask
Slush
Phantom

Not Logged In

Connect to your X account to start tipping to authors and access all features of Cluster.