主页 > imtoken苹果下载 > 区块链:什么是P2P技术

区块链:什么是P2P技术

imtoken苹果下载 2023-07-05 05:43:11

摘要:对于包括比特币和以太坊在内的去中心化区块链平台,底层网络采用P2P技术实现,每个节点都是点对点的。 在这篇文章中,我们首先介绍一下P2P技术的特点和发展历史,让大家对P2P技术的来龙去脉有一个初步的了解。 那么在下一篇文章中,我将详细介绍第三代P2P技术(DHT)-Kademlia算法的实现原理。

一、p2p的定义

P2P 是peer-to-peer的缩写,又称点对点技术。 它是一个点对点网络,没有中央服务器,依靠用户组节点进行信息交换。 不同于传统的C/S中心服务器结构,P2P网络中的每个用户节点既是客户端又是服务器,可以作为服务器同时为其他节点提供服务。

​​​​

区块链:P2P技术是什么_结构化

​​​​​​

区块链:P2P技术是什么_单点故障_02

​​​​

带有中央服务器的中央网络系统(左)和没有中央服务器的对等网络(右)

2.p2p的特点

在传统的C/S模式网络系统中,客户端之间的交互需要依赖中心化的服务器。 当网络规模变大时,这些中心服务器的负担会越来越重,很容易成为网络瓶颈。 并且一旦服务器崩溃,将导致整个网络瘫痪(单点故障风险)。 但由于P2P网络中没有中心服务器,因此不存在单点性能瓶颈。 每个节点在作为客户端的同时,也可以作为服务器为相邻的其他节点提供服务,大大提高了资源利用率。

总结起来比特币中节点的功能有哪些,P2P网络的特点有以下几点:

(1) 可扩展性。 在 P2P 网络中,用户可以随时加入和离开网络。 并且随着用户节点的加入,系统的整体服务能力也相应提升。 例如,在p2p下载中,加入的用户越多,P2P网络中提供的资源就越多,下载速度也越来越快。

(2)鲁棒性。 由于P2P中没有中心化的服务器,它具有先天的抗攻击性和高度容错性。 即使网络中的某个节点受到攻击或掉线,也不会影响整个系统的正常运行。 因为 P2P 网络中的每个节点都可以充当服务器。

(3)性价比高。 具有P2P结构的网络可以有效地利用互联网中大量分散的普通用户节点。 充分利用这些普通节点中空闲的CPU、带宽和存储资源,从而达到高性能计算和海量存储的目的。 例如:迅雷的星域CDN产品就是充分利用每个普通用户机器闲置的网络资源,提供高性价比的服务。 类似的还有360共享云、国外sia网盘等。

(4) 隐私保护。 在P2P网络中,由于信息的传输是分散在各个节点之间的,不需要经过中央服务器。 这降低了用户隐私信息被窃听和泄露的风险。

(5)负载均衡。 在P2P网络中,资源分布存储在多个节点上,每个节点都可以充当服务器。 当一个节点需要获取资源时,只需要向相邻节点发送请求,很好地实现了整个网络的负载均衡。

三、p2p的主要功能

P2P网络的主要功能可以分为以下三种:

(1) 数据发布和传输有三种方式,即一对一(如即时通讯)、一对多(如群组通讯、消息广播)和多对多(如内容分发应用:BT、PPS等)

(2)数据存储和检索分为基于结构化的P2P网络方法和基于非结构化的P2P网络方法。 结构化P2P网络也是目前应用最广泛的基于分布式哈希表(DHT)的P2P网络,其网络拓扑结构是确定性的。 非结构化P2P网络的资源存储通常与网络拓扑无关,如Gnutella。

(3) 目前分布式数据处理技术大多采用主/从架构。 基于P2P网络,还可以进行分布式数据处理。

4. p2p的发展历史

P2P技术的发展可分为以下三个阶段:

(1) 第一阶段:中心化点对点网络

该网络采用集中式拓扑结构。 由于文件的索引信息存储在中央服务器上,每个子节点都需要连接到中央服务器上寻找资源。 它最大的优点是维护简单,索引速度快。 但由于整个网络对中心服务器的依赖性很强,容易造成性能瓶颈和单点故障问题。

一个典型的代表是: napster 。

​​​​

区块链:P2P技术是什么_单点故障_03

​​​​

(2) 第二阶段:非结构化分布式网络

这种网络采用Flooding搜索算法,每次搜索将要查询的消息广播给网络上的所有节点。 当一个节点想要下载一个文件时,该节点将生成一个带有文件名或关键字的查询,并将该查询发送给与其连接的所有节点。 如果这些节点中有文件,则与该节点建立连接。 如果没有,则继续将查询转发到相邻节点,直到找到文件位置。 过程如下图所示。

可以发现,当网络规模变大时,这种搜索方式会引起“广播风暴”,严重消耗节点的网络带宽和系统资源。 虽然它避免了集中式对等网络的“单点故障”问题,但效率很低。

典型:Gnutella 的早期版本。

​​​​

区块链:P2P技术是什么_客户端_04

​​​​

(3) 第三阶段:结构化分布式网络

目前应用最广泛的是结构化分布式网络,它是基于DHT(Distributed Hash Table)网络。 为了达到Napster的高效和正确以及Gnutella的去中心化,DHT采用了更加结构化的基于键值对的路由方式(如下图所示)。

​​​​

区块链:P2P技术是什么_结构化_05

​​​​

目前实现DHT协议的有Kademlia和Chord算法。 其中,Kad算法因其简单易用而被广泛应用。 其中,比特币和以太坊网络中的P2P网络使用的是Kad算法。 这也是我们下一篇文章要重点介绍的内容,这里就不做说明了,留到下一篇文章。

五、p2p的应用

(1)文件内容共享和下载。

P2P技术的使用可以使计算机不经过服务器直接共享内容和分发数据,使互联网上任意两台机器之间共享数据成为可能。 例如Napster、Gnutella、eDonkey、eMule、Maze、BT,以及现在PPS、腾讯视频客户端等采用的P2P流媒体技术,让播放速度更加流畅。

(2)计算能力和存储共享。

基于P2P网络的分布式结构,构建分布式存储系统,实现存储共享比特币中节点的功能有哪些,提供高效、低成本、负载均衡的文件访问功能。 比如国外的Sia、Storj等分布式云存储平台,不依赖第三方,集中存储空间大,避免数据泄露,保证安全。 同时,由于任何人的主机都可以提供存储服务,降低了门槛,大大降低了存储成本。 如下,使用分布式存储的Storj价格为每月0.015美元,亚马逊提供的AWS价格为0.023美元。

​​​​

区块链:P2P技术是什么_客户端_06

​​​​

同时,CPU处理能力也可以共享。 比如360的共享云计划和星域CDN等,充分利用每个人机器闲置的计算资源,提供计算服务。

​​​​

区块链:P2P技术是什么_服务器_07

​​​​

(3) 基于P2P 的即时通讯。

比如现在的Skype通话软件,无论是连接建立还是数据传输,都采用P2P方式,保证了良好的通话质量。

(4) 基于P2P的协同处理和服务共享平台。

常见的协同处理包括视频会议、共享白板、协同协作等,上述功能也可以基于P2P技术实现。 不同的是,这种实现不需要中央服务器,参与协同工作的计算机可以直接建立点对点连接。 比如被微软收购的Groove协作软件平台。