云储未来:IPFS100问之第3问——IPFS架构有哪些

IPFS100问之第3问:IPFS架构有哪些

17634387-5cedecec20bb5c68.png
图片发自简书App

IPFS架构从上至下分为八层:

身份层:S/Kademlia生成,对等节点身份信息生成

网络层:任意传输协议,ICE NET & NET穿透

路由层:分布式松散哈希表定位  对等点和存储对象需要的信息

交换层:BitTorrent & Bit Swap 管理区块如何分布

对象层:Merkel-DAG 内容可寻址的不可篡改、去冗余的对象链接

文件层:类似Git 版本控制的文件系统:blog list tree commit

命名层:具有SFS(Self-Certified Filesystems )IPNS :DAG 对象命名可变

应用层:在IPFS上运行的应用程序利用最近节点提供服务,提升效率,降低成本

17634387-eef26be1d371a233.jpg
图片发自简书App

身份层和路由层可以一起解释。对等节点身份信息的生成以及路由规则是通过Kademlia协议生成制定,KAD协议实质是构建了一个分布式松散Hash表,简称DHT,每个加入这个DHT网络的人都要生成自己的身份信息,然后才能通过这个身份信息去负责存储这个网络里的资源信息和其他成员的联系信息。

网络层比较核心,使用的LibP2P可以支持任意传输层协议。NAT技术能让内网中的设备共用同一个外网IP,我们都体验过的家庭路由器就是这个原理。

交换层,是类似迅雷这样的BT工具。迅雷其实是模拟了P2P网络,并创建中心服务器。这种方式有弊端,因为服务器是由迅雷统一维护,如果出现了故障、宕机时,下载操作无法进行。

中心化服务还可以限制一些下载请求,人们发明了一种更聪明的方式就是Bittorrent,让每一个种子节点所要存储的数据,服务更加稳定。

IPFS团队把BitTorrent进行了创新,叫作Bitswap,它增加了信用和帐单体系来激励节点去分享,FileCoin有很大概率是基于Bitswap,用户在Bitswap里增加数据会增加信用分,分享得越多信用分越高。如果用户只去检索数据而不存数据,信用分会越来越低,其它节点会在嵌入连接时优先选择信用分高的。

对象层和文件层结合来谈,它们管理的是IPFS上80%的数据结构,大部分数据对象都是以MerkleDag的结构存在,这为内容寻址和去重提供了便利。文件层是一个新的数据结构,和DAG并列,采用Git一样的数据结构来支持版本快照。

命名层具有自我验证的特性:当其他用户获取该对象时,使用指纹公钥进行验证,这验证了用户发布对象的真实性,并且加入了IPNS这个巧妙的设计来使得加密后的DAG对象名可定义,增强可阅读性。

最后是应用层,IPFS核心价值就在于上面运行的应用程序,我们可以利用它类似CDN的功能,在成本很低的带宽下,去获得想要的数据,从而提升整个应用程序的效率。

每个协议栈各有职责,又相互搭配相互协作。最终做到能提高系统效率,降低系统成本。

转载于:https://www.jianshu.com/p/d547efe0b768

猜你喜欢

转载自blog.csdn.net/weixin_34247155/article/details/91146905