System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及消息转发,尤其涉及一种区块链消息转发方法、系统、终端设备及计算机存储介质。
技术介绍
1、在区块链网络中,每个节点都会不断地监听其消息转发队列,查看是否有待发送的消息。当节点收到消息时,它会根据消息的类型和目的地址,将消息放入相应的转发队列中。然后,该节点会在后台完成将消息转发给其他目的节点的消息转发工作。
2、现如今,在进行消息转发时,需要构建、维护特定结构的拓扑来提高区块链中消息的转发速度。但是,在特定拓扑结构转发消息时,区块链中p2p网络的传播延迟常常会降低消息的转发速度,进而导致区块链系统的吞吐量较低。
3、因此,如何提高区块链中消息的转发速度以提高区块链系统的吞吐量,是本领域尚待解决的技术问题。
技术实现思路
1、本专利技术提出一种区块链消息转发方法、系统、终端设备及计算机存储介质,旨在解决如何提高区块链中消息的转发速度的技术问题。
2、为解决上述问题,本专利技术提出一种区块链消息转发方法,所述区块链消息转发方法应用于区块链中的第一节点,其中,所述第一节点为区块链中的任一节点;
3、所述区块链消息转发方法包括:
4、将待转发消息分发至预设的各个第二节点,并确定各所述第二节点各自接收所述待转发消息的传播延迟;
5、基于各所述传播延迟,在各所述第二节点中确定预设数量的高延迟节点和低延迟节点,与其他邻居节点断连,并在非邻居节点中随机选择节点,得到各个随机节点,其中,非邻居节点为不能够与所述第一
6、将下一个待转发消息分发至各所述高延迟节点、各所述低延迟节点和各所述随机节点。
7、可选地,在所述将待转发消息分发至预设的各个第二节点的步骤之前,所述方法还包括:
8、在所述第一节点的邻居节点中,随机选择预设数量的第二节点。
9、可选地,在所述将下一个待转发消息分发至各所述高延迟节点、各所述低延迟节点和各所述随机节点的步骤之后,所述方法还包括:
10、将各所述高延迟节点、各所述低延迟节点和各所述随机节点作为新的第二节点,并获取各所述新的第二节点的传播延迟;
11、返回执行所述基于各所述传播延迟,在各所述第二节点中确定预设数量的高延迟节点和低延迟节点的步骤,直至已转发消息的数量达到设定阈值。
12、可选地,在所述在非邻居节点中随机选择节点,得到各个随机节点的步骤之后,所述方法还包括:
13、获取各所述随机节点各自对应的度,并基于各所述度对各所述随机节点进行筛选,得到无效随机节点和有效随机节点;
14、获取所述无效随机节点的数量,并在所述非邻居节点中滤除所述无效随机节点和所述有效随机节点;
15、在滤除所述无效随机节点和所述有效随机节点后的非邻居节点中,随机选择所述数量的节点,并将所述节点和所述有效随机节点作为新的随机节点。
16、可选地,所述基于各所述度对各所述随机节点进行筛选,得到无效随机节点和有效随机节点的步骤,包括:
17、将所述度大于预设度阈值的随机节点作为无效随机节点,并将所述度小于或者等于所述预设度阈值的随机节点作为有效随机节点。
18、可选地,所述确定各所述第二节点各自接收所述待转发消息的传播延迟的步骤,包括:
19、获取各所述第二节点各自接收所述待转发消息的接收时间戳,并获取所述待转发消息的发送时间戳;
20、将各所述接收时间戳各自与所述发送时间戳的差值作为传播延迟。
21、可选地,所述基于各所述传播延迟,在各所述第二节点中确定预设数量的高延迟节点和低延迟节点的步骤,包括:
22、按照预设顺序对各所述传播延迟进行排序,得到传播延迟序列,其中,所述预设顺序为由小到大的顺序或者由大到小的顺序;
23、基于所述传播延迟序列,确定预设数量的高延迟节点和低延迟节点。
24、此外,为解决上述问题,本专利技术还提出一种区块链消息转发系统,所述区块链消息转发系统应用于区块链中的第一节点,其中,所述第一节点为区块链中的任一节点;
25、所述区块链消息转发系统包括:
26、延迟计算模块,用于将待转发消息分发至预设的各个第二节点,并确定各所述第二节点各自接收所述待转发消息的传播延迟;
27、转发节点选择模块,用于基于各所述传播延迟,在各所述第二节点中确定预设数量的高延迟节点和低延迟节点,与其他邻居节点断连,并在非邻居节点中随机选择节点,得到各个随机节点,其中,非邻居节点为不能够与所述第一节点进行直接通信的节点,所述其他邻居节点为既不是高延迟节点也不是低延迟节点的第二节点;
28、转发模块,用于将下一个待转发消息分发至各所述高延迟节点、各所述低延迟节点和各所述随机节点。
29、此外,为解决上述问题,本专利技术还提出一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链消息转发程序,所述区块链消息转发程序被所述处理器执行时实现如上所述的区块链消息转发方法的步骤。
30、此外,为解决上述问题,本专利技术还提出一种计算机存储介质,所述计算机存储介质上存储有区块链消息转发程序,所述区块链消息转发程序被处理器执行时实现如上所述的区块链消息转发方法的步骤。
31、在本专利技术实施例中,通过将待转发消息分发至预设的各个第二节点,并确定各第二节点各自接收待转发消息的传播延迟,能够得到第一节点的邻居节点中,消息的传播延迟数据;基于各所述传播延迟,在各所述第二节点中确定预设数量的高延迟节点和低延迟节点,与其他邻居节点断连,并在非邻居节点中随机选择节点,得到各个随机节点,其中,非邻居节点为不能够与所述第一节点进行直接通信的节点,所述其他邻居节点为既不是高延迟节点也不是低延迟节点的第二节点,其中,非邻居节点为不能够与所述第一节点进行直接通信的节点,能够在邻居节点中选择延迟较大的节点和延迟较小的节点,也即,能够选择用于近端消息转发的节点(延迟较小的节点)和选择用于远端消息转发的节点(延迟较大的节点),并且,还能够在区块链中随机选择除高延迟节点和低延迟节点之外的节点,以便于利用随机节点进一步扩大消息转发的范围;最后将下一个待转发消息分发至各高延迟节点、各低延迟节点和各随机节点,能够兼顾近端的消息转发和远端的消息转发。并且,由于本方案还在非邻居节点中选择了随机的节点进行消息转发,因此,本方案还能够保证整个区块链系统的可扩展性,并在全局的层面上提高消息的转发速度,从而提高了系统的吞吐量。
本文档来自技高网...【技术保护点】
1.一种区块链消息转发方法,其特征在于,所述区块链消息转发方法应用于区块链中的第一节点,其中,所述第一节点为区块链中的任一节点;
2.如权利要求1所述的区块链消息转发方法,其特征在于,在所述将待转发消息分发至预设的各个第二节点的步骤之前,所述方法还包括:
3.如权利要求1所述的区块链消息转发方法,其特征在于,在所述将下一个待转发消息分发至各所述高延迟节点、各所述低延迟节点和各所述随机节点的步骤之后,所述方法还包括:
4.如权利要求1所述的区块链消息转发方法,其特征在于,在所述在非邻居节点中随机选择节点,得到各个随机节点的步骤之后,所述方法还包括:
5.如权利要求4所述的区块链消息转发方法,其特征在于,所述基于各所述度对各所述随机节点进行筛选,得到无效随机节点和有效随机节点的步骤,包括:
6.如权利要求1所述的区块链消息转发方法,其特征在于,所述确定各所述第二节点各自接收所述待转发消息的传播延迟的步骤,包括:
7.如权利要求1所述的区块链消息转发方法,其特征在于,所述基于各所述传播延迟,在各所述第二节点中确定预
8.一种区块链消息转发系统,其特征在于,所述区块链消息转发系统应用于区块链中的第一节点,其中,所述第一节点为区块链中的任一节点;
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的区块链消息转发程序,所述区块链消息转发程序被所述处理器执行时实现如权利要求1至7中任一项所述的区块链消息转发方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有区块链消息转发程序,所述区块链消息转发程序被处理器执行时实现如权利要求1至7中任一项所述的区块链消息转发方法的步骤。
...【技术特征摘要】
1.一种区块链消息转发方法,其特征在于,所述区块链消息转发方法应用于区块链中的第一节点,其中,所述第一节点为区块链中的任一节点;
2.如权利要求1所述的区块链消息转发方法,其特征在于,在所述将待转发消息分发至预设的各个第二节点的步骤之前,所述方法还包括:
3.如权利要求1所述的区块链消息转发方法,其特征在于,在所述将下一个待转发消息分发至各所述高延迟节点、各所述低延迟节点和各所述随机节点的步骤之后,所述方法还包括:
4.如权利要求1所述的区块链消息转发方法,其特征在于,在所述在非邻居节点中随机选择节点,得到各个随机节点的步骤之后,所述方法还包括:
5.如权利要求4所述的区块链消息转发方法,其特征在于,所述基于各所述度对各所述随机节点进行筛选,得到无效随机节点和有效随机节点的步骤,包括:
6.如权利要求1所述的区块链消息转发方法,其特征在于...
【专利技术属性】
技术研发人员:王真,王滔滔,王晖,杨晴,张胜利,
申请(专利权)人:深圳大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。