服务器集群中的消息传递方法、装置及存储介质与流程

文档序号:17732467发布日期:2019-05-22 02:56阅读:152来源:国知局
本发明涉及区块链领域,具体涉及一种服务器集群中的消息传递方法、装置及存储介质。
背景技术
::区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。现有技术的区块链系统中,制约交易处理速度或称消息处理速度的主要瓶颈之一是基于泛洪(flooding)路由算法的网络,泛洪算法最大的问题是会产生大量的重复分组,占用网络资源,使路由器和链路的资源过于浪费,以致效率很低,较高的网络延迟导致区块链系统内的消息无法快速地传播到网络中的大部分节点,并且,一个服务器节点可能接收到多个服务器节点发送的相同消息,接收重复的消息消耗了大量的网络带宽资源以及硬件设备资源,从而降低消息的传播效率。技术实现要素:为克服以上技术问题,特别是现有技术区块链系统网络中无法高效地传播消息的问题,特提出以下技术方案:第一方面,本发明提供一种服务器集群中的消息传递方法,包括:按照预设规则将服务器节点分成若干个服务器分组,所述服务器节点组成环状的网络拓扑结构,所述服务器节点配置有路由表,所述路由表包括组内路由桶及组间路由桶;当服务器分组中的服务器节点接收到消息时,根据组内路由桶将所述消息传递至该服务器分组的其它服务器节点;以及根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。进一步的,所述按照预设规则将服务器节点分成若干个服务器分组,包括:按照每一个服务器分组的服务器节点的数量为将所述服务器节点分成个服务器分组;其中,服务器节点的数量为n,为正整数。进一步的,所述按照每一个服务器分组的服务器节点的数量为将所述服务器节点分成个服务器分组之后,还包括:对分组后的服务器节点进行排序,相邻间隔的整数倍的服务器节点互为对等节点。进一步的,所述根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点,包括:根据组间路由桶将所述消息传递至其它服务器分组的对等节点,由所述对等节点将所述消息传递至该对等节点对应服务器分组的其它服务器节点。第二方面,本发明从服务器集群的单个服务器节点视角,提供一种服务器集群中的消息传递方法,应用于区块链系统,所述服务器集群中的服务器节点组成环状的网络拓扑结构,所述服务器节点按照预设规则分成若干个服务器分组,包括:配置本服务器节点的路由表,所述路由表包括组内路由桶及组间路由桶;当接收到消息时,根据组内路由桶将所述消息传递至本服务器节点对应服务器分组的其它服务器节点;以及,根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。进一步的,所述每一个服务器分组的服务器节点的数量为所述服务器节点的数量为n,为正整数;相邻间隔的整数倍的服务器节点互为对等节点。进一步的,所述根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点,包括:根据组间路由桶将所述消息传递至其它服务器分组的对等节点,由所述对等节点将所述消息传递至该对等节点对应服务器分组的其它服务器节点。第三方面,本发明还提供了一种服务器集群中的消息传递装置,应用于区块链系统,所述服务器集群中的服务器节点组成环状的网络拓扑结构,所述服务器节点按照预设规则分成若干个服务器分组,包括:配置模块:用于配置本服务器节点的路由表,所述路由表包括组内路由桶及组间路由桶;组内消息传递模块:用于当接收到消息时,根据组内路由桶将所述消息传递至本服务器节点对应服务器分组的其它服务器节点;组间消息传递模块:用于根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的服务器集群中的消息传递方法。本发明与现有技术相比,具有以下有益效果:本发明通过将区块链系统网络中的服务器节点组成环状的网络拓扑结构,并将服务器节点分成若干个服务器分组,每个服务器节点配置了用于分组内服务器节点的消息传递及分组间服务器节点的消息传递的路由表,服务器节点能实现消息的点到点、点到多点的传递,当任一服务器节点接收到消息后,将消息传递至本分组内的其它服务器节点,同时将消息传递至其它分组的指定服务器节点,由所述指定服务器节点将消息传递至相应分组内的其它服务器节点,从而完成2-3跳的服务器节点间的消息传递或查询功能,有效地提升区块链网络中的服务器集群的各服务器节点间消息传递的效率。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明服务器集群中的消息传递方法的一实施例流程示意图;图2为本发明服务器节点组成的环拓扑状结构示意图;图3为本发明服务器节点组成的环状拓扑结构的另一维度示意图;图4为本发明服务器集群中的消息传递方法的另一实施例流程示意图;图5为本发明服务器集群中的消息传递装置的一实施例示意图;图6为本发明区块链系统中的服务器节点组成的环形结构示意图;图7为本发明服务器节点的一实施例结构示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“计算机程序”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。在一种实施例中,本发明提供了一种服务器集群中的消息传递方法,该方法应用于区块链系统中,如图1所示,所述方法包括以下步骤:s10:按照预设规则将服务器节点分成若干个服务器分组,所述服务器节点组成环状的网络拓扑结构,所述服务器节点配置有路由表,所述路由表包括组内路由桶及组间路由桶。区块链系统需要大量的运算力资源,搭载了区块链系统的平台都需要大量的服务器进行交易计算、信息传导,本实施例中,将特定数量的服务器节点按照预设规则分成若干个服务器分组,并且,所述服务器节点组成环状的网络拓扑结构,如图2所示为本实施例服务器节点组成的环状结构,环上的节点依次命名为aa,ab,…,ba,bb,…,ja,jb…,如图2所示,相同大写字母开头的节点属于同一服务器分组如aa,ab,…aj为同一服务器分组,所述服务器节点逻辑上通过基于ieee802.1规范的转发规则而组成环状结构,服务器节点消息支持点到点、多点到多点和点到多点等方式的传输,本实施例优选地以点到点与点到多点的方式进行消息的传输;进一步的,所述服务器节点都配置有一个路由表,具体为dht(distributedhashtable,分布式哈希表)路由表,所述路由表由2个桶(buckets)构成,包括组内路由桶(intra-grouproutingtable)及组间路由桶(inter-grouproutingtable),组内路由桶包含从本服务器节点的地址位置距离预设范围的其它服务器节点的地址位置信息;组间路由桶包含从本服务器节点的地址位置距离预设值的整数倍的其它服务器节点的地址位置信息。s20:当服务器分组中的服务器节点接收到消息时,根据组内路由桶将所述消息传递至该服务器分组的其它服务器节点。本实施例的区块链系统中,由环上的服务器节点提供处理区块链业务的逻辑运算力,当环上的服务器节点接收到消息时,根据所述组内路由桶将所述消息传递至该服务器分组的其它服务器节点,环上的每个服务器节点的地位相同,角色也相同,每个服务器节点既是索引服务器,也是资源服务器,当环上某一个服务器节点接收到消息后需要广播消息(如区块信息)时,该服务器节点会根据组内路由桶中配置的从本服务器节点的地址位置距离预设范围的其它服务器节点的地址位置信息,将所述消息传递至同一分组内的其它服务器节点。图2中,当服务器节点aa接收到消息时,根据组内路由桶(intra-grouproutingtable)将消息传递至组内的其它服务器节点ab,ac,…aj。s30:根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,以由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。进一步的,在将接收到的消息传递至同一服务器分组内的其它服务器节点的同时,将接收到的消息传递至其它服务器分组的指定服务器节点,然后由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点,例如,图2所示中,服务器节点aa将接收到的消息传递至其它服务器分组的指定服务器节点,包括服务器节点ba、ca、……、ja,然后由该些指定服务器节点将所述消息传递至相应分组内的其它服务器节点,如指定服务器节点ba将消息传递至服务器节点ba所在的服务器分组的其它服务器节点bb、bc……、bj,从而完成区块链系统内服务器节点间消息的传递。本实施例通过将区块链系统网络中的服务器节点组成环状的网络拓扑结构,并将服务器节点分成若干个服务器分组,每个服务器节点配置了用于分组内服务器节点的消息传递及分组间服务器节点的消息传递的路由表,服务器节点能实现消息的点到点、点到多点的传递,当任一服务器节点接收到消息后,将消息传递至本分组内的其它服务器节点,同时将消息传递至其它分组的指定服务器节点,由所述指定服务器节点将消息传递至相应分组内的其它服务器节点,从而完成2-3跳的服务器节点间的消息传递或查询功能,有效地提升区块链网络中的服务器集群的各服务器节点间消息传递的效率。本发明的一种实施例,所述按照预设规则将服务器节点分成若干个服务器分组,包括:按照每一个服务器分组的服务器节点的数量为将所述服务器节点分成个服务器分组;其中,服务器节点的数量为n,为正整数。为了能减少服务器节点中路由表所需配置的服务器节点的地址信息,减少一个路由表与其它路由表的通信数量,降低网络带宽资源的消耗,本实施例中,在将服务器节点进行分片成相应的服务器分组时,按照每个服务器的服务器节点的数量为将服务器节点分成个服务器分组,保证由服务器节点组成的环的分片数量与每个服务器分组中的服务器节点的数量相等,从而便于所组成的服务器节点环的动态分片管理,其中,所述服务器节点的数量为n,且所述为正整数,如图2中有100个服务器节点,则将该100个服务器节点组成的环分成个分片,即10个服务器分组,每个服务器分组中包含了10个服务器节点,此时,每个服务器节点中的组内路由表只需配置包括自身在内的10个服务器节点的地址位置信息。在上述实施例的基础上,本发明的一种实施例,所述按照每一个服务器分组的服务器节点的数量为将所述服务器节点分成个服务器分组之后,还包括:对分组后的服务器节点进行排序,相邻间隔的整数倍的服务器节点互为对等节点。本发明实施例中,环上的服务器节点的角色都是相同的,并且每个应用服务器节点都可以接收区块链系统的消息,或作为一个服务器分组的指定服务器节点,上述实施例中,每一个服务器分组的服务器节点的数量为在将服务器节点分组后,对分组后的服务器节点进行排序,具体的,沿着环的统一方向对所述服务器节点进行排序,并且服务器节点的地址位置信息相隔的整数倍的服务器节点互为对等节点,该些节点在每个分组所处的位置是一样的,将图2中服务器节点中消息的传递方式转换一下维度,变换为如图3所示的结构,此时每个服务器分组中处于相同位置的节点为对等节点,如aa、ba、ca、da互为对等节点,ab、bb、cb、db亦互为对等节点,且每个服务器分组中包含一个所述指定服务器节点,该指定服务器节点即为服务器分组的片头节点,如aa、ba、ca、da为当前分组下各服务器分组的片头节点。本发明的一种实施例,所述根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,以由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点,包括:根据组间路由桶将所述消息传递至其它服务器分组的对等节点,由所述对等节点将所述消息传递至该对等节点对应服务器分组的其它服务器节点。本实施例中,环上的每个服务器节点的组件路由表配置有与自身的地址位置信息相隔的整数倍的其它服务器节点的地址位置信息,该些其他服务器节点互为对等节点,在一个服务器节点接收到消息后,不仅通过组内路由表将消息传递至本服务器分组内与本服务器节点的地址位置相距1至的服务器节点,还通过组件路由表将消息传递至与本服务器节点的地址位置相距的整数倍的其它服务器分组的指定服务器节点,亦即是与本服务器节点互为对等节点的其它服务器节点,然后由所述对等节点将所述消息传递至相应服务器分组内的其它服务器节点。例如,服务器节点aa接收到消息后,将消息传递至对等节点ba、ca、da,……,然后由该些对等节点将消息传递至相应分组内的其它服务器节点,如对等节点ba将消息传递至相应分组内的其它服务器节点bb、bc、bd等,完成区块链系统内服务器节点间的消息传递。本发明的一种实施例,所述方法还包括:获取各服务器节点接收到消息的时间延迟,根据所述时间延迟统计各服务器节点的性能指标。本实施例中,在每一次发送消息后,获取各服务器节点接收到消息的时间延迟,然后根据所述时间延迟统计每一个服务器节点的性能指标,若延迟过高,可能该服务器节点的性能存在不足,为了保证区块链系统的正常运行,根据所述性能指标调整相应的服务器节点,以保证区块链系统中消息的高效传递。在另一种实施例中,如图4所示,本发明从服务器集群的单个服务器节点视角,阐述本发明提供的一种服务器集群中的消息传递方法,该方法应用于服务器集群,所述服务器集群中的服务器节点按照预设规则分成若干个服务器分组,所述方法包括:s100:配置本服务器节点的路由表,所述路由表包括组内路由桶及组间路由桶;s200:当接收到消息时,根据组内路由桶将所述消息传递至本服务器节点对应服务器分组的其它服务器节点;s300:根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。区块链系统需要大量的运算力资源,搭载了区块链系统的平台都需要大量的服务器进行交易计算、信息传导,本实施例中,将特定数量的服务器节点按照预设规则分成若干个服务器分组,并且,所述服务器节点组成环状的网络拓扑结构,并且服务器节点都配置有一个路由表,所述路由表由2个桶(buckets)构成,包括组内路由桶及组间路由桶,组内路由桶包含从本服务器节点的地址位置距离预设范围的其它服务器节点的地址位置信息;组间路由桶包含从本服务器节点的地址位置距离预设值的整数倍的其它服务器节点的地址位置信息;当服务器节点接收到消息时,根据所述组内路由桶将所述消息传递至该服务器分组的其它服务器节点,环上的每个服务器节点的地位相同,角色也相同,当环上某一个服务器节点接收到消息后需要广播消息(如区块信息)时,该服务器节点会根据组内路由桶中配置的从本服务器节点的地址位置距离预设范围的其它服务器节点的地址位置信息,将所述消息传递至同一分组内的其它服务器节点。如图2中当服务器节点aa接收到消息时,根据组内路由桶(intra-grouproutingtable)将消息传递至组内的其它服务器节点ab,ac,…aj。在将接收到的消息传递至同一服务器分组内的其它服务器节点的同时,将接收到的消息传递至其它服务器分组的指定服务器节点,然后由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点,例如,图2所示中,服务器节点aa将接收到的消息传递至其它服务器分组的指定服务器节点,包括服务器节点ba、ca、……、ja,然后由该些指定服务器节点将所述消息传递至相应分组内的其它服务器节点,如指定服务器节点ba将消息传递至服务器节点ba所在的服务器分组的其它服务器节点bb、bc……、bj,从而完成区块链系统内服务器节点间消息的传递。本发明的一种实施例中,每一个所述服务器分组的服务器节点的数量为所述服务器节点的数量为n,为正整数;相邻间隔的整数倍的服务器节点互为对等节点。本发明的一种实施例中,所述根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点,包括:根据组间路由桶将所述消息传递至其它服务器分组的对等节点,由所述对等节点将所述消息传递至该对等节点对应服务器分组的其它服务器节点。在另一种实施例中,如图5所示,本发明提供一种服务器集群中的消息传递装置,应用于区块链系统,所述服务器集群中的服务器节点组成环状的网络拓扑结构,所述服务器节点按照预设规则分成若干个服务器分组,包括:配置模块100:用于配置本服务器节点的路由表,所述路由表包括组内路由桶及组间路由桶;组内消息传递模块200:用于当接收到消息时,根据组内路由桶将所述消息传递至本服务器节点对应服务器分组的其它服务器节点;组间消息传递模块300:用于根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。在另一种实施例中,本发明提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所述的服务器集群中的消息传递方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。本发明实施例提供的一种计算机可读存储介质,可实现按照预设规则将服务器节点分成若干个服务器分组,所述服务器节点组成环状的网络拓扑结构,所述服务器节点配置有路由表,所述路由表包括组内路由桶及组间路由桶;当服务器分组中的服务器节点接收到消息时,根据组内路由桶将所述消息传递至该服务器分组的其它服务器节点;以及根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。通过将区块链系统网络中的服务器节点组成环状的网络拓扑结构,并将服务器节点分成若干个服务器分组,每个服务器节点配置了用于分组内服务器节点的消息传递及分组间服务器节点的消息传递的路由表,服务器节点能实现消息的点到点、点到多点的传递,当任一服务器节点接收到消息后,将消息传递至本分组内的其它服务器节点,同时将消息传递至其它分组的指定服务器节点,由所述指定服务器节点将消息传递至相应分组内的其它服务器节点,从而完成2-3跳的服务器节点间的消息传递或查询功能,有效地提升区块链网络中的服务器集群的各服务器节点间消息传递的效率。本发明实施例提供的计算机可读存储介质可以实现上述服务器集群中的消息传递方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。此外,在又一种实施例中,本发明还提供一种区块链系统,如图6所示,所述区块链系统包括ring0和ring1两个由服务器节点组成的环状的网络拓扑结构,环上的每一个点(unity)表示服务器节点,多个服务器节点(unity)组成一个服务器分组(group),处于每一个服务器分组(group)的相同位置的服务器节点互为对等节点(counterpart)。由如图7所示的服务器作为图6中区块链系统中的服务器节点,完成上述服务器集群中的消息传递方法,所述服务器包括处理器703、存储器705等器件。本领域技术人员可以理解,图7示出的结构器件并不构成对所有服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储器705可用于存储计算机程序701以及各功能模块,处理器703运行存储在存储器705的计算机程序701,从而执行设备的各种功能应用以及数据处理。存储器705可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储器包括但不限于这些类型的存储器。本发明所公开的存储器705只作为例子而非作为限定。图7中所示的一个或多个处理器703能够执行、实现图5中所示的配置模块100、组内消息传递模块200、组间消息传递模块300的功能。在一种实施方式中,所述服务器包括一个或多个处理器703,以及一个或多个存储器705,一个或多个计算机程序701,其中所述一个或多个计算机程序701被存储在存储器705中并被配置为由所述一个或多个处理器703执行,所述一个或多个计算机程序701配置用于执行以上实施例所述的服务器集群中的消息传递方法。本发明实施例提供的一种区块链系统,可实现按照预设规则将服务器节点分成若干个服务器分组,所述服务器节点组成环状的网络拓扑结构,所述服务器节点配置有路由表,所述路由表包括组内路由桶及组间路由桶;当服务器分组中的服务器节点接收到消息时,根据组内路由桶将所述消息传递至该服务器分组的其它服务器节点;以及根据组间路由桶将所述消息传递至其它服务器分组的指定服务器节点,由所述指定服务器节点将所述消息传递至该指定服务器节点对应服务器分组的其它服务器节点。通过将区块链系统网络中的服务器节点组成环状的网络拓扑结构,并将服务器节点分成若干个服务器分组,每个服务器节点配置了用于分组内服务器节点的消息传递及分组间服务器节点的消息传递的路由表,服务器节点能实现消息的点到点、点到多点的传递,当任一服务器节点接收到消息后,将消息传递至本分组内的其它服务器节点,同时将消息传递至其它分组的指定服务器节点,由所述指定服务器节点将消息传递至相应分组内的其它服务器节点,从而完成2-3跳的服务器节点间的消息传递或查询功能,有效地提升区块链网络中的服务器集群的各服务器节点间消息传递的效率。本发明实施例提供的区块链系统可以实现上述提供的服务器集群中的消息传递方法的实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。以上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1