文章

去中心化存储系统一览

从理顺我的时间线开始。

20年入学,21年初开始做高性能共识项目,22年中开始调研去中心化存储,22年接近年底开始做去中心化存储项目,12月投了第一次。

23年春节之后终于回了家,最后一次把高性能共识项目投了出去,并且第一次收到去中心化存储项目的拒稿。

然后23年4月投了第二次,23年9月投了第三次,24年2月投了第四次,24年7月试着投了一回短文就不算了,24年9月投了第五次。

去HotCRP看了一眼都没记错。

已经练习时长两年半了。比高性能共识项目还要久上半年了;而那是一个集成了服务器软件、可编程交换机程序、FPGA板子代码和云服务环境的超复杂实验体系/大规模工作量实现,并且项目启动的前半年我还在搞私活。

高性能项目当时被认为是艰难的,因为它涉及到把一个通过发表验证了的点子迁移到看似相关实则迥异的场景下(而看似相关这一部分也导致了对工作量的显著低估)。

去中心化存储项目是什么情况呢?是在一个几乎不存在的场景下从头开始发明一个点子。

22年下半年的倒数第二次投稿高性能共识项目已经很成熟了,最后一次投稿只是新增了两组实验,没有调整任何文本;回看了一下22年4月的倒数第三次投稿,最终的审稿人会议纪要也体现出一种只要包含更严谨的证明就可以接受了的遗憾感觉,这时这个工作已经事实上完全成型了。

换句话说高性能共识项目用了不到一年的时间成型,后面的时间都是在按需微调。而去中心化存储项目的目前状态是没有成型。

往好处想,现在距离成型也许并没有两年(高性能共识项目的整个工期)之久。

往坏处想,前面两年半的时间没有走完高性能共识项目大半年的进度。

我曾经以为系统项目做出来一个以后,就可以以其为参考衡量后面项目的工作进度了。

看来只有成型以后的那一部分工作可以参考。

曾经我把15-17三年从年度长进总结中划掉。19年可以说去美国+申请,18年可以(勉强)说考托福+非常拖沓地入门科研。14年可以说中考+适应离家上学。中间的三年做的事情没有留下任何痕迹,连2048都没留下半个;把它们从我的人生中抽走不会给之后带来任何改变。

除了得把17年被请的那顿饭留下。

经由当事人指出是18年请的。那就什么都不用留下了。

反过来讲,我对于「当时要是做了这个这个那个那个」的懊悔式幻想也都把「当时」设定在15-17年。我可以有很多很多种途径在那几年造福我的余生,但是对这些途径的实施都发生在我的脑海中而不是现实。

看来23-24年也要变成这样了。23年当然还是可以像18年一样号称把论文发出来了的,但是我这次要对自己严格一些。

15-17年的空白导致了我失去了在二十岁出头做到出类拔萃的机会,导致我时至今日名声依旧基于人设而不是事实。

那么这次要再耽误到多少岁呢。如果一辈子都被如此耽误过去了,那么这究竟是一种耽误,还是从一开始就设定了不切实际的目标?

算了写去中心化存储调研吧。


Storj是一个非常简单的系统。像一个集体合资的数据中心。中心化的存储设备管理,只不过从管理“自己”的设备变成了管理“别人”的设备。想要去中心化?好的那把中心化管理软件开源,谁都可以自己主办(self host)。

Filecoin、Zus(0chain)和Sia是非常简单的系统,像一群数据中心和一个交易所。存储一份数据是一笔用户和一(几)个数据中心之间的(一锤子)买卖。

这两种系统都可以通过对传统基于数据中心的中心化存储加以简单变形来得到。Filecoin是把数据中心弄成参与型组件,并且相应地把双边定价转换成了交易所。Storj是先把数据中心里的存储设备弄成参与型组件,实现了对应的中心化管理软件,然后再把管理软件弄成参与型组件(只是意思意思)。

Arweave、PermaCoin和EthStorage(存疑,它白皮书503了)是对传统区块链的一种近似。复制协议要求所有的参与者都要保存状态的完整副本,而这些系统(尽可能地)鼓励理性的参与者去这样做。

Swarm是一个不太一样的系统。它把存储节点分了区,每个区里的存储节点会来了又走(因为节点们本来就来了又走),但是一个节点始终属于一个区。它把数据也对应地分了区,然后每个区各自负责存该存的数据。节点分区的大小适中:太小的话包含过少的节点限制了可靠性,太大的话全连接协作成本太高。Swarm目前把12k个节点分成2048个区,平均每个区6个节点,最少3个。同一个区的节点大概是在做全量副本。

Swarm带来的一个限制是节点不能决定自己要存多少东西。分发到每个分区的存储容量需求大致是相同的,但是不同分区的节点情况大不相同。


本来想说它们都做了各种各样的设计了我已经没什么好做的了,但是又怕下这个结论为时过早。先把手上的阅读列表清空然后再想想吧。

本文由作者按照 CC BY 4.0 进行授权