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

文档序号:26749755发布日期:2021-09-25 02:06阅读:475来源:国知局
一种基于区块链的高效通信方法及系统与流程

1.本发明涉及区块链的技术领域,尤其涉及区块链的高效通信技术领域。具体为一种基于区块链的高效通信方法及系统。


背景技术:

2.对于某一个区块链网络中已有的区块链节点,以及想要加入但是还未加入当前区块链网络的运行节点,均需要与区块链网络中的至少一个其他节点建立连接,才能够顺利的加入当前的区块链网络中,与区块链网络中的节点进行通讯。
3.一般的当某一个运行节点想要加入区块链网络时,与距离最近的一个节点建立连接,以实现加入区块链网络是最优的方案。
4.对于运行节点寻找最近的节点,一般的都是通过对运行节点的节点id与当前区块链网络的根节点中保存所有的已在当前区块链网络中存在的区块链节点的节点id进行异或运算,异或值越小,代表两个节点之间的距离越近。
5.然而,现有技术中的节点id是随机生成的,现有区块链节点p2p通信距离是节点id的逻辑距离,并不是真实的物理距离。这只是逻辑上定位了“近”,物理上可能是很“远”,区块链网络中存在大量这种距离不明的p2p连接,构成区块链网络,导致广播区块、交易效率都很低。


技术实现要素:

6.针对上述问题,本发明的目的在于提供一种基于区块链的高效通信方法及系统,在每一个区块链节点寻找最近的节点时,具有能够找到真实的物理距离最近的节点,提高广播区块、提高交易效率的优点。
7.本发明的上述发明目的是通过以下技术方案得以实现的:
8.一种基于区块链的高效通信方法,包括:
9.待建立连接的运行节点向区块链网络中的根节点发起加入所述区块链网络的信息请求;
10.所述根节点基于所述信息请求,依次将其上分布式哈希表中存储的各个区块链节点的节点id与待建立连接的所述运行节点的节点id进行异或运算,寻找与所述运行节点最近的区块链节点,其中,所述节点id采用能够表示真实物理距离的特定字段,替换掉原始所述区块链网络随机生成的所述节点id的预设字节的前缀部分形成;
11.将所述运行节点与所述最近的区块链节点建立连接,加入所述区块链网络中。
12.进一步地,所述特定字段采用包括ipv4、ipv6在内的ip地址。
13.进一步地,当所述特定字段采用ipv4的ip地址时,将所述节点地址的前4个字节替换为所述运行节点当前所述地域的ipv4地址。
14.进一步地,当所述特定字段采用ipv6的ip地址时,将所述节点地址的前16个字节替换为所述运行节点当前所述地域的ipv6地址。
15.进一步地,在所述根节点中存储有所述分布式哈希表,采用所述分布式哈希表记录每一个访问所述根节点的区块链节点的包括所述节点id、网络连接信息在内的节点记录。
16.进一步地,所述运行节点向所述根节点发起加入所述区块链网络的信息请求之后,在验证通过后,将所述运行节点的所述节点id和所述网络连接信息存储于所述分布式哈希表中。
17.进一步地,通过所述网络连接信息建立多个所述区块链节点之间的tcp/ip通信。
18.本发明还包括了一种采用如上述的基于区块链的高效通信方法的系统,包括:
19.信息请求发起模块,用于提供给待建立连接的运行节点向区块链网络中的根节点发起加入所述区块链网络的信息请求;
20.最近节点寻找模块,用于提供给所述根节点基于所述信息请求,依次将其上分布式哈希表中存储的各个区块链节点的节点id与待建立连接的所述运行节点的节点id进行异或运算,寻找与所述运行节点最近的区块链节点,其中,所述节点id采用能够表示真实物理距离的特定字段,替换掉原始所述区块链网络随机生成的所述节点id的预设字节的前缀部分形成;
21.连接建立模块,用于将所述运行节点与所述最近的区块链节点建立连接,加入所述区块链网络中。
22.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现如上述的方法。
23.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如上述的方法被执行。
24.与现有技术相比,本发明包括以下至少一种有益效果是:
25.(1)通过提供一种基于区块链的高效通信方法,包括:待建立连接的运行节点向区块链网络中的根节点发起加入所述区块链网络的信息请求;所述根节点基于所述信息请求,依次将其上分布式哈希表中存储的各个区块链节点的节点id与待建立连接的所述运行节点的节点id进行异或运算,寻找与所述运行节点最近的区块链节点,其中,所述节点id采用能够表示真实物理距离的特定字段,替换掉原始所述区块链网络随机生成的所述节点id的预设字节的前缀部分形成;将所述运行节点与所述最近的区块链节点建立连接,加入所述区块链网络中。在上述技术方案中,采用能够表示真实物理距离的特定字段,替换掉原始区块链网络随机生成的节点id的预设字节的前缀部分的方案,使得在将运行节点与已有的区块链节点的节点id进行异或操作之后,异或值最小的区块链节点,即在物理距离上与当前运行节点最近的节点。
26.(2)通过将用于表示真实物理距离的特定字段,设置为包括ipv4、ipv6在内的ip地址。基于ip地址在全球的分配是公开的,且ip地址本身就带有地域特性,使用ip地址作为节点id中的特定字段,同一地域的区块链节点使用相同的ip地址作为特定字段,在进行异或操作时,具有相同特定字段的节点id的异或值必然最小,能迅速找到物理距离最近的节点。
27.(3)通过在根节点中存储分布式哈希表,采用所述分布式哈希表记录每一个访问所述根节点的区块链节点的包括所述节点id、网络连接信息在内的节点记录。通过上述技
术方案,后续运行节点在寻找最近节点时,只需要与根节点建立连接,访问分布式哈希表中的节点id即可,无需去访问所有的区块链节点。
附图说明
28.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
29.图1为本发明一种基于区块链的高效通信方法的整体流程图;
30.图2为本发明一种采用基于区块链的高效通信方法的系统的整体结构图。
具体实施方式
31.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
33.第一实施例
34.如图1所示,本实施例提供了一种基于区块链的高效通信方法,具体包括以下步骤:
35.s1:待建立连接的运行节点向区块链网络中的根节点发起加入所述区块链网络的信息请求。
36.具体地,在本实施例中,每一个新起来的运行节点,在加入已有的区块链节点网络之前,均需要向当前区块链网络中的根节点发起加入区块链网络的请求。在此,区块链网络中的根节点为该区块链网络的具备固定ip的稳定节点,其链接信息内置在节点程序中。一般区块链网络存在少量的几个根节点,因此,根节点本身即在区块链网络中,并为待加入的节点提供服务。
37.发起加入区块链网络的请求具体的做法为:通过和根节点一次或多次握手,判断哈希、创世区块的哈希值等是否一样,通过验证后,将所述运行节点的所述节点id和所述网络连接信息存储于所述分布式哈希表(dht)中。
38.其中,分布式哈希表为存储于根节点上,用于记录每一个访问所述根节点的区块链节点的包括所述节点id、网络连接信息在内的节点记录的表格。需要说明的是,对于分布式哈希表的具体的存储格式,本发明不做任何限制,可以是表格的形式,也可以是对象的形式,任何可用于存储的方式,均属于本发明的保护范围。在此,由于根节点与每个新起来的节点进行握手,因此根节点上的分布式哈希表(dht)最全,而新节点也会有自己的分布式哈希表(dht),保存的一般是自己最近的一些节点集合信息。
39.基于在分布式哈希表上,已经存储了每一个访问过根节点的区块链节点的网络连
接信息,后续当前区块链网络上的节点可以通过网络连接信息建立多个区块链节点之间的ict/ip通信。
40.s2:所述根节点基于所述信息请求,依次将其上分布式哈希表中存储的各个区块链节点的节点id与待建立连接的所述运行节点的节点id进行异或运算,寻找与所述运行节点最近的区块链节点,其中,所述节点id采用能够表示真实物理距离的特定字段,替换掉原始所述区块链网络随机生成的所述节点id的预设字节的前缀部分形成。
41.具体地,在根节点接收了运行节点的加入区块链网络的信息请求之后,为了运行节点能够顺利的加入区块链网络中,需要将运行节点与当前区块链网络中已有的最近的一个节点建立连接,才能够成功的加入区块链网络中。
42.在现有技术中,运行节点寻找最近的节点的方式为,将运行节点的节点id与根节点的分布式哈希表中保存的所有的节点id求异或值,异或值越小,认为距离越近。然而,现有技术中的节点id都是随机生成的,通过对随机生成的节点id求异或值,异或值最小的节点,只能说是在逻辑上定位了“近”,实际物理距离不定,可能是物理距离很远的节点。当区块链中存在大量这种距离不明的p2p连接时,构成的区块链网络之后,将导致广播区块和区块链交易时的效率都很低。
43.基于以上现有技术中存在的问题,本发明对现有技术中寻找最近的节点的方式进行了改进。对节点id采用能够表示真实物理距离的特定字段,替换掉原始所述区块链网络随机生成的所述节点id的预设字节的前缀部分形成。通过这种方式设置的节点id,在进行异或操作时,异或值最小的节点,必然与运行节点具有相同的前缀部分,而相同的前缀又代表了是同属于一个地域的节点,也即异或值最小的节点与运行节点的实际物理距离最小。
44.对于能够表示真实物理距离的特定字段,可以是现有技术中已存在的可以表示真实物理距离的字段,如ip地址、邮编等。也可以是自己设置的表格,在表格中为每一个地域自行设置一个相同的特定字段。使用特定字段替换ip节点的前缀部分。
45.一种优选地方案为:特定字段采用包括ipv4、ipv6在内的ip地址。当所述特定字段采用ipv4的ip地址时,ipv4一般由四个字节组成,将所述节点地址的前4个字节替换为所述运行节点当前所述地域的ipv4地址(如节点id可以是随机生成的32字节的字符串,将32字节的前4个字节替换为ipv4地址),在对替换后的两个节点id进行异或,找到最小值,即为真实物理距离最近的节点。当所述特定字段采用ipv6的ip地址时,ipv6由16字节组成,分为单播、组播、任意播地址,划分更明确,将所述节点地址的前16个字节替换为所述运行节点当前所述地域的ipv6地址(如节点id可以是随机生成的32字节的字符串,将32字节的前16个字节替换为ipv6地址),在对替换后的两个节点id进行异或,找到最小值,即为真实物理距离最近的节点。
46.s3:将所述运行节点与所述最近的区块链节点建立连接,加入所述区块链网络中。
47.具体地,当运行节点找到最近的节点之后,与最近的一个节点建立连接之后,即加入了区块链网络中,可以顺利参与区块链网络的广播区块,交易等。
48.第二实施例
49.如图2所示,本实施例提供了一种采用如第一实施例中的基于区块链的高效通信方法的系统,包括:
50.信息请求发起模块1,用于提供给待建立连接的运行节点向区块链网络中的根节
点发起加入所述区块链网络的信息请求。
51.最近节点寻找模块2,用于提供给所述根节点基于所述信息请求,依次将其上分布式哈希表中存储的各个区块链节点的节点id与待建立连接的所述运行节点的节点id进行异或运算,寻找与所述运行节点最近的区块链节点,其中,所述节点id采用能够表示真实物理距离的特定字段,替换掉原始所述区块链网络随机生成的所述节点id的预设字节的前缀部分形成。
52.连接建立模块3,用于将所述运行节点与所述最近的区块链节点建立连接,加入所述区块链网络中。
53.在此,所述图2示出的信息请求发起模块1、最近节点寻找模块2、连接建立模块3对应的具体实施方式分别与前述步骤s1、步骤s2、步骤s3的具体实施例相同或相近,故不再赘述,以引用方式包含于此。
54.进一步地,在最近节点寻找模块2中,所述特定字段采用包括ipv4、ipv6在内的ip地址。当所述特定字段采用ipv4的ip地址时,将所述节点地址的前4个字节替换为所述运行节点当前所述地域的ipv4地址。当所述特定字段采用ipv6的ip地址时,将所述节点地址的前16个字节替换为所述运行节点当前所述地域的ipv6地址。
55.进一步地,在所述根节点中存储有所述分布式哈希表,采用所述分布式哈希表记录每一个访问所述根节点的区块链节点的包括所述节点id、网络连接信息在内的节点记录。
56.所述运行节点向所述根节点发起加入所述区块链网络的信息请求之后,在验证通过后,将所述运行节点的所述节点id和所述网络连接信息存储于所述分布式哈希表中。并通过所述网络连接信息建立多个所述区块链节点之间的tcp/ip通信。
57.本发明还提供了一种计算机设备,包括存储器和一个或多个处理器,所述存储器中存储有计算机代码,所述计算机代码被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一实施例中任一项所述的方法。
58.本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
59.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
60.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
61.本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实
现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(net work processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
62.实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
63.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

ro m)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(tr ansitory media),如调制的数据信号和载波。
64.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pra m)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eep rom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory me dia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
65.另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1