英国经济学家凯恩斯在《就业,利息和货币理论》中说过:许多实干家自以为不受任何学理之影响,却往往沦为某个已故经济学家的奴隶。这句话对于工程师或者架构师同样适用:许多工程师自以为不受任何学理之影响,却往往沦为某个过去架构思想的奴隶。
Filecoin整体建立在区块链存储架构之上,没有脱离区块链架构的范畴。Filecoin基本上遵循了链上与链下分离的原则和Layer0、Layer1、Layer2分层的原则。我们参考Google的分布式存储架构模型,再加上区块链的元素,所得到的基本架构如下图所示。这种架构背后的限制和设计空间已经在文章《区块链存储的问题和挑战》中系统详细讨论过。
而作为一个软件系统,Filecoin依然遵循分层和模块化的基本思想。Filecoin的架构经过数次迭代,到目前稳定的Lotus版本,基本架构演进到了无服务器和云函数的架构模型(如下图所示)。
在分层和模块化的基础之上,Filecoin在软件设计和架构上进行了一些创新:
软件的哲学方面通常是以理性为基础,以批判或者系统的方式进行思考。以下是我总结的Filecoin设计中的重要哲学:
总体来说,Filecoin在架构与哲学方面是偏执的,缺乏灵活性。从Filecoin到Lotus,到其他2种实现,到复制证明算法的变更,再到目前的互操作性测试,官方团队不止一次推翻以前的项目和代码,也因此不止一次让社区和矿机厂商措手不及和无法理解。但Filecoin所坚持的哲学和目标没有变更,那就是用研究支撑规范,让实现遵循规范,用反复迭代和多种实现保证实现的安全。
我想,正是这种偏执,让Filecoin与众不同。
最多零知识证明的系统