米鼠商城

多快好省,买软件就上米鼠网

最新项目

人才服务

靠谱的IT人才垂直招聘平台

LIBP2P可以解决哪些问题?

  • lxd01
  • 7
  • 2021-03-02 14:33

libp2p简介

区块链中心化的概念已经深入人心,但是实际上区块链是一个分布式点对点去中心化网络。大部分人对点对点的概念是很模糊的,点对点网络实际上是参与者(称为对等点或节点)在或多或少“平等”的基础上彼此直接通信的网络。这并不一定意味着所有对等点都是相同的;有些对等点可能在整个网络中扮演不同的角色。然而,对等网络的定义特征之一是它们不需要一组行为“客户端”完全不同的特权“服务器”,比如客户端/服务器模型。因为对等网络的定义相当宽泛,所以已经建立了许多不同类型的系统,它们都属于“对等”的范畴。大家比较熟悉的是BitTorrent这样的文件共享网络,而区块链网络(比特币以太坊、DMCH)也是点对点网络。

libp2p原本是协议实验室(protocollab)IPFS项目的网络层,后来因为其具有颠覆传统互联网架构的能力被独立成一个单独的项目,我们从图1的IPFS栈结构可以有更直观的认识。简单来说,libp2p就是帮助链接节点的一个库,任意两个节点,不管在哪里,不管处于什么环境,不管运行什么操作系统,不管是不是在NAT之后,只要他们有物理上链接的可能性,那么libp2p就会帮你完成这个链接。

现在让我们举一个例子来阐述libp2p的重要性,假设老祖告诉我们达摩社区20万社区成员需要访问一个网站查阅信息,网站服务器就会同时接受20万个http请求,这个过程导致了以下几个问题:

1.      网站服务器可能无法同时响应20万个请求,因此大部分社区成员访问不了网站。

2.      运营商机房故障,导致使用该运营商的社区成员访问不了网站。

3.      网站的内容由于各种原因不能被访问,导致某些国家的社区成员访问不了网站。

这些问题暴露出来的问题在于我们的网站信息是中心化的,某些因素对社区成员能否访问网站有决定性因素。libp2p就是用于解决这个问题,假设我们20万社区成员都安装了DMCH的服务,DMCH借助libp2p把20万个社区成员互联,此时当社区成员去访问网站的时候,情况从访问一个中心化网站变成了社区成员之间的互相访问,这将形成访问效率和访问成功率指数级上升的局面。

libp2p主要解决的问题

传输

libp2p的基础是传输层,XM外汇MT4xmgroups.com它负责从一个对等点到另一个对等点的实际数据传输和接收。目前使用的跨网络发送数据的方式有很多种,更多的方式正在开发中,还有更多的方式有待设计。libp2p提供了一个简单的接口,可以修改该接口以支持现有和未来的协议,从而允许libp2p应用程序在许多不同的运行时和网络环境中运行。

身份

在一个拥有数十亿联网设备的世界里,知道自己在和谁说话是安全可靠通信的关键。libp2p使用公钥加密作为对等身份的基础,这有两个互补的目的。首先,它以PeerId的形式为每个对等点提供一个全局唯一的“名称”。其次,PeerId允许任何人检索所标识的对等体的公钥,从而实现对等体之间的安全通信。

安全

我们必须能够在对等方之间安全地发送和接收数据,这意味着我们需要信任通信的对等方的身份,并且任何第三方都不能读取我们的对话或进行实时更改。libp2p支持将传输提供的连接“升级”到安全加密的通道中。这个过程很灵活,可以支持多种加密通信的方法。当前默认使用secio,secio正在开发支持TLS1.3。

对等路由

当您想要向另一个对等点发送消息时,您需要两条关键信息:他们的PeerId,以及在网络上定位他们的方法以建立连接。在许多情况下,我们只有我们想要联系的对等方的PeerId,因此我们需要一种方法来发现他们的网络地址。对等路由是通过利用其他对等设备的知识来发现对等设备地址的过程。在对等点路由系统中,对等点可以提供我们需要的地址(如果他们有地址),或者将我们的查询发送给另一个更有可能获得答案的对等点。随着我们联系越来越多的对等点,我们不仅增加了找到我们正在寻找的对等点的机会,而且在我们自己的路由表中构建了更完整的网络视图,这使得我们能够回答来自其他人的路由查询。libp2p中当前稳定的对等路由实现使用分布式哈希表,使用Kademlia路由算法迭代地将请求路由到更接近所需PeerId的位置。

内容发现

在某些系统中,我们更关心的是他们能为我们提供什么,而不是我们在和谁交谈。例如,我们可能想要一些特定的数据,但是我们并不关心从谁那里得到它,因为我们能够验证它的完整性。libp2p为此提供了一个内容路由接口,使用的是基于Kademlia的分布式哈希表。

消息传递/PubSub

向其他对等点发送消息是大多数对等系统的核心,而pubsub(Publish/Subscribe的缩写)是向感兴趣的接收者组发送消息的一种非常有用的模式。libp2p定义了一个pubsub接口,用于向订阅了 “主题”的所有对等点发送消息。该接口目前有两个稳定的实现方法:Flowdsub使用非常简单但效率低下的“网络泛洪”策略,而gossipsub定义了一个可扩展的gossip协议。Episub也正在积极开发中,episub是一种扩展的gossipsub,它针对单源多播场景进行了优化。



这里给大家推荐一个在线软件复杂项交易平台:米鼠网 https://www.misuland.com

米鼠网自成立以来一直专注于从事软件项目人才招聘软件商城等,始终秉承“专业的服务,易用的产品”的经营理念,以“提供高品质的服务、满足客户的需求、携手共创双赢”为企业目标,为中国境内企业提供国际化、专业化、个性化、的软件项目解决方案,我司拥有一流的项目经理团队,具备过硬的软件项目设计和实施能力,为全国不同行业客户提供优质的产品和服务,得到了客户的广泛赞誉。



如有侵权请联系邮箱(service@misuland.com)

猜你喜欢

评论留言