Filecoin原理与实现
上QQ阅读APP看书,第一时间看更新

前言

回望过去80年,计算机改变了人类的生活方式,网络承载了人类的大部分活动。如今,我们正在快速迈进数据时代的新纪元。从自动驾驶汽车到人形机器人,从智能个人助理到智能家居设备,我们周围的世界正在发生根本的变化,改变着我们的生活、工作和娱乐方式。希捷在《数据时代2025》中将上述人类的数字化进程描述为“全球数据圈”(global datasphere)。数据存储是数字化最重要的基础,也是发展得非常快的领域。据IDC预测,到2025年,全球数据圈将扩展至163ZB(1ZB等于1万亿GB),相当于2016年所产生的16.1ZB数据的10倍。这种超速增长是过去数十年计算技术发展的必然结果。计算能力、数据存储和可用性的巨大进步催生了数字技术与服务的全新应用类型和场景。由此产生的需求反过来又推动着我们收集、管理、处理和交付数据的能力得到进一步发展,从而顺应企业工作流程和人们日常生活的需求。

本书介绍分布式存储网络Filecoin是如何从数据出发来构建Web 3.0的。Filecoin是一个使用区块链技术的去中心化、点对点的数字存储市场,属于计算第一性原理中的存储部分。Filecoin构建在星际文件系统(IPFS)之上,并设计了具备强大可组合性的存储单元——扇区来实现互联网的通用“磁盘”,允许用户出租这些未使用的“硬盘”空间并获得通证回报,其主要目的是为世界各地的组织和个人提供一种新的数据存储方式。本书不仅介绍Filecoin的演进历程、设计细节和最新发展,还介绍第三代区块链的核心技术,比如信标链、PoW+PoS的融合共识、Actor行为人模型、Gas资源定价模型、DAG链、通用虚拟机等。本书是Web 3.0工程师、科研工作者、分布式存储从业者、区块链爱好者不可多得的学习材料和案头参考书。

写作概述

焜耀研究院诞生于原力区。自2017年开始,原力区作为一个分布式存储的技术社区涉足分布式存储技术IPFS/Filecoin的推广、研究和开发工作。Filecoin是在IPFS之上建立的以区块链为技术底层的去中心化存储和检索市场,也是一套完整的协议。

作为一个区块链项目,Filecoin融合了大量的区块链相关的最新发展,以及在存储证明、共识机制和经济模型等方面的大量创新。这就使得Filecoin技术兼容并蓄,底层技术需求广泛而且比较复杂。尽管Filecoin是一个完全开源的项目,其原理、设计和实现都是公开的,但是对于一般读者而言,要理解Filecoin技术仍然比较困难,尤其在大多数技术资料都是英文论著的情况下,对于中国读者,这相当于又多了一道门槛。

幸运的是,在Filecoin协议、设计和实现发展的数年内,焜耀研究院全程参与,并作为重要的社区成员持续贡献设计和代码。焜耀研究院不仅是Filecoin技术的推广者,还是Filecoin集群架构客户端Venus的开发者和维护者。在充分理解Filecoin的原理和实现的基础上,焜耀研究院致力于将Filecoin这个最新的分布式存储技术介绍给更多的技术人员和区块链爱好者,为互联网的发展尽一份绵薄之力。

焜耀研究院在前期研究的基础上,按照从原理到实现的逻辑对内容进行组织整理。由于Filecoin一直处于发展过程中,所以我们对书稿不断修订,并终于在Filecoin主网上线一年之后完成此书。从开始筹划到完成书稿,历时16个月。

读者对象

本书所面向的读者群比较广泛,不仅适合那些希望了解分布式存储原理和实现的技术人员,也适合希望了解区块链技术原理和实践的读者。主要读者对象包括:

IPFS/Filecoin技术爱好者和生态从业者。

分布式系统的技术人员和开发者。

区块链技术爱好者。

网络协议和网络安全技术爱好者。

大型系统高效设计的技术人员。

Web 3.0爱好者和从业者。

开设相关课程的大专院校师生。

如何阅读本书

本书分为三篇:原理篇、实现篇和拓展篇。

原理篇讲述Filecoin的原理与设计,包括第1~7章。这一篇在简单介绍Filecoin基础知识和技术发展的基础上,着重对Filecoin的设计和原理进行比较详细的阐述,包括证明系统、经济系统、共识算法以及存储和检索市场的设计等,旨在帮助读者由浅入深地了解Filecoin的设计和创新。

实现篇讲述Filecoin的基础技术和实现,包括第8~14章。这一篇的重点在于Filecoin的工程实现,即Filecoin的大量创新如何落实到代码上,构建可以运行的系统和网络,包括Filecoin的节点实现、区块链的基本构建方法、虚拟机及相关角色的构建,以及存储和检索服务的保障等。本篇主要以流行的Filecoin实现——Lotus和Venus为基础进行介绍。

拓展篇讲述Filecoin的技术创新和生态探索,包括第15~17章。这一篇主要介绍Filecoin的发展创新对区块链世界的影响,Filecoin未来的可能发展方向,并对Filecoin生态发展之路进行初步探索。希望这些内容对读者有一些启发,并激励读者参与到分布式存储的建设中。

本书涵盖技术介绍和探讨,读者可以选择感兴趣的部分进行精读。原理篇提供了大量的基础介绍和设计背景知识,拓展篇关注Filecoin的发展和生态,这两篇适合所有读者阅读。实现篇包含更多的技术细节和代码,适合希望了解Filecoin的实现以及进行Filecoin开发的读者阅读。

素材、勘误和支持

Filecoin是一个开源项目,大多数设计和代码都遵循MIT+Apache 2.0的开源协议,可以免费使用。Filecoin也是一个社区广泛参与的项目,此项目的贡献者达数千人之多。我们在Filecoin的设计和建设过程中一直积极参与,是核心开发者之一。

本书的素材大多来源于Filecoin的设计和研究文档,以及对Filecoin的实现代码的分析。同时,我们在参与Filecoin建设的过程中,也产出过不少技术分析成果,其中有少量的在互联网上发表过,大多数没有发表。这些技术分析成果被包含在本书中,以构建完整的知识体系。

Filecoin是一个新生事物,去中心化存储技术也处于发展初期。虽然我们一直参与Filecoin网络的设计和建设,但由于水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我们创建了GitHub仓库[1]用于存放相关资料。如果大家在阅读本书的过程中有任何意见或建议,欢迎通过GitHub以Issue的方式提出来,以便我们进一步改进。期待得到你们的反馈和支持。

另外,Filecoin技术非常复杂,本书不可能面面俱到,Filecoin的持续更新也不可能及时反映在本书之中,建议大家经常浏览Filecoin的网站(https://filecoin.io),以及Filecoin在GitHub上的代码(https://github.com/filecoin-project),其中有大量的项目在持续开发中。


[1] 本书的GitHub地址:https://github.com/ipfs-force-community/FilecoinDesign-Implementations。