英国经济学家凯恩斯在《就业,利息和货币理论》中说过:许多实干家自以为不受任何学理之影响,却往往沦为某个已故经济学家的奴隶。这句话对于工程师或者架构师同样适用:许多工程师自以为不受任何学理之影响,却往往沦为某个过去架构思想的奴隶。
Filecoin整体建立在区块链存储架构之上,没有脱离区块链架构的范畴。Filecoin基本上遵循了链上与链下分离的原则和Layer0、Layer1、Layer2分层的原则。我们参考Google的分布式存储架构模型,再加上区块链的元素,所得到的基本架构如下图所示。这种架构背后的限制和设计空间已经在文章《》中系统详细讨论过。
而作为一个软件系统,Filecoin依然遵循分层和模块化的基本思想。Filecoin的架构经过数次迭代,到目前稳定的Lotus版本,基本架构演进到了无服务器和云函数的架构模型(如下图所示)。
在分层和模块化的基础之上,Filecoin在软件设计和架构上进行了一些创新:
- 定义清晰的规范,实现必须和规范一致
- 用多个实现保证实现遵循规范以及整体的安全性
- 用分层组建细腰,参考《》
- 用模块化实现组件重用和多个实现之间的互操作性
- 用无服务器实现弹性扩展和功能即服务
- 用系统构建系统
软件的哲学方面通常是以理性为基础,以批判或者系统的方式进行思考。以下是我总结的Filecoin设计中的重要哲学:
- 关注协议,没有人是一座孤岛。
- 关注互联网中被破坏的东西。
- 在项目初始阶段采用费曼算法来解决研究和开发中遇到的问题,具体为三个步骤:(1) 将问题写下来。(2) 认真思考。(3) 将方案写下来。
- 在预研方面,采用巴斯德象限来弥合基础研究和应用研究之间的鸿沟,既关注科学本身,又关注社会价值。
- 在软件开发上采用C4模型(上下文,容器,组件和代码),通过抽象和不同级别的详细说明为开发人员构建有效的(从代码到架构)交流基础。C4模型的关键在于抽象,落脚点在于交流。
- 生产力归结为快速决策和快速行动。Filecoin在软件开发和项目管理中采用OODA方法(Observe-Orient-Decide-Act)。
- 为了避免落入康威定律中组织结构与系统结构同态的陷阱,Filecoin团队一开始就进行了远程优先的工作策略,让团队组织适应通信架构。
- 用软件来解决软件的问题(Ubercalc系统)。如胡安所说,Filecoin开发中遇到了很多难题,比如巨大参数空间的优化问题,这些问题如此艰巨而又困难,以至于不得不通过开发软件来解决。
- 可验证市场协议将是区块链的下一个杀手级应用。
- 比特币锁定的是能量,Filecoin锁定的是信息。而目前阶段Filecoin锁定的是能量+信息。这需要单独的一篇文章。
- Filecoin最重链原则:利他即利己。
- 胡安为什么要创立协议实验室?他的初心和哲学都在这篇文章中了:《》。
- 是什么让Filecoin与众不同?Filecoin官方总结了三个方面:复制证明、可验证市场和有用共识。
总体来说,Filecoin在架构与哲学方面是偏执的,缺乏灵活性。从Filecoin到Lotus,到其他2种实现,到复制证明算法的变更,再到目前的互操作性测试,官方团队不止一次推翻以前的项目和代码,也因此不止一次让社区和矿机厂商措手不及和无法理解。但Filecoin所坚持的哲学和目标没有变更,那就是用研究支撑规范,让实现遵循规范,用反复迭代和多种实现保证实现的安全。
我想,正是这种偏执,让Filecoin与众不同。
最多零知识证明的系统
本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。