一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于区块链中的高效通信方法及系统与流程

2021-11-26 22:46:00 来源:中国专利 TAG:


1.本技术涉及区块链领域,尤其是涉及到区块链p2p通信的方法及系统。


背景技术:

2.区块链是一种去中心化且不可篡改的分布式账本系统,由于其去中心化以 及不可篡改等特性,越来越被人们重视,而且很多国家都发布了区块链发展规 划,也有很多高校、科研机构参与到区块链的研究中。区块链的架构包括六层, 从下到上分别为表示层、传输层、验证层、激励层、合约层和应用层,其中传 输层负责区块链的节点发现、交易广播等,是区块链的基础。区块链很重要的 一个属性是去中心化,其不同于我们日常经常接触的客户端/服务器模式,区块 链中的每个节点都是对等的,区块链传输层采用的是对等网络(peer

to

peer, p2p),每个节点和网络中的其他节点连接,不再通过服务器连接,通过p2p通 信的方式实现了去中心化,即使节点故障宕机,也不会影响区块链的正常运行。
3.在c/s或b/s模式中,客户端只需要和服务器通信即可,但是相较于c/s 或b/s,由于p2p网络中节点需要和多个其他节点通信,其会增加通信成本。 如果区块链中节点连接节点过多,会严重影响节点的正常通信,如果连接节点 过少,又会降低区块链的鲁棒性,甚至会影响区块链的去中心化,而且采用p2p 通信,节点会多次重复收到同一消息也即冗余信息,如何在降低连接数或者通 信次数的情况下,提高区块链的鲁棒性以及降低冗余信息的传递是区块链亟待 解决的技术问题。


技术实现要素:

4.为了解决上述问题,本发明提供了一种应用于区块链中的高效通信方法 和系统。
5.一方面,本发明提供了一种应用于区块链中的高效通信方法,主要包括 以下步骤:
6.步骤1,新节点a向区块链网络广播自己的地址,区块链网络的其他节点 收到新节点广播的地址后,向新节点a发出应答消息,新节点a从前n个应 答消息中随机确定一个节点b的地址,接入区块链网络;
7.步骤2,节点b根据自己以平衡树结构存储的节点信息将新节点a作为叶 子节点添加到平衡树中,并向新节点a以及平衡树中的其他节点广播新生成 的平衡树,所述平衡树是指只在父节点和儿子节点之间传输数据的数据结构, 平衡树的根节点保存有区块链网络中其他根节点的地址;
8.步骤3,每隔预设时间根节点重新随机生成平衡树,并将原根节点保存的 区块链网络中其他根节点的地址发送给新生成的平衡树的根节点,新生成的 平衡树的根节点向区块链网络中其他根节点广播自己的地址。
9.优选地,所述步骤3还包括,当平衡树中节点数大于p时,将平衡树随 机分裂为两个子平衡树,两个自平衡树的根节点向区块链网络中的其他根节 点广播自己的地址,从而加入区块链网络;当平衡树中节点数小于q时,平 衡树中的节点作为新节点,进入步骤1。
10.优选地,所述步骤3还包括,如果节点超过第一预设时间没有接收到其 他节点发送的消息,进一步判断该节点是否是叶子节点,如果是叶子节点, 则该叶子节点作为新节点,进入步骤1,否则重新随机生成平衡树。
11.优选地,所述平衡树的根节点保存有区块链网络中其他根节点的地址, 具体为,根节点保存有区块链网络中m个其他根节点的地址,如果根节点保 存的区块链网络中其他根节点的地址的数量小于m,则该根节点通过节点发现 的方式发现其他根节点。节点发现的方法有多种,这里不对此做进一步的限 定。
12.优选地,所述平衡树为平衡三叉树、平衡四叉树、平衡五叉树、平衡六 叉树或平衡七叉树。
13.本发明还提供了一种应用于区块链中的高效通信系统,包括以下模块:
14.接入模块,新节点a向区块链网络广播自己的地址,区块链网络的其他 节点收到新节点广播的地址后,向新节点a发出应答消息,新节点a从前n 个应答消息中随机确定一个节点b的地址,接入区块链网络;
15.平衡树获取模块,节点b根据自己以平衡树结构存储的节点信息将新节 点a作为叶子节点添加到平衡树中,并向新节点a以及平衡树中的其他节点 广播新生成的平衡树,所述平衡树是指只在父节点和儿子节点之间传输数据 的数据结构,平衡树的根节点保存有区块链网络中其他根节点的地址;
16.平衡树随机生成模块,每隔预设时间根节点重新随机生成平衡树,并将 原根节点保存的区块链网络中其他根节点的地址发送给新生成的平衡树的根 节点,新生成的平衡树的根节点向区块链网络中其他根节点广播自己的地址。
17.优选地,所述系统还包括平衡树分裂模块,当平衡树中节点数大于p时, 将平衡树随机分裂为两个子平衡树,两个自平衡树的根节点向区块链网络中 的其他根节点广播自己的地址,从而加入区块链网络;当平衡树中节点数小 于q时,平衡树中的节点作为新节点,进入步骤1。
18.优选地,所述平衡树随机生成模块还用于,如果节点超过第一预设时间 没有接收到其他节点发送的消息,进一步判断该节点是否是叶子节点,如果 是叶子节点,则该叶子节点作为新节点,进入步骤1,否则重新随机生成平衡 树。
19.优选地,所述平衡树的根节点保存有区块链网络中其他根节点的地址, 具体为,根节点保存有区块链网络中m个其他根节点的地址,如果根节点保 存的区块链网络中其他根节点的地址的数量小于m,则该根节点通过节点发现 的方式发现其他根节点。
20.本发明还提供了一种计算机可读存储介质,用于存储计算机程序指令, 其特征在于,所述计算机程序指令在被处理器执行时实现如上所述的方法。
21.本发明提供的应用于区块链中的高效通信方法和系统,将区块链网络的 节点分为若干以平衡树结构组织的节点集合,区块链网络中的根节点之间采 用p2p的方式通信,而平衡树中的非根节点在父节点和子节点之间进行通信, 有效解决了现有区块链的传输层采用p2p通信容易占用网络带宽,甚至造成 泛洪的问题,而且节点不会重复多次收到同一消息。本发明还同时限制了平 衡树节点的个数,防止区块链趋向中心化。
附图说明
22.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面 将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术 人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的 附图。
23.图1为区块链节点采用对等网络(p2p)通信的示意图;
24.图2为平衡三叉树网络结构的示意图。
25.图3为本发明区块链节点网络连接的示意图。
具体实施方式
26.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者 操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作 之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者 其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、 方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要 素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有 更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括 所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.实施例一
29.本发明提供了一种应用于区块链中的高效通信方法,主要包括以下步骤:
30.步骤1,新节点a向区块链网络广播自己的地址,区块链网络的其他节点 收到新节点广播的地址后,向新节点a发出应答消息,新节点a从前n个应 答消息中随机确定一个节点b的地址,接入区块链网络;
31.步骤2,节点b根据自己以平衡树结构存储的节点信息将新节点a作为叶 子节点添加到平衡树中,并向新节点a以及平衡树中的其他节点广播新生成 的平衡树,所述平衡树是指只在父节点和儿子节点之间传输数据的数据结构, 平衡树的根节点保存有区块链网络中其他根节点的地址;
32.步骤3,每隔预设时间根节点重新随机生成平衡树,并将原根节点保存的 区块链网络中其他根节点的地址发送给新生成的平衡树的根节点,新生成的 平衡树的根节点向区块链网络中其他根节点广播自己的地址。
33.如果一个平衡树中节点过多,大量节点集中到一个平衡树中,会造成区 块链的中心化,但是区块链一个重要特性就是去中心化。为了防止区块链趋 于中心化,在一个具体的实施例中,所述步骤3还包括,当平衡树中节点数 大于p时,将平衡树随机分裂为两个子平衡树,两个自平衡树的根节点向区 块链网络中的其他根节点广播自己的地址,从而加入区块链网络;当平衡树 中节点数小于q时,平衡树中的节点作为新节点,进入步骤1。例如有1000 个区块链节点,可以设置p为50,q为5,当然这只是一个示例,具体p和q 值的确定可以
根据网络带宽和/或节点个数的具体情况确定,也可以根据区块 链要求的鲁棒性确定。例如,当节点个数较多时,p和q可以设置的较大,反 之,可以设置的较小。为了提高区块链的鲁棒性,p和q可以的设置的较小, 但是这会增加根节点接收的重复信息。
34.本发明提供的方法不仅适用于公有链,同样地,还适用于私有链和联盟 链。但是如果私有链或联盟链的节点过少,例如节点个数小于一定数量,则 没有必要采用本发明提供的方法。
35.区块链尤其是公有链的节点众多,在区块链运行过程中,尤其是公有链, 会经常性的有节点加入和退出,而且也会出现故障节点。在一个具体实施例 中,所述步骤3还包括,如果节点超过第一预设时间没有接收到其他节点发 送的消息,进一步判断该节点是否是叶子节点,如果是叶子节点,则该叶子 节点作为新节点,进入步骤1,否则重新随机生成平衡树。由于不确定新节点 的稳定性,对于如果是新节点断联,则直接进入步骤1,非叶子节点较为稳定, 如果非叶子节点出现问题,则重新随机生成平衡树。
36.当区块链的节点达到一定规模后,区块链中的根节点也会很多,如果每 个根节点和其他根节点之间采用p2p对等网络通信,根节点维护的连接也是 很多的,甚至会直接拖死根节点。为了防止出现这种情况,平衡树的根节点 可以随机选择若干个其他根节点,或者从根节点保存的若干其他根节点中选 择以对等网络的方式连接。在一个实施例中,根节点保存有区块链网络中m 个其他根节点的地址,如果根节点保存的区块链网络中其他根节点的地址的 数量小于m,则该根节点通过节点发现的方式发现其他根节点。从m个其他根 节点选择一定数量的根节点作为该根节点连接的其他根节点。
37.优选地,所述平衡树为平衡三叉树、平衡四叉树、平衡五叉树、平衡六 叉树或平衡七叉树。图2、图3示例出了平衡三叉树构建的区块链网络,需要 注意的时,图3中根节点较大,但是其在所在的平衡树中和其他节点是相等 的。平衡树中的其他节点也有机会成为根节点,这样可以避免区块链陷入中 心化。
38.实施例二
39.在另外一个实施例中,本发明还提供了一种应用于区块链中的高效通信 系统,包括以下模块:
40.接入模块,新节点a向区块链网络广播自己的地址,区块链网络的其他 节点收到新节点广播的地址后,向新节点a发出应答消息,新节点a从前n 个应答消息中随机确定一个节点b的地址,接入区块链网络;
41.平衡树获取模块,节点b根据自己以平衡树结构存储的节点信息将新节 点a作为叶子节点添加到平衡树中,并向新节点a以及平衡树中的其他节点 广播新生成的平衡树,所述平衡树是指只在父节点和儿子节点之间传输数据 的数据结构,平衡树的根节点保存有区块链网络中其他根节点的地址;
42.平衡树随机生成模块,每隔预设时间根节点重新随机生成平衡树,并将 原根节点保存的区块链网络中其他根节点的地址发送给新生成的平衡树的根 节点,新生成的平衡树的根节点向区块链网络中其他根节点广播自己的地址。
43.优选地,所述系统还包括平衡树分裂模块,当平衡树中节点数大于p时, 将平衡树随机分裂为两个子平衡树,两个自平衡树的根节点向区块链网络中 的其他根节点广播自己的地址,从而加入区块链网络;当平衡树中节点数小 于q时,平衡树中的节点作为新节
点,进入步骤1。
44.优选地,所述平衡树随机生成模块还用于,如果节点超过第一预设时间 没有接收到其他节点发送的消息,进一步判断该节点是否是叶子节点,如果 是叶子节点,则该叶子节点作为新节点,进入步骤1,否则重新随机生成平衡 树。
45.优选地,所述平衡树的根节点保存有区块链网络中其他根节点的地址, 具体为,根节点保存有区块链网络中m个其他根节点的地址,如果根节点保 存的区块链网络中其他根节点的地址的数量小于m,则该根节点通过节点发现 的方式发现其他根节点。
46.实施例三
47.此外,在另外一个实施例中,本发明还提供了一种计算机可读存储介质, 用于存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执 行时实现实施例一所述的方法。
48.本发明所述的各个实施例可以进行组合以实现对应的技术方案。结合本 文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行 的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、 内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬 盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质 中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献