IPFS堆栈分为三个基本层:
1.网络层;
2.数据定义和命名层;
3.数据层。
网络层
去中心化网络中的核心挑战之一是P2P网络,和设计在P2P网络中与集中式系统并行工作的协议。
Libp2p项目解决了这一挑战,其提供了模块化堆栈,可用于与现有协议(例如WebRTC或任何新的传输层协议)一起构建P2P网络。
libp2p的功能:
Libp2p是一个模块化的网络堆栈,可以使用全部或部分堆栈来构建应用程序。
Libp2p提供传输和对等协议,以构建大型、健壮和可扩展的网络应用程序。
Libp2p可以与TCP、UDP、WebRTC和WebSockets一起使用。
Libp2p提供了许多模块,例如传输接口、发现、分布式哈希查找和路由。
Libp2p提供内置的加密功能以防止窃听。
Libp2p提供了内置的漫游功能,因此服务可以在没有任何干预和数据包丢失的情况下切换网络。
Libp2p是建立P2P网络层的解决方案。
数据定义和命名层
通过哈希进行内容寻址在分布式系统中被广泛使用,IPLD为所有基于哈希的协议提供统一的名称空间,使用IPLD,数据可以跨各种协议进行遍历,以浏览和查看分布在P2P网络中的数据。
IPNS是一个为存储在IPFS上的内容创建可变地址的系统,每次内容发生变化时,内容的地址都会发生变化。
数据层
IPFS提供了一种跨P2P网络存储和检索数据的方法,IPFS使用IPNS和Libp2p在P2P网络之间创建、命名和分发内容。
IPFS的功能
IPFS为Web 3.0提供了对等超媒体协议;
IPFS可以与现有协议和浏览器一起使用,这可以使集中式Web平滑过渡到Web 3.0;
IPFS使用Libp2p支持P2P网络;
IPFS数据是加密安全的;
IPFS可以在流服务中节省大量带宽。
IPFS正在积极开发中,并且开发人员在IPFS之上运行了一些出色的应用程序。IPFS也试图解决激励问题,为了激励那些参与并为网络贡献价值的人,IPFS创建了一个名为Filecoin的硬币。