A. 区块链核心技术-P2P网络
点对点网络是区块链中核心的技术之一,主要关注的方面是为区块链提供一个稳定的网络结构,用于广播未被打包的交易(交易池中的交易)以及共识过的区块,部分共识算法也需要点对点的网络支撑(如PBFT),另外一个辅助功能,如以太坊的消息网络,也需要点对点网络的支持。
P2P网络分为结构化和非结构化网络两类。结构化网络采用类似DHT算法来构建网络结构;非结构化网络是一种扁平的网络,每个节点都有一些邻居节点的地址。
点对点网络的主要职责有维护网络结构和发送信息这两个方面。网络结构要关注的是新节点的加入和网络更新这两个方面,而发送信息包括广播和单播两个方面
如何建立并维护点对点的整个网络?节点如何加入、退出?
网络结构的建立有两个核心的参数,一个是每个节点向外连接的节点数,第二个是最大转发数。
新节点对于整个网络一无所知,要么通过一个中心的服务获取网络中的一些节点去连接,要么去连接网络中的“种子”节点。
网络更新处理当有新节点加入或者节点退出,甚至原来一些节点网络不好,无法连接,过一段时间又活了,等等这些情况。一般通过节点已有的连接来广播这些路由表的变化。需要注意的是,因为点对点网络的特殊性,每个节点的路由表是不一样的(也叫partial view)
广播一般采用泛洪协议,即收到转发方式,使的消息在网络中扩散,一般要采用一些限制条件,比如一条消息要设置最大的转发数,避免网络的过渡负载。
单播需要结构化网络结构支持,一般是DHT,类似于DNS解析的方式,逐跳寻找目标节点地址,之后进行传输,并且更新本地路由表。
要想快速检索信息,有两种数据结构可以使用,一种是树类型,如AVL树、红黑树、B树等;另外一类是hash表。
哈希表的效率比树更高,但是需要占用更多的内存。
信息的表示采用键值对的方式,即一个键对应一个值,我们要查找的是key,值是附着的信息。
哈希表要解决的问题是如何均匀地为每一个key分配一个存储位置。
这里面有两个重点:1.是为key分配一个存储地点,这个分配算法是固定的,保证存储的时候和查找的时候使用同一个算法,不然存进去之后会找不到;2.是均匀地分配,不能有点地方存放数据多,有点放存放数据少。
一般语言里面的hashtable、map等结构使用这个技术来实现,哈希函数可以直接使用取模函数,key%n,这种方式,n代表有多少个地方,key是整数,如果key是其他类型,需要先进行一次哈希,将key转为整数。这种方式可以解决上面的两个需求,但是当n不够大的时候(小于要存储的数据),会产生冲突,一个地方一定会有两个key要存储,这时候,需要在这个地方放一个链表,将分配到同一地点、不同key,顺序摆放。当一个地点放的key太多后,链表的查找速度太慢,要转化为树类型结构(红黑树或者AVL树)。
上面说过,哈希表效率很高,但是占用内容,使用多台机器就可以解决这个限制。在分布式环境中,可以将上述的地点理解为计算机(后面成为节点),即如何将一个key映射到一个节点上,每个节点有一个节点ID,即key->node id的映射,这个映射算法也要固定。
这个算法还有一个非常重要的要求,即scalebility,当新节点加入和退出时候,需要迁移的key要尽量少。
这个映射算法有两种典型结构,一个是环形,一个是树形;环形的叫一致性哈希算法,树形的典型叫kademlia算法。
选点算法就是解决key->node id的映射算法,形象的来说就是为一个key选择它生命中的她(节点)。
假设我们使用32哈希,那么总共能容纳的key的数据量是2**32,称之为hash空间,把节点的ID映射成整数,key也映射成整数。把key哈希和节点哈希值接的差值的叫做距离(负数的话要取模,不用绝对值),比如一个key的哈希是100(整数表示),一个节点的哈希是105,则这两个的距离是105-100=5。当然使用其他距离表示也可以,比如反过来减,但是算法要固定。我们把key映射(放到)距离他最近的节点上。距离取模的话,看起来就是把节点和key放到一个环上,key归属到从顺时针角度离它最近的节点上。
kademlia算法的距离采用的是key哈希与节点哈希异或计算之后的数值来表示(整数),从左往右,拥有越多的“相同前缀”,则距离越近,越在左边位置不一样,距离越远。
树结构的体现是,将节点和key看成树的节点,这个算法支持的位数是160bit,即20个8字节,树的高度为160,每个边表示一位。
选点的算法和一致性哈希相同,从所有节点中,选择一个距离key距离最小的节点作为这个key的归宿。
由于是在分布式环境中,为了保证高可用,我们假设没有一个中心的路由表,没有这个可以看到全貌的路由表,带来了一些挑战,比如如何发现节点、查找节点?
在P2P网络中,常用的方法是每个节点维护一个部分路由表,即只包含部分节点的路由信息。在泛洪算法中,这些节点上随机的;在DHT算法中,这个路由表是有结构的,维护的节点也是有选择性的。那么如何合理的选择需要维护路由信息的节点呢?
一个朴素的做法是,每一个节点保存比他大的节点的信息,这样可以组成一个环,但是这样做的话,有一个大问题和一个小问题。大问题是,每个节点知道的信息太少(只有下一个节点的哈希和地址),当给出一个key时,它不知道网络中还有没有比它距离这个key距离还短的节点,所以它首先判断key是否属于自己和下一个节点,如果是,那么这个key就属于下一个节点,如果不是就调用下一个节点同样的方法,这个复杂度是N(节点数)。一个优化的方法是,每个节点i维护的其他节点有:i+2 1, i+2 2,....i+2**31,通过观察这个数据,发现由近到远,节点越来越稀疏。这样可以把复杂度降低到lgN
每个节点保存的其他节点的信息,包括,从左到右,每一位上与本节点不同的节点,最多选择k个(算法的超参数)。比如在节点00110上(为演示起见,选择5位),在要保存的节点路由信息是:
1****: xxx,....,xxx(k个)
01 : xxx,....,xxx(k个)
000 : xxx,....,xxx(k个)
0010 : xxx,....,xxx(k个)
00111: xxx,....,xxx(k个)
以上为一行称为k-bucket。形象的来看,也是距离自己越近,节点越密集,越远,节点越稀疏。这个路由查找、节点查找的算法也是lgN复杂度。
B. 什么是P2P网络
P2P网络即对等网络/对等计算机网络:是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式。
“Peer”在英语里有“对等者、伙伴、对端”的意义。因此,从字面上,P2P可以理解为对等计算或对等网络。国内一些媒体将P2P翻译成“点对点”或者“端对端”。
学术界则统一称为对等网络(Peer-to-peer networking)或对等计算(Peer-to-peer computing),其可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。
在此网络中的参与者既是资源、服务和内容的提供者(Server),又是资源、服务和内容的获取者(Client)。
(2)在p2p网络中节点的功能有哪些扩展阅读:
与客户端/服务器网络相比,对等网络具有下列优势:
1、可在网络的中央及边缘区域共享内容和资源。在客户端/服务器网络中,通常只能在网络的中央区域共享内容和资源。
2、由对等方组成的网络易于扩展,而且比单台服务器更加可靠。单台服务器会受制于单点故障,或者会在网络使用率偏高时,形为瓶颈。
3、由对等方组成的网络可共享处理器,整合计算资源以执行分布式计算任务,而不只是单纯依赖一台计算机,如一台超级计算机。
4、用户可直接访问对等计算机上的共享资源。网络中的对等方可直接在本地存储器上共享文件,而不必在中央服务器上进行共享。
C. 节点的类型有哪些
比特币P2P网络中的各个节点相互对等,但是根据所提供的功能不同,各节点可能具有不同的分工,每个比特币节点都是钱包、矿工、完整区块链、网络路由节点的功能集合。
D. 简述p2p网络的特点。
P2P是英文peertopeerlending(或peer-to-peer)的缩写,意即个人对个人(伙伴对伙伴)。又称点对点网络借款,是一种将小额资金聚集起来借贷给有资金需求人群的一种民间小额借贷模式。属于互联网金融(ITFIN)产品的一种。属于民间小额借贷,借助互联网、移动互联网技术的网络信贷平台及相关理财行为、金融服务。
2020年11月中旬,全国实际运营的P2P网贷机构完全归零。
应答时间:2021-01-19,最新业务变化请以平安银行官网公布为准。
[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~
https://b.pingan.com.cn/paim/iknow/index.html
E. p2p是什么啊
P2P的概念
��P2P是peer-to-peer的缩写,peer在英语里有"(地位、能力等)同等者"、"同事"和"伙伴"等意义。这样一来,P2P也就可以理解为"伙伴对伙伴"的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。
��简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返"非中心化",并把权力交还给用户。 P2P看起来似乎很新,但是正如B2C、B2B是将现实世界中很平常的东西移植到互联网上一样,P2P并不是什么新东西。在现实生活中我们每天都按照P2P模式面对面地或者通过电话交流和沟通。
��即使从网络看,P2P也不是新概念,P2P是互联网整体架构的基础。互联网最基本的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和Web服务器,邮件客户端和邮件服务器。但是,对于服务器来说,它们之间仍然是对等联网的。以email为例,互联网上并没有一个巨大的、唯一的邮件服务器来处理所有的email,而是对等联网的邮件服务器相互协作把email传送到相应的服务器上去。另外用户之间email则一直对等的联络渠道。
��事实上,网络上现有的许多服务可以归入P2P的行列。即时讯息系统譬如ICQ、AOL Instant Messenger、Yahoo Pager、微软的MSN Messenger以及国内的OICQ是最流行的P2P应用。它们允许用户互相沟通和交换信息、交换文件。用户之间的信息交流不是直接的,需要有位于中心的服务器来协调。但这些系统并没有诸如搜索这种对于大量信息共享非常重要的功能,这个特征的缺乏可能正为什么即时讯息出现很久但是并没有能够产生如Napster这样的影响的原因之一。
F. P2P网络是什么啊
P2P是peer-to-peer的缩写,peer在英语里有"(地位、能力等)同等者"、"同事"和"伙伴"等意义。这样一来,P2P也就可以理解为"伙伴对伙伴"的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途.
简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返"非中心化",并把权力交还给用户。 P2P看起来似乎很新,但是正如B2C、B2B是将现实世界中很平常的东西移植到互联网上一样,P2P并不是什么新东西。在现实生活中我们每天都按照P2P模式面对面地或者通过电话交流和沟通。
即使从网络看,P2P也不是新概念,P2P是互联网整体架构的基础。互联网最基本的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和Web服务器,邮件客户端和邮件服务器。但是,对于服务器来说,它们之间仍然是对等联网的。以email为例,互联网上并没有一个巨大的、唯一的邮件服务器来处理所有的email,而是对等联网的邮件服务器相互协作把email传送到相应的服务器上去。另外用户之间email则一直对等的联络渠道。
事实上,网络上现有的许多服务可以归入P2P的行列。即时讯息系统譬如ICQ、AOL Instant Messenger、Yahoo Pager、微软的MSN Messenger以及国内的OICQ是最流行的P2P应用。它们允许用户互相沟通和交换信息、交换文件。用户之间的信息交流不是直接的,需要有位于中心的服务器来协调。但这些系统并没有诸如搜索这种对于大量信息共享非常重要的功能,这个特征的缺乏可能正为什么即时讯息出现很久但是并没有能够产生如Napster这样的影响的原因之一。
G. P2P是什么
一.P2P(Peer-to-peer)概述
P2P是Peer-to-peer的缩写,指的是点对点的意思,P2P作为一种边缘技术,受到
众多的关注,特别是近几年,在互联网上其发展势头是令人惊讶的,下面我就P2P作一下简单的描述:
美国是计算机的发源地,众多计算机的相关理论由美国最早提出,相关技术也由美
国最早实现;P2P也不例外,当18岁的Shawn Fanning开发出一个叫Napster的软件时,不久便引起互联网的一次巨大的震动,同时在社会上也引起强烈的反响,P2P概念也就应运而生了,它不仅仅是一种软件架构,也是一种社会模式的体现。它的出现也引发了人们对现有某些社会模式的思考(就好比当强奸成为不可避免时,不如试着去享受,同样当盗版成为不可避免时,我们该怎么办,呵呵,题外话了^-^)。
P2P历经坎坷发展到现在,各方面技术也较成熟,现在P2P在应用上最广泛便是网
格计算和资源共享(原则上网格计算也包括在资源共享内,因为资源共享本来就包括计算机中所有资源如处理器的共享,我们现在常用的资源共享也就是现有P2P软件所实现的也就是硬盘资料共享而已),网络上流行的P2P软件的架构手段主要有两种:集中式和分布式。
集中式:便是利用服务器作为媒介使各个分散的节点(用户)能互相联系,生成各种服务响
应各节点的业务需求,各节点一旦建立联系,便可互相共亨对方资源,这种方 式可使各节点定位比较容易,易于搜索,查找,使各节点间容易建立比较固定
的关系,使得在此平台上开发进一步的应用更加易于推广;但这种方式对服务
器性能要求也很高,应用系统功能越强大,对服务器的要求就越高,比如搜索,
在此方式下如要提高搜索的命中和降低搜索的冗余,则必须提高结点对服务器
的请求次数,增加了服务器资源的消耗;在这种架构中可以利用技术手段使得
某些大节点分担一些服务器的功能,从而降低服务器的负荷。
分布式:每个节点即做服务器又做客户端,这种方式非常灵活,
此P2P网络内的任一节点便可与此网络进行资源互享,事实上,这种方式宏观来看应属于Peer-to-Net(PTN),任何一个节点只是此网络的一个组成部分,任何一个节点只是从此网络上获取资源,它可以在一个公司或企业内部无需额外配置而实现一个企业内部P2P系统,这此方式搜索功能强大而灵活,能够体现出P2P的本质;由于架构的原因,此方式节点定位能力极差,无法使节点之间产生比较固定的关系,搜索能力虽然灵活强大,但冗余较大,如果技术手段处理不好很容易产生广播风暴,引起网路资源的大量消耗,且些架构的技术实现难度极大,在国外特别是美国,此种架构应用较为广泛;原因之一便是网络环境因素,之二便是社会因素;国内网络环境较为复杂,最为突出的便是局域网问题,这种复杂的网络环境对这种架构的技术要求就更加重要了,再有就是社会因素也使得国内的P2P趋向的集中式的架构模式。
在P2P中最核心的技术便是搜索功能,谁能在搜索功能上领先一筹,谁就能在P2P领域技术上领先一步,而P2P搜索功能的实现又依赖于一个好的架构模式,所以一个好的P2P架构可以决定一个P2P软件在技术上的优势;然而P2P的发展又不仅仅依赖于技术,比如说黄色问题,这是技术所难以解决的,之所以P2P软件上的黄色资源在P2P系统上所占比例(A)远远大于社会上的黄色内容所占社会内容的比例(B),这应属于一个不合理的现象,一个优秀的P2P软件件要想发展壮大就必定把A控制在B的附近。
P2P作为一种概念,有着广阔的应用前景,在技术日臻完善的今天,相信不久的将来
便会成为一种成熟的平台概念,而我们现在要做的便是尽力去推动它的发展,不断完善现有的P2P理论基础,不断完善现有技术手段,
二.BT属于P2P软件,P2P只占用用户的带宽,不占用硬盘,而且只用于视频直播流,不会复制、传输、修改用户电脑的文件,所以不会对用户的硬盘造成危害,也不会威胁到用户的安全。
H. p2p 原理
P2P是peer-to-peer的缩写,peer在英语里有"(地位、能力等)同等者"、"同事"和"伙伴"等意义。这样一来,P2P也就可以理解为"伙伴对伙伴"的意思,或称为对等联网。目前人们认为其在加强网络上人的交流、文件交换、分布计算等方面大有前途。
??简单的说,P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返"非中心化",并把权力交还给用户。 P2P看起来似乎很新,但是正如B2C、B2B是将现实世界中很平常的东西移植到互联网上一样,P2P并不是什么新东西。在现实生活中我们每天都按照P2P模式面对面地或者通过电话交流和沟通。
??即使从网络看,P2P也不是新概念,P2P是互联网整体架构的基础。互联网最基本的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和Web服务器,邮件客户端和邮件服务器。但是,对于服务器来说,它们之间仍然是对等联网的。以email为例,互联网上并没有一个巨大的、唯一的邮件服务器来处理所有的email,而是对等联网的邮件服务器相互协作把email传送到相应的服务器上去。另外用户之间email则一直对等的联络渠道。??当然但是过去的5年里,互联网的发展至少从表面上远离了P2P,互联网上绝大部分的节点也不能和其他节点直接地交流。Napster正是唤醒了深藏在互联网背后的对等联网。Napster的文件共享功能在局域网中共享目录也是再平常不过的事情。但是Napster的成功促使人们认识到把这种"对等联网"拓展到整个互联网范围的可能性。当然,在许多人的眼中,Napster并不是纯粹的P2P,它仍然需要一个处于中心协调机制。
??事实上,网络上现有的许多服务可以归入P2P的行列。即时讯息系统譬如ICQ、AOL Instant Messenger、Yahoo Pager、微软的MSN Messenger以及国内的OICQ是最流行的P2P应用。它们允许用户互相沟通和交换信息、交换文件。用户之间的信息交流不是直接的,需要有位于中心的服务器来协调。但这些系统并没有诸如搜索这种对于大量信息共享非常重要的功能,这个特征的缺乏可能正为什么即时讯息出现很久但是并没有能够产生如Napster这样的影响的原因之一。
??另外一个可以归入P2P是拍卖网站譬如eBay,人们在总结eBay的模式的时候用了C2C,是不是和P2P有一点类似?eBay就是一个将人们联系的和交易物品的社区,用户可以方便的搜索其他用户叫卖的商品。eBay提供了一些使得交易得以顺利进行的服务,但是交易是直接在用户之间进行的。如果将"交易"的概念推广,C2C就是P2P的一个特例,这里人们互相交换的是商品。
??但如果仔细深究的话,Napster和即时讯息在赋予用户之间直接交流的能力、eBay使用户可以直接交易的同时,却破坏了服务器端的那种自互联网出现之初就存在的对等联网思想,因为它们都需要有一个位于中心的服务器来协调,而不是分布在世界上不同地方的、对等联网的许多服务器。这也正是诸如Gnotella和Freenet不断的宣称它们创造了"纯粹"的P2P,完全没有中心服务器的P2P服务。
影响:
对等联网:是只读的网络的终结(Peer-to-peer is the end of the read-only Web)
??对等联网:使你重新参与互联网(Peer-to-peer allows you to participate in the Internet again)
??对等联网:使网络远离电视(Peer-to-peer steering the Internet away from TV)如上文所言,P2P不是一个新思想,从某些角度看它甚至是整个最初创建互联网的最基本的思想。