我们首先从官方文档中一张比较经典的层级架构图开始,右边是 IPFS 的层级图,左边是对应现实网络中的一些实现形式。
(一) applications 应用层
这个很好理解,就是基于 IPFS 网络开发的应用。我们可以在 awesome 看到一些应用。生态能不能繁荣,肯定是需要开发者参与。
(二) naming 命名
SFS 中文是自我认证文件系统,熟悉其他区块链项目的同学应该很好理解。比如比特币,我们采用非对称加密算法给节点生成了公钥和私钥。通过公钥生成的地址一旦参与转账行为,就会成为比特币网络中一份子,所有节点都知道这个地址。那么怎么证明这个地址是属于你,这就是一个自证明的过程,通过与公钥配对的私钥就可证明所有权。同样对于 IPFS 来说,也采用同样的方式,每个节点的 ID 都是全局唯一的存在,你可以通过 ID 对应的私钥来证明你是这个节点的主人。
举个应用的例子,你有个静态网站想要上传到 IPFS 上,但是网站是需要一直更新内容的,更新后 hash 值变了,在 IPFS 上访问的链接都会变。解决办法是将节点 ID 指向生成的 hash 上。用户访问节点 ID 即可 。
其实不仅仅是文件系统,身份认证(OpenID, OAuth2)可能也会由于区块链的发展出现新的契机。比如 ArcBlock 在推广的 DID。
(三)merkledag
merkledag 是 IPFS 的核