div#pop_ad { opacity: 0; }
AD
首页 > 数字货币 > 正文

IPFS的三大核心工程模块-挖币网_比特币BTC_以太坊ETH_IPFS矿机挖矿

[2021-01-29 00:09:12] 来源: 编辑:wangjia 点击量:
评论 点击收藏
导读: 专业专注 共建共赢 学习的目的是为了提高自己的认知,提高认知的目的是为了做出正确的选择,而正确的选择才不会让你浪费生命和金钱,反而会让你更加丰富人生和实现财富增长。 IPFS作为一个分布式的

 专业专注    共建共赢 学习的目的是为了提高自己的认知,提高认知的目的是为了做出正确的选择,而正确的选择才不会让你浪费生命和金钱,反而会让你更加丰富人生和实现财富增长。

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

Multi-Hash

multi-Base

multi-Addr

multi-Codec

multi-Stream


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

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

③Multi-Addr 自描述网络地址协议
为了把自描述的信息添加到地址数据中,包含两类版本,一类是具有可读性的UDF-8编码,实现用户向用户展示的版本,另一类是方便网路传输的十六进制版本。

④Multi-Codec 自描述序列化协议
为了让数据库可以更加紧凑地自描述的编码解码器。它能定义多种信息类型,而且与其他协议可以做到兼容 。

⑤Multi-Stream 自描述编码流协议用于实现自描述的位串,主要是用在网络传输中。 
Libp2pP2P网络协议模块库
Lib作为前缀是“库”的意思,p2p是peer to peer,即点对点,个人对个人。
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。
所以,前面提到只写一个名字实际上是包含以上4种信息在内的。
而IPFS和HTTP的不同之处就在于这里,基于内容寻址,当你在网络搜搜东西的时候,每一个东西都是有一个完整的HHTP开头的网络地址路径的,而通过IPFS则不是,而是直接寻找内容。
“Key component is replace Location Addressing(URLs) with Content Addressing (CID URLs)”
大意是基于内容寻址代替基于路径(位置)寻址,这就是IPFS之所以被认为能够取到HTTP的原因之一。
 
总结一下

Multiformat是为了使各类编程语言、哈希算法和编码方式可以在IPFS上兼容工作。


Libp2p是为了将IPFS所需的网络层文件传输和通信只能完全分隔开。


IPLD是为了能够连接起各类以内容寻址为主的数据结构。




所以,如果小伙伴们还有些许不理解的话,重新回到文章开头再读一遍吧。温故而知新哟~ 




声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

查看更多:

为您推荐