13386501543

上义直销结算系统开发

13年行业经验,直销系统开发领航者

IPFS的三大核心工程模块

2021-08-05 18:25上一篇 |下一篇

信息革命的浪潮把IPFS/Filecoin推向了最前线!专业专注于共赢学习的目的是提高自己的认知,提高认知的目的是做出正确的选择,正确的选择不会浪费生命和金钱,反而会使人生丰富,实现财富的增长。

IPFS作为分布式的超媒体传输协议,在其多种特性中,三个工程模块库非常重要,几乎完成了IPFS的多种特性,今天的灵活社区告诉小伙伴,Multiformat、Libp2p和IPLD分别是什么值得注意的是,这三个模块库设计成轻耦合的堆栈模型,即模块之间的协同可以保证一定的独立性。就像以前说过IPFS和Filecoin之间,可以互相补充丰富的同时,也可以独立发展。Multi-Format自述格式协议库Multi作为英语单词的前缀,表示多种意思,Format表示格式、格式化。Multi-Format作为IPFS内的自我说明形式协议组件,为了解决各种编程语言和数据类型难以详细区分而诞生,Multi-Format可以提高数据的可读性,现在Multi-Format支持5种协议

Multi-Hash。

multi-Base。

multi-Addr。

multi-Codec。

multi-Stream。

①Multi-Hash描述哈希协议的存在目的是解决系统升级过程中,处理哈希算法的许多麻烦。例如,提示用户的哈希值不安全,简化哈希算法更新,不需要追加工具检查哈希等,总之哈希算法更安全。

②Multi-Base自述基础编译协议用于保存数据,说明该数据是如何编码的。因为可以自由选择输入和输出的代码类型,所以可以减少开发代码的复杂性。

③Multi-Addr自述网址协议为了将自述的信息添加到地址数据中,包括可读的UDF-8代码,实现用户向用户展示的版本,另一个是便于网络传输的16进制版本。

④Multi-Codec自述序列化协议为了使数据库更紧凑地自述编码解码器。可定义多种信息类型,与其他协议兼容。

⑤Multi-Stream自描码流协议用于实现自描的位列,主要用于网络传输。

Libp2pP2P网络协议模块库Lib作为前缀是库的意思,p2p是peertopeer,即点对点,个人对个人。Libp2p可以帮助我们连接各设备节点的网络通信库,直白点是任意两个节点无论在哪里,在哪个环境下,运行什么操作系统,NAT后。只要有物理连接的可能性,Libp2p就能完成这个连接,Lib2p2本身是工具库,感觉很强吗?为什么Libp2p如此重要?IPFS最初开发时,正式遇到了很多异构设备,这些设备运行着不同的操作系统、硬件和网络环境。

IPFS和Filecoin的运行有强大的网络层软件设施,Libp2p诞生,承担着异构统一的重大使命。从Libp2p的几个功能可以看出链接再利用、NAT通过(特别是中国)、ID交换、DHT发现、转播功能、RTT统计等。Libp2p是为P2P应用而设计的多模块,容易扩展网络堆栈库,主要应用于物联网、块链、分布式信息和文件传输。

因此,Libp2p不是块链,IPFS本身也不是块链项目,Filecoin是块链项目,必须明确。IPLD数据结构模型库IPLD是基于内容地址的数据模型的抽象层,很多网络系统之间不兼容,也不能协助工作,IPLD实现跨系统和协议的引用,统一这种数据结构。简单的理解是,过去查询一些信息是有路径的。例如,邮寄快递时,需要写下北京市朝阳区XX街YY区3号楼3单元ZZZ号,但是不需要使用IPLD,只要直接写下名字就可以了么简单吗?

有内容识别符CID的功能。这是自己说明的内容地址标志符,使用哈希实现内容地址。每个CIDv1由4个部分组成,分贝时的multibase类型前缀代码、cid版本号、multicodec内容识别符和完整的multihash。所以前面提到只写一个名字其实包括以上四种信息。IPFS和HTTP的区别在于,基于内容的地址,在网上搜索东西时,所有的东西都有完整的HHTP开头的网络地址路径,通过IPFS不是直接搜索内容。Keycomponentissing(URLs)withContAdressing(CIDURLs)大意是基于内容地址代替基于路径(位置)的地址,这是IPFS被认为可以获得HTTP的原因之一。总结一下。

Multiformat是为了在IPFS上兼容各种编程语言、哈希算法和编码方式。

Libp2p只能完全分离IPFS所需的网络层文件传输和通信。

IPLD是以内容地址为中心的数据结构。