IPFS底层协议—libp2p简述

  • 0_1540540990871_74297664-ef13-4865-8881-871256a91472-image.png

    libp2p是IPFS社区引入的一种P2P网络堆栈(可称之为IPFS的网络层,是IPFS的底层协议)。libp2p能够发现其他同级网络,而不需要需将资源集中式注册,从而使应用程序可以进行离线工作。

    在2018年7月, Davis Dias 解释说,“寻址网址”的设计本身是其脆弱性的根本原因。其主干中的小错误,可能导致关闭所有正在运行的应用程序。防火墙、路由问题、漫游问题的网络可靠性,会干扰在Web上获得流畅体验的用户。因此需要重新设计网络堆栈(网络堆栈指的是用于构建网站的组件或技术/语言/操作系统/等)。

    为了解决上述所有问题,行星间文件系统(IPFS)应运而生。它是一种基于内容寻址、数字签名和点对点分发的分散式网络协议。今天,IPFS被用于构建完全分布式(和离线能力!)的网络应用程序,这些应用程序也可以离线使用。IPFS保存并分发有价值的数据集,并移动数十亿个文件。

    IPFS催生了其他几个项目,而libp2p就是其中之一。它使用户能够不依赖于位置运行网络应用程序,从而不受运行时地址服务的影响。libp2p解决了在分散环境中处理众多协议的复杂性,有效地帮助用户仅使用单个协议与多个相同的节点连接,从而为下一代分散式系统铺平了道路。

    Libp2p功能

    #1 传输模块
    libp2p可以帮助应用程序开发人员,能够选择运行应用程序所需的模块。这些模块,根据它们正在执行的运行时间而变化。libp2p节点使用一个或多个传输,进行拨号并侦听连接。这些传输模块为接口传输规范定义了一个,用于拨号侦听的干净接口。

    #2 端口分配
    在libp2p出现之前,用户需要将侦听器分配给端口,然后将端口分配给特殊协议。这样做是为了让其他主机事先知道要拨打哪个端口。使用libp2p,用户不必事先分配端口。

    #3 加密通信
    为了确保加密连接,libp2p还支持一组模块,用于通过加密建立的每个通信。

    #4 对等端发现模块与路由
    对等端发现模块,帮助libp2p找到要连接的对等节点。通过对等路由有意发出的查询,进行查找网络中的其他对等节点,直到找到其它对等节点。内容路由机制用于查找内容在网络中的位置。

    在IPFS中使用libp2p

    libp2p现在被重构为自己的项目,以便其他用户可以使用它,得以成为其生态系统的一部分。它为IPFS和其他项目,提供了P2P连接、支持多种平台浏览器......以及其它许多优点。

    用户可以利用libp2p模块创建自己的libp2p包。他们可以使用默认功能设置,自定义自己的捆绑包。同时还考虑到了用户的需求,例如,该团队已经构建了一个工作版本的libp2p浏览器,利用浏览器传输充当IPFS的网络层。

    在 Keep Networks 中详细介绍了libp2p的使用方法。由于参与者需要知道如何进行相互联系,因此团队提出了一个简单的对等节点发现示例。他们使用了libp2p JS库来创建相互通信的发现节点。(示例网址:https://blog.keep.network/introduction-to-libp2p-57ce6527babe)

    libP2P在区块链应用程序中还有一个新的应用。

    IPFS用于区块链中区块的应用程序,其子协议(libp2p、multihash、IPLD)对于区块标准化非常有用。一个很好的例子是:使用libp2p在浏览器或“Node.js进程中”获取以太坊区块,并通过ethereum-vm运行它。

    随着区块链分布式计算的推进,libp2p正在互联网上发挥作用。如果想了解更多关于libp2p的内容,可以访问libp2p官方网站(https://libp2p.io/)。

    (本文由发表于packtpub,经由 Filecoin.cn 中国社区翻译整理)

    【往期文章】

    - IPFS快速入门-起源与原理

    - 史上最全Filecoin问题解答

    - 分布式Web玩家:IPFS的"竞争者or合作者"们?

    - IPFS最新动态

    识别二维码进入IPFS-Filecoin社群

    0_1540541127409_051e0cc7-2ad2-48d9-9d25-c4e710ea3482-image.png

登录后回复
 

加微信进群交流

与 Filecoin中国社区 的连接断开,我们正在尝试重连,请耐心等待