当前位置:首页 > 知识 >

探索BTC龙与IPFS的技术架构

IPFS有八层子协议栈,从低往高分别为身份、网络、路由、交换、对象、文件、命名、应用,每个协议栈各司其职,又互相搭配。

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

网络层:lib2p可以支持任意传输层协议。ICENAT traversal框架整合了STUN、TURN和其他类型的NAT协议,该框架可以让客户端利用各种NAT方式打通网络,从而完成NAT通信,这对于IPFS的p2p网络非常重要。

交换层:类似迅雷、电驴这样的BT工具,IPFS团队把BitTorrent进行了创新,叫作Bitswap。它增加了信用和账单体系来激励节点去分享。用户在发送给其他节点数据时可以增加信用值,从其他节点接收数据则降低信用值。如果用户只接收数据而不分享数据,他们的信用分会越来越低,其他节点就会忽略他们。

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

命名层:具有自我验证的特性,当其他用户获取该对象时,使用指纹公钥进行验签,即验证所用的公钥是否与NodeId匹配。这样验证了用户发布对象的真实性,同时也获取到了可变状态。此外,IPFS还加入了IPNS这个巧妙的设计,使得加密后的DAG对象名可定义,增强了可阅读性。

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

猜你喜欢

关注我们

微信二维码

微信