创建一个容纳个人所有数据的存储系统,是一个看似简单但是实践起来非常困难的任务。
创建一个容纳个人所有数据的存储系统,是一个看似简单但是实践起来非常困难的任务。
一开始有这个想法是在几年前,在孩子出生前不久。这一代的小朋友,出生就伴随着大量照片和视频。作为父母,我们永不希望丢失这些数据。
以前数码相机的照片,资料,音乐,电影,都零散的放在几块移动硬盘上。这些数据真的会因为硬件故障随时消失。
大家好,我是一名父亲,一位在读博士,主攻密码学与分布式系统方向。上面提到的小目标,我已经奋斗了三年了,马上娃也要三岁了。我终于有了一个刚刚可用的实现。
有了最初动机以后,我让自己的研究偏向了区块链存储。这期间也走了不少弯路,比如,尝试用公链来做所有的存储,其实对用户来说更贵,所以我们修改了方案让公有链和私有链相结合。在经历了一些探索以后,我决定首先采用私有链来做一个可用的实现。
没错,区块链中没有人感兴趣的私有链。但是我们发现,在个人数据存储这个场景下,私有链却很适合。
让家里的台式机一直开着当服务器,噪音和耗电让人难以接受。但是很多家庭都有吃灰的树莓派,接上硬盘当存储再适合不过了。不过树莓派的稳定性还是略堪忧的,这就需要分布式系统了。
我自己就有两台512M内存的上古树莓派,然后购置了一些硬盘盒,不用阵列(RAID),以避免数据恢复中出现任何复杂性。这样的系统几乎没有噪音,长期运行也不会被老婆发现。
如果购买硬件,2G内存的树莓派加硬盘盒,两块新的4T,总价小于两千。最近因为chia挖矿所以硬盘价格飞涨,但估计价格也快回落了。 我比较倾向于新硬盘加旧硬盘的混合模式,这样才能显示出分布式系统的优越性。
硬件毕竟是靠钱堆出来的,软件和算法才是最有意思的,而且人人可以动手的部分。比如,我们可以按照图纸拼装出解魔方的机器人,但是解魔方的算法才是有趣的灵魂。
分布式系统让我们有了无限叠加的可能。如果购买现成的NAS,一开始我们就必须在两盘位,四盘位还是八盘位中做出选择,在日后的升级中也会浪费很多的钱。
在公链上,因为我们无法知道哪天矿工退出了,所以数据至少要保存三份,还要做“复制证明”。在家庭环境里,我们假设没有人做恶,我们只要把数据存两份就可以了。
目前,一些工程师爸爸们已经开始测试这个系统。我们暂时没有商业化的想法,而是希望有一个社区,方便有这方面需求的小伙伴们交流。这样万一硬件损坏的情况下,知道系统内部怎么工作的人,也可以靠已有知识恢复数据。未来,这个私有链也许可以和公有链技术相结合,比如让我们家里的存储和办公室里的同步。也许有人会问,不是有网盘吗?我不会回答这个问题,因为我们有电视机啊,为什么要在电脑和手机上看视频呢?
另外,这个项目到目前并没有一个响亮的名字,我们并没有考虑太多,因为第一个非常简陋的可用版本才刚刚写完。 废话不多,直接上代码 https://github.com/ecopow/BitDAV
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!