IPFS/Filecoin的架构解析

IPFS至少有八层子协议栈,自上而下用于标识、网络、路由、交换、对象、文件、命名、应用程序,每个协议栈各自工作并相互匹配。

身份层和路由层可以一起解释。通过Kademlia协议生成身份信息和对等节点的路由规则。Kad协议本质上是构建一个分布式松散哈希表。简而言之,加入DHT网络的每个人都必须生成自己的身份信息,然后负责通过这些身份信息存储资源信息和网络其他成员的联系信息。

网络层是核心,所使用的LibP2P可以支持任何传输层协议。NAT技术允许网络中的设备共享相同的Extranet IP。这是我们都经历过的家庭路由器的原理。

交换层是一种BT工具,如迅雷。雷电实际上模拟P2P网络并创建一个*服务器。当服务器注册用户请求资源时,让请求相同资源的用户组成一个小集群群,在这里共享数据。这种方法有缺点,因为服务器是由Thunderbolt维护的,如果出现故障,停机,下载操作就无法执行。

IPFS/Filecoin的架构解析

对象层和文件层适合于对象层和文件层的结合,它们管理IPFS上80%的数据结构,大多数数据对象都存在于Merkle Dag的结构中,这为内容寻址和重新访问提供了方便。文件层是一种新的数据结构,与DAG并置,使用与Git相同的数据结构来支持版本快照。

命名层具有自验证的特点(当其他用户获取该对象时,使用指纹公钥来验证公钥是否与NodeId匹配,从而验证用户发布对象的真实性,同时获得可变状态),并添加了IPNS的巧妙设计,使加密的DAG对象名具有可定义性并增强可读性。

最后,IPFS的核心价值在于在其上运行的应用程序。我们可以利用它的cdn样功能以非常低的成本带宽获得所需的数据,从而提高整个应用程序的效率。