什么是libp2p?

协议实验室下有五个相互关联却又各自独立的项目,分别是IPFS、Filecoin、libp2p、IPLD和Multiformats。很多人已经对IPFS与Filecoin比较熟悉,而libp2p在中文世界中似乎少有人提及。

原本libp2p是IPFS项目的一个组件,协议实验室在今年7月正式将libp2p提升等级,突显了libp2p的重要性。

协议实验室在开发IPFS时,遇到了许多问题,如大量的异构设备、文件系统、网络环境等等,为了兼容和升级协议,抽象出了底层逻辑,形成了libp2p模块。

libp2p是IPFS与Filecoin的网络层,分为交换层、路由层和网络层。如下图所示,libp2p不仅是IPFS与Filecoin的基础设施,还是未来p2p应用、区块链和物联网的基础设施。

libp2p为搭建p2p应用提供了框架,开发者使用libp2p可以方便快捷地搭建p2p应用。libp2p究竟是什么呢?

首先,libp2p是一个为p2p网络构建的基础模块。从本质上说,libp2p高度抽象了主流的传输协议,使得上层应用搭建时完全不必关注底层的具体实现。最终libp2p实现的效果是:只要两个设备之间存在链接的可能,无论设备所处的环境、运行的协议,libp2p都能让设备的互联成为现实,正如IPFS的名字一样,实现星际互联。

其次,libp2p是一个rpc框架库,具有接口的概念。该库与pb、json、messagepack等序列化库配合,给上层应用提供rpc调用能力。

在此之外,libp2p还实现了很多具有共通性的用户态接口,为开发者更快速地开发p2p应用提供了帮助,如多路复用链接、中继链接、身份信息交换等功能。

你可能感兴趣的:(什么是libp2p?)