区块链之P2P技术

区块链之P2P技术P2P网络:Intel:通过系统间的直接交换达成计算机资源与信息的共享IBM:由若干互联协作的计算机构成并具备如下特性之一:系统依存于边缘化设备的主动协作;每个成员同时扮演客户端和服务器的角色;系统应用的用户能意识到彼此的存在而构成一个虚拟或真实的群体节点彼此对等,既作为服务和资源的提供者,又作为服务和资源的获取者区块链依靠P2P网络可扩展性、健壮性:P2P网络中的所有对等节点都可以提供带宽、存储空间以及计算能力等资源,随着更多节点的加入,系统整体的资源和服务能力也在同步地得到扩充。负载均衡

大家好,又见面了,我是你们的朋友全栈君。

P2P网络:

Intel:通过系统间的直接交换达成计算机资源与信息的共享
IBM:由若干互联协作的计算机构成并具备如下特性之一:系统依存于边缘化设备的主动协作;每个成员同时扮演客户端和服务器的角色;系统应用的用户能意识到彼此的存在而构成一个虚拟或真实的群体

节点彼此对等,既作为服务和资源的提供者,又作为服务和资源的获取者

区块链依靠P2P网络
可扩展性、健壮性:P2P网络中的所有对等节点都可以提供带宽、存储空间以及计算能力等资源,随着更多节点的加入,系统整体的资源和服务能力也在同步地得到扩充。
负载均衡:P2P网络的资源分布在多个节点上,可以实现网络的负载均衡。
去中心化:在区块链系统的P2P网络中,节点是信息的发送方和接收方,它们共同维护区块链。

4种拓扑形式:

1.中心化拓扑
由一台中心索引服务器和多个客户端节点构成,并非纯粹的P2P网络
中心索引服务器用于保存接入节点的地址信息,向其他节点提供地址索引服务

特点 :
实现了文件查询和文件传输的分离,且维护简单
一旦中心索引服务器发生了故障,就会导致整个网络无法正常工作
在这里插入图片描述

当一个用户需要查找某个音乐文件时,首先需要通过中心索引服务器对音乐文件进行检索,得到拥有该音乐文件的其他用户的信息,接着可以依据检索结果直接连接到资源拥有者,实现文件传输和共享。

2.全分布式非结构化拓扑
没有使用中心索引服务器,其节点拥有真正的对等关系
洪泛(Flooding)数据广播,即节点会将接收到的消息向邻居节点转发,直到所有节点都接收到了这个消息或消息传播的深度到达一定的限制。

特点:
可能会出现广播风暴
实现快速的消息传播和资源查找
在这里插入图片描述

首先,节点会根据资源关键字向邻居发送查询请求,如果它的邻居拥有这种资源,则会与发起查询请求的节点建立连接,进行资源的传输;否则,这个邻居会继续向自己的邻居扩散这个查询请求,直到找到这种资源。

3.全分布式结构化拓扑
采用分布式散列表(Distributed Hash Tables,简称DHT)来实现整个网络的寻址和存储,从而结构化地址管理。
分布式散列表将存储着网络中所有资源信息的散列表划分成很多不连续的小块,分散地存储在多个节点上。

特点
维护机制较为复杂
良好的健壮性、可扩展性和动态适应性
在这里插入图片描述

当一个节点需要请求某种资源时,首先找到包含对应资源关键词的散列表所处的节点,从该节点中获取资源对应的地址信息,最后依据地址信息连接对应的节点实现资源的请求与传输。
4.半分布式拓扑
将网络中性能较高的机器作为超级节点,每个超级节点存储着系统中其他部分节点的文件信息,执行维护这些节点的地址、文件索引等工作。
超级节点之间形成一个高速的转发层,并与接入的普通节点形成一个自治的簇,簇内采用中心拓扑的P2P网络。

特点 消除了网络拥塞的隐患,并在性能和可扩展性上具有一定的优势 对超级节点的依赖性较大
在这里插入图片描述

对于半分布式拓扑上的资源查找,会先在普通节点所在的簇内进行,如果簇内的超级节点查询到该资源在与超级节点相邻的叶子节点上,超级节点会将查询请求转发给对应的节点;否则,超级节点间会进行有限的洪泛,经由其他超级节点继续对这个文件进行查询。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150723.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于java代码生成器

    关于java代码生成器讲代码生成器之前先要说说模板,什么叫模板呢,举个例子吧,汇款单都见过吧,你不填写的那些内容都属于模板范畴说到这应该明白了吧,模板就是把共性提取出来反复使用,节约时间、工作量。。。。。那跟代码生成器有什么关系呢,思考一下在编程语言中所有的语言是不是都用共性或者说规范,这些都是固定不变的,在具体点,软件行业也是分主营业务的,比如OA、CRM、ERP、SCM等等,那么各个业务方向的软件

    2022年5月1日
    36
  • java虚拟机内存分配_深入理解java虚拟机第二版

    java虚拟机内存分配_深入理解java虚拟机第二版深入理解Java虚拟机之对象的内存布局、访问定位

    2022年4月20日
    44
  • java path环境变量_java配置环境变量

    java path环境变量_java配置环境变量前段时间因为windows10更新的缘故,系统越来越卡,任务管理器也闪退,试了各种方法都不管用,反而越改问题越多,乘着周末,昨天把系统重装了,现在记录一下配置java环境变量的过程。1.安装jdk,从官网下就行,我的是把原来的做了个备份,直接解压的。如下图2.记录下你要配置的jdk路径。右键此电脑,属性,点击高级系统设置,选择环境变量。3.现在就可以新建环境变量了。点击新建,变量名为JAVA_HO…

    2022年5月31日
    23
  • nessus8.15_nessus使用教程

    nessus8.15_nessus使用教程1、 打开浏览器输入IP加端口8834登录Nessus2、 输入账号密码,均为admin3、 登录成功后,进入到首页4、 点击侧边栏policies,显示策略界面5、 点击newpolicy,显示策略模板6、 选择advancedscan,填写策略名称7、 点击permission,选择canuse,设置所有人可用8、 单击Plugins标签,该界面显示了所有插件程…

    2022年10月19日
    1
  • 学生成绩管理系统【C语言程序设计】

    一、功能实现:0、浏览学生信息1、输入学生信息2、增加学生信息3、修改学生信息4、删除学生信息5、按学号查询6

    2022年4月9日
    41
  • 矩形类定义

    矩形类定义

    2022年1月11日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号