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

前言

缘起

我们在2017年下半年至2018年上半年期间,牺牲了大量的业余时间,一直在做IPFS这门新兴技术的相关解读、线下MeetUp工作。我们在知乎专栏和微信公众号上建立的《IPFS指南》是中国第一个系统、全面地介绍这门技术的中文资料站。机械工业出版社华章公司的杨福川老师在第一时间找到我们,希望我们能够为国内开发人员写一本IPFS技术相关的图书,方便国人更好地理解并应用这门技术。于是,便有了你手中的这本书。

为什么要写这本书

IPFS这门技术诞生于2014年,由协议实验室(Protocol Labs)创建。但是,直到2017年年中才逐渐走入大众视野,因为其能与区块链完美结合,所以使得其成为近几年最火热的技术之一。然而,国内却没有与IPFS技术相关、利于国人阅读、知识体系结构相对系统全面的中文学习资料。因此,我联系了当时在这个领域钻研摸索最多的几位布道者和专家,一起撰写了这本书,希望能帮助国内IPFS技术爱好者更加快速地学习、掌握、应用这门技术。

IPFS这门技术还在不断演化中,它引导的是一场真正的网络协议革命,是一种全球化思维的碰撞,是一种突破传统的海量数据共享的模式。IPFS可能不是这场革命的导火索,但是我认为,它至少能带领大家去学习和认识这种思维,这是一件非常有意义的事情。

读者对象

本书适合有一定区块链常识和基础,有软件开发能力,但是不了解IPFS,想学习IPFS的技术原理,并基于IPFS做相关开发工作的读者。主要包含以下人员:

❑ IPFS技术爱好者;

❑ 网络协议技术爱好者;

❑ 分布式存储技术爱好者;

❑ 区块链技术爱好者;

❑ 区块链领域从业者;

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

本书特色

首先,IPFS是在区块链技术蓬勃发展的情况下得到广泛认可的,本书除了针对IPFS技术本身进行讲解以外,还增加了大量区块链相关知识作为铺垫和补充,包括单独设立第5章来重点介绍IPFS的激励层——Filecoin区块链项目。

其次,本书不仅介绍了IPFS技术本身的细节,还加入了大量笔者在开发中总结的经验和技巧,并搭配了相关生态链中较新的软件开发工具和前沿的尖端技术。在技术深度和广度两个方面都兼顾得比较妥当,有明显的层次感。

再次,本书提供了大量的项目实例,这些项目实例能够帮助读者更好地理解IPFS技术和应对一些业务场景。

最后,本书是一本相对全面和系统地解读了IPFS和Filecoin技术的书籍,也是一本国内由相关领域中最早期的布道者、专家合力编写的中文权威书籍。

如何阅读本书

本书分为三大部分:

第1部分为基础篇,包括第1章。简单地介绍了IPFS的概念、优势和应用领域,旨在帮助读者了解一些基础背景知识,并从宏观层面来认识IPFS技术所具有的创新性。

第2部分为原理篇,包括第2~5章。从内部详细剖析IPFS的底层基础、协议栈构成,以及libp2p、Multi-Format、Filecoin等模块。

第3部分为实战篇,包括第6~8章。以工程化的方式,从基础至进阶,讲解了IPFS技术的实际使用,并通过讲解两个不同风格的项目案例,让读者了解不同语言实现的IPFS协议栈。

其中,第3部分以接近实战的实例来讲解工程应用,相比于前两部分更独立。如果你是一名资深用户,已经理解IPFS的相关基础知识和使用技巧,那么你可以跳过前两个部分,直接阅读第3部分。如果你是一名初学者,则务必从第1章的基础理论知识开始学习。

勘误和支持

由于作者的水平有限,加之IPFS等相关技术更新迭代快,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我们创建了存放本书相关资料和便于信息反馈的Github仓库https://github.com/daijiale/IPFS-and-Blockchain-Principles-and-Practice。如果大家在阅读本书的过程中遇到任何问题,可以通过上述渠道以Issue的形式反馈给我们,我们将在线上为读者提供解答。期待能够得到你们的真挚反馈。本书的相关源码和资料文件除了可以从华章网站参见华章网站www.hzbook.com。——编辑注下载外,还可以从上述渠道下载。

致谢

首先要感谢协议实验室开创的这款具有划时代意义的新型网络协议。

其次要感谢机械工业出版社华章公司的杨福川、孙海亮、李良三位老师为本书顺利出版所付出的努力,没有他们的支持,本书无法如期顺利完成。

同时感谢知乎专栏《IPFS指南》及国内因IPFS技术自发组织而成的众多爱好者社区,他们对IPFS技术的执着和探索是我们创作的动力,在和他们的交流中我们发现了本书的价值和创作素材。

感谢我的合作者董天一前辈,他在计算机系统、软件工程、经济学基础、博弈论、区块链存储方面学识渊博,使我在与他合作著书的过程中不断进步。同时,董天一前辈对本书的审稿和校稿工作也做出了重要的贡献。

感谢我的另一位合作者黄禹铭,他在区块链学术领域积累丰厚,对本书的众多技术进行了详细的原理解读和分析,尤其是在第1章、第2章、第4章和第5章。

感谢新加坡国立大学Andrew Lim教授对本书的大力支持以及TangJing助理教授对我们技术上的指导。

谨以此书献给我最亲爱的家人,以及中国众多热爱IPFS和区块链技术的朋友们。

戴嘉乐