CN110098920B - 一种减少节点碰撞的区块链节点负载均衡方法及装置 - Google Patents
一种减少节点碰撞的区块链节点负载均衡方法及装置 Download PDFInfo
- Publication number
- CN110098920B CN110098920B CN201910374945.2A CN201910374945A CN110098920B CN 110098920 B CN110098920 B CN 110098920B CN 201910374945 A CN201910374945 A CN 201910374945A CN 110098920 B CN110098920 B CN 110098920B
- Authority
- CN
- China
- Prior art keywords
- node
- account book
- full account
- full
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Abstract
本发明实施例公开了一种减少节点碰撞的区块链节点负载均衡方法及装置,钱包节点通过一致性哈希算法建立哈希环,将所有全账本节点和当前钱包节点均映射到哈希环上,钱包节点根据处于哈希环上的位置选择全账本节点,接收到请求的全账本节点根据自身负载情况,同时通过Chord环,选择负载未满的全账本节点与钱包节点建立通信,实现钱包节点的交易上链。有效的保证钱包节点大致平均地分配到系统所有的全账本节点并建立通信,保证了支撑全账本节点的服务器负载均衡,不会有服务器负载过多导致故障,也不会有服务器空闲浪费资源。
Description
技术领域
本发明涉及区块链技术领域,具体地说是一种减少节点碰撞的区块链节点负载均衡方法及装置。
背景技术
区块链网络中包括全账本节点、目录节点和钱包节点。全账本节点是指拥有完整区块链账本的节点,需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链上交易的广播和验证,因此全账本节点一般运行在高性能的服务器上;目录节点是存储区块链上所有全账本节点数据(包括标识码、协议标识、IP和端口、地理位置信息等数据)的节点,负责向申请这些数据的区块链其他节点发送相关的全账本节点数据;钱包节点不保存所有区块的数据,只保存跟自己交易相关的数据,所以体积很小,可以运行在电脑,手机,网页等地方,但是不具备将自身交易上链的功能,因此需要通过与全账本节点进行通信来完成数据交换、交易上链等行为。
每当有新加入区块链网络的钱包节点时,该钱包节点首先需要向某个或某几个全账本节点发送通信请求,全账本节点才能对此钱包节点进行交易上链等服务,因此需要设计钱包节点与为其提供服务的全账本节点的通信方法。
现有技术套用中心化系统的节点分配方法,包括为全账本节点从零开始编号,利用新加入区块链网络的钱包节点id除以全账本节点数目的余数,并规定余数所对应的全账本节点向该钱包节点提供服务。这种方法可能出现余数都为同一数值或同几个数值的情况,导致所有钱包节点都只与某一个或某几个全账本节点进行通信,而其余全账本节点不与任何钱包节点进行通信。全账本节点向钱包节点提供服务需要占用自身服务器内存空间,因此套用上述方法就会导致一部分全账本节点与过多钱包节点建立通信,进行交易处理时占用大量服务器内存空间,造成支撑全账本节点的服务器负载过重,容易故障;而另一部分全账本节点不与任何钱包节点建立通信,其服务器长时间空闲,产生资源浪费。此外,如果采用上述方法,一旦某个全账本节点出现故障,则可用的全账本节点数目减少,所有的钱包节点都需要重新计算,进而重新确定为自己进行服务的全账本节点,因此需要区块链网络中大部分乃至全部节点都重新建立通信。
发明内容
本发明实施例中提供了一种减少节点碰撞的区块链节点负载均衡方法,以解决现有区块链中全账本节点负载不均衡,且应对全账本节点故障时操作繁琐的问题。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
本发明第一方面提供了一种减少节点碰撞的区块链节点负载均衡方法,包括以下步骤:
全账本节点获取目录节点中所有全账本节点数据,根据Chord协议构建Chord环,并将所有全账本节点按照哈希值的大小顺序映射到所述Chord环上;
当前钱包节点获取目录节点中所有全账本节点数据,根据一致性哈希算法构建哈希环,并将所有全账本节点和自身钱包节点按照哈希值的大小顺序映射到所述哈希环上;
在哈希环上,钱包节点从自身位置按顺时针方向,就近选取两个全账本节点,并对这两个全账本节点进行哈希校验;
钱包节点向上一步确定的两个全账本节点发送通信请求;
接收到通信请求的两个全账本节点,判断自身服务器的负载情况,在负载未满时,建立与当前钱包节点的通信关系,在负载已满时,沿Chord环的顺时针方向,向Chord环上的下一个全账本节点转发通信请求。
进一步地,所述对这两个全账本节点进行哈希校验的具体过程为:
钱包节点分别获取其一全账本节点的交易数据和另一个全账本节点的交易验证码;
计算所述交易数据的哈希值,对比该哈希值与所述交易验证码的一致性;
若一致,则通过校验,若不一致,则按照顺时针方向,选取当前两全账本节点的后两个全账本节点,重复进行哈希校验。
进一步地,所述在负载已满时,还包括以下步骤:
设置请求转发次数的阈值;
接收到请求的全账本节点判断请求转发次数是否超过阈值;
若是,则释放接收到的请求数据,返回负载已满的提示;
若否,向Chord环上的下一个全账本节点转发通信请求。
进一步地,所述接收到通信请求的两个全账本节点分别独立处理所述通信请求。
本发明第二方面提供了一种减少节点碰撞的区块链节点负载均衡装置,所述装置包括全账本节点、目录节点和钱包节点;
所述全账本节点用于处理钱包节点的通信请求,并根据自身服务器负载和Chord环选取为钱包节点提供服务的全账本节点;
所述目录节点用于存储全账本节点数据,并向请求数据的区块链节点发送所述全账本节点数据;
所述钱包节点用于构建哈希环,并根据所述哈希环发起并建立与全账本节点的通信。
进一步地,所述全账本节点包括:
第一全账本节点数据获取模块,用于向目录节点发送数据请求信息,并获取所有全账本节点数据;
Chord环建立模块,用于建立Chord环,并根据所有全账本节点数据的哈希值,将所有全账本节点按照哈希值从小到大的顺序顺时针映射到所述Chord环上;
自身负载判断模块,用于判断自身服务器当前内存的剩余空间是否能够支撑为钱包节点提供服务;
通信消息处理模块,用于查看当前请求消息的转发次数,并根据转发次数阈值和所述自身负载判断模块的判断结果,向钱包节点返回通信成功与否的消息提示。
进一步地,所述目录节点包括:
全账本节点数据存储模块,用于存储当前区块链网络中所有全账本节点数据,所述全账本节点数据包括标识码、协议标识、地理位置信息、IP和端口信息;
钱包节点身份验证模块,接收钱包节点发送的自身id信息和区块链许可准入证书,验证钱包节点身份的合法性;
全账本节点数据发送模块,向通过身份验证的钱包节点发送所有全账本节点数据。
进一步地,所述钱包节点包括:
第二全账本节点数据获取模块,用于向目录节点发送自身身份信息,并请求获取所有全账本节点数据;
哈希环建立模块,根据一致性哈希算法建立哈希环,并将所有全账本节点和当前钱包节点按照哈希值的大小顺时针映射到所述哈希环上;
交易信息请求模块,在哈希环上,钱包节点从自身位置按顺时针方向,就近选取两个全账本节点,向其一全账本节点请求交易数据,向另一全账本节点请求交易数据的校验码;
交易数据哈希校验模块,计算所述交易数据的哈希值,并对比与所述校验码的一致性,若一致,则校验通过;
通信请求发送模块,向确定的两个全账本节点发送通信请求;
返回消息处理模块,根据全账本节点返回的消息提示,发送自身交易数据至全账本节点。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、通过一致性哈希算法建立哈希环,将所有全账本节点和当前钱包节点均映射到哈希环上,钱包节点根据处于哈希环上的位置选择全账本节点,接收到请求的全账本节点根据自身负载情况,同时通过Chord环,选择负载未满的全账本节点与钱包节点建立通信,实现钱包节点的交易上链。有效的保证钱包节点大致平均地分配到系统所有的全账本节点并建立通信,保证了支撑全账本节点的服务器负载均衡,不会有服务器负载过多导致故障,也不会有服务器空闲浪费资源。
2、钱包节点一旦与全账本节点建立通信后,将持续与此全账本节点进行直接通信,提高节点间的通信效率。且每个钱包节点与两个全账本节点同时建立通信关系,这两个全账本节点独立处理钱包节点的请求,进一步提高数据处理效率。
3、目录节点在向钱包节点发送全账本节点数据前,首先验证钱包节点身份的合法性;钱包节点在向两个全账本节点发送通信请求前,分别获取两个全账本节点的交易数据和验证码,验证两者的一致性,保证了通信和交易的合法性。
4、当有一个全账本节点出现故障时,只需要重新分配与该全账本节点连接的钱包节点即可,区块链网络中其他钱包节点不受影响,处理方式简便快捷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法实施例的流程示意图;
图2是本发明全账本节点与钱包节点在哈希环上的分布结构示意图;
图3是本发明钱包节点与全账本节点通信流程示意图;
图4是本发明全账本节点之间通信流程示意图;
图5是本发明所述装置的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明减少节点碰撞的区块链节点负载均衡方法,包括以下步骤:
S1,全账本节点获取目录节点中所有全账本节点数据,根据Chord协议构建Chord环,并将所有全账本节点按照哈希值的大小顺序映射到所述Chord环上;
S2,当前钱包节点获取目录节点中所有全账本节点数据,根据一致性哈希算法构建哈希环,并将所有全账本节点和自身钱包节点按照哈希值的大小顺序映射到所述哈希环上;
S3,在哈希环上,钱包节点从自身位置按顺时针方向,就近选取两个全账本节点,并对这两个全账本节点进行哈希校验;
S4,钱包节点向上一步确定的两个全账本节点发送通信请求;
S5,接收到通信请求的两个全账本节点,判断自身服务器的负载情况,在负载未满时,建立与当前钱包节点的通信关系,在负载已满时,沿Chord环的顺时针方向,向Chord环上的下一个全账本节点转发通信请求。
如图2所示,步骤S2中,哈希环上分布了区块链网络中所有全账本节点,并按照哈希值从小到大的顺序依次顺时针排列到哈希环上。同时当前钱包节点也基于自身哈希值的大小映射到该哈希环上。图2所示的钱包节点a位于全账本节点A和全账本节点B之间,钱包节点在选择全账本节点时,首先选择全账本节点B和全账本节点C,在全账本节点B和全账本节点C的哈希校验未通过时,在选择全账本节点D和全账本节点E,以此沿顺时针方向向下选择。
下面结合图3和图4对上述步骤S1-S5的具体实现过程进行详细说明。
如图3所示,新接入区块链网络的钱包节点与全账本节点的通信过程:
步骤S201,新加入区块链网络的钱包节点向存储着全部全账本节点相关信息的目录节点发送请求,发送自身节点id信息和区块链许可准入证书,并且请求获取所有可以对钱包节点提供服务的全账本节点数据。全账本节点数据包括标识码、协议标识、IP和端口、地理位置信息。
步骤S202,目录节点接收到请求后对钱包节点身份进行验证,具体操作为接收到钱包节点发送的节点id信息和区块链许可准入证书后,利用目录节点所持有的解密密钥对许可准入证书解密并获取证书中标明的钱包节点的节点id信息和证书有效日期,证书中的节点id信息和钱包节点发送的节点id信息一致且证书未到有效日期则完成对钱包节点的身份验证,否则驳回钱包节点的数据请求。通过钱包节点身份验证后,向钱包节点发送其请求的全账本节点数据。
步骤S203,钱包节点基于一致性哈希算法建立哈希环,具体过程为:(1)计算获取的全账本节点数据的哈希值;(2)建立一个足够大的圆环,圆环上均匀并且有序地分布0-232-1共计232个数字,0值在圆环的最上方,按照顺时针顺序从小到大排列数字,得到哈希环;(3)根据哈希值将所有全账本节点一一映射到圆环上;(4)计算自身钱包节点的哈希值,并且同样根据哈希值将钱包节点也映射到哈希环上。
步骤S204,钱包节点按照哈希环的顺时针顺序选择哈希环上距离钱包节点最近的两个全账本节点。
步骤S205,钱包节点与选择的两个全账本节点进行通信,向其中一个全账本节点请求交易数据,交易数据包括交易所在的区块高度、签名等信息,向另一个全账本节点请求上述交易相关数据哈希所形成的验证码(即交易相关数据的哈希值)。
步骤S206,钱包节点对请求到的交易数据进行哈希计算,与获得的验证码比对是否一致,一致则进行步骤S207,不一致则在哈希环上删除选择的两个全账本节点,并回到步骤S204。
步骤S207,钱包节点向步骤S204选定并且通过步骤S206哈希校验的两个全账本节点发送自身交易数据,请求建立通信。
步骤S208,钱包节点等待全账本节点的执行结果和返回消息,如果返回消息1:“当前系统负载已满,请稍后处理”,则等待10s后回到步骤S204,如果返回消息2:“通信成功”,则发送自身交易数据到全账本节点。
如图4所示,在上述步骤S207后,全账本节点接收到钱包节点的通信请求进行与当前钱包节点通信的全账本节点的进一步选择:
步骤S301,所有全账本节点向目录节点发送请求,请求获取目录节点中其他所有全账本节点数据(标识码、协议标识、IP和端口、地理位置信息等)。
步骤S302,全账本节点从目录节点获得步骤S301所请求的数据后,根据Chord协议,完成Chord环的构建,具体步骤为;(1)计算获取的全账本节点数据的哈希值;(2)建立一个足够大的圆环,圆环上均匀并且有序地分布0-232-1共计232个数字,0值在圆环的最上方,按照顺时针顺序从小到大排列232个数字,(3)根据哈希值将所有全账本节点一一映射到Chord环上。
步骤S303,全账本节点接收到钱包节点请求后,判断自身服务器负载是否已满,负载未满则执行步骤S304,负载已满则执行步骤S305。自身服务器负载通过当前服务器内存空间的占用量进行判断。被钱包节点选择的两个全账本节点分别独立处理钱包节点的请求独立进行步骤S303-步骤S307的操作流程。
步骤S304,支撑全账本节点的服务器自身负载未满,直接接收处理消息,并向钱包节点返回消息2:“通信成功”,并等待处理钱包节点发送的交易数据;
步骤S305,支撑全账本节点的服务器判断自身负载已满,则按照Chord环顺时针顺序把请求消息转发给Chord环上该全账本节点的下一个全账本节点,并将消息的转发次数加一。
步骤S306,接收到请求消息的新全账本节点在处理消息前,判断转发次数是否超过规定阈值,超过阈值进行步骤S307,未超过阈值则回到步骤S303。
步骤S307,转发次数超过规定阈值,当前全账本节点抛弃接收到的消息,并向钱包节点返回信息1:“当前系统负载已满,请稍后处理”。
如图5所示,本发明还提供了减少节点碰撞的区块链节点负载均衡装置,包括钱包节点10、全账本节点11和目录节点12。
钱包节点10包括第二全账本节点数据获取模块101、哈希环建立模块102、交易信息请求模块103、交易数据哈希校验模块104、通信请求发送模块105和返回消息处理106,钱包节点负责通信的发起和建立,并且一旦建立起与某个全账本节点11的通信,除非全账本节点11故障,后续将持续与此全账本节点11进行直接通信。
第二全账本节点数据获取模块101,向目录节点12发送钱包节点的节点id信息和自身的区块链许可准入证书(许可准入证书是加密后的证书,需要持有解密密钥的节点进行解密才能看到钱包节点的证书信息),并请求可以为钱包节点10提供服务的全账本节点11的数据。
哈希环建立模块102,根据一致性哈希算法建立哈希环,并根据哈希值将所有全账本节点11和当前钱包节点一一映射到哈希环上。
交易信息请求模块103,全账本节点11请求获取交易信息,按照哈希环的顺时针顺序,选择哈希环上顺时针距离钱包节点10最近的两个全账本节点,向一个请求交易数据,向另一个请求交易数据的哈希值。交易数据的哈希值即称为交易校验码。
交易数据哈希校验模块104,根据从两个全账本节点处获得的交易数据和交易校验码(全账本节点提供的交易数据的哈希值),计算获得的交易数据的哈希值,与交易校验码比对是否一致,一致则进行后续的通信请求和建立等操作,不一致则排除模块103选择的两个全账本节点,并重新选择两个全账本节点11进行通信。若不一致,说明至少其中一个全账本节点所存储的数据有错误,所以不能进行后续通信。
所述的通信请求发送模块105,选择模块103选定的并且通过模块104校验的两个全账本节点,向两个全账本节点11同时发送通信请求,同时发送自身交易数据,请求建立通信以完成交易上链。
所述的返回消息处理模块106,根据全账本节点11的返回消息类型进行后续操作,如果返回消息为:“当前系统负载已满,请稍后处理”则等待一段时间后重新发送通信请求,如果返回消息为:“通信成功”,则向全账本节点发送自身交易数据。
全账本节点11包括第一全账本节点数据获取模块111、Chord环建立模块112、自身负载判断模块113和通信消息处理模块114,在区块链系统中为用户提供交易合法性验证、交易上链等服务,负责通信消息的处理和负载均衡的保证。
第一全账本节点数据获取模块111,向目录节点12发送全账本节点11的信息并请求其他所有全账本节点的数据。
Chord环建立模块112,基于Chord协议建立Chord环,将所有全账本节点按照哈希值从小到大的顺序顺时针映射到Chord环上。
自身负载判断模块113,根据全账本节点11的服务器已经使用的内存空间大小,计算其剩余内存空间大小,由于为钱包节点10提供服务需要占用服务器内存空间,因此可以判断全账本节点服务器的当前内存空间是否足够支撑为钱包节点10提供服务。
通信消息处理模块114,查看消息转发次数,次数超过阈值则向钱包节点10返回消息:“当前系统负载已满,请稍后处理”;次数未超过阈值则根据自身负载判断模块113的判断结果处理钱包节点的通信请求消息,负载已满转发消息到Chord环上顺时针方向临近的全账本节点,并且增加一次消息转发次数,负载未满则接收消息,并向钱包节点10返回消息:“通信成功”。
目录节点12包括全账本节点数据存储模块121、钱包节点身份验证模块122和全账本节点数据发送模块123,负责存储区块链中所有全账本节点数据,并向请求数据的区块链节点发送以上全账本节点数据。
全账本节点数据存储模块121,存储区块链网络中所有全账本节点数据,包括标识码、协议标识、IP和端口、地理位置信息等。
钱包节点身份验证模块122,接收到钱包节点10发送的节点id信息和区块链许可准入证书后,利用目录节点12所持有的解密密钥对许可准入证书解密并获取证书中标明的钱包节点的节点id信息和证书有效日期,证书中的节点id信息和钱包节点发送的节点id信息一致且证书未到有效日期则完成对钱包节点的身份验证,否则驳回钱包节点的数据请求。
全账本节点数据发送模块123,在钱包节点身份验证模块122对钱包节点的身份验证通过后,向钱包节点发送其请求的全账本节点数据。
本发明钱包节点和全账本节点建立通信时,通过目录节点获取全账本节点数据,基于获取的全账本节点数据、自身节点数据和一致性哈希算法建立哈希环,根据哈希环选择全账本节点进行通信请求,请求与全账本节点进行交易数据交换和哈希校验,最终发送自身交易消息到全账本节点,请求建立通信。全账本节点之间基于Chord协议建立Chord环,接收到钱包节点服务请求消息后,根据自身负载情况和消息的转发次数,选择处理消息或根据Chord环转发消息,并最终根据消息的处理情况向钱包节点返回消息。整个过程中,全账本节点始终不会出现负载过满的情况,钱包节点选择全账本节点、全账本节点根据自身负载转发或处理消息的方法,都保证了区块链上全账本节点的服务器负载均衡。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (8)
1.一种减少节点碰撞的区块链节点负载均衡方法,其特征是,包括以下步骤:
全账本节点获取目录节点中所有全账本节点数据,根据Chord协议构建Chord环,并将所有全账本节点按照哈希值的大小顺序映射到所述Chord环上;
当前钱包节点获取目录节点中所有全账本节点数据,根据一致性哈希算法构建哈希环,并将所有全账本节点和自身钱包节点按照哈希值的大小顺序映射到所述哈希环上;
在哈希环上,钱包节点从自身位置按顺时针方向,就近选取两个全账本节点,并对这两个全账本节点进行哈希校验;
钱包节点向上一步确定的两个全账本节点发送通信请求;
接收到通信请求的两个全账本节点,判断自身服务器的负载情况,在负载未满时,建立与当前钱包节点的通信关系,在负载已满时,沿Chord环的顺时针方向,向Chord环上的下一个全账本节点转发通信请求。
2.根据权利要求1所述的一种减少节点碰撞的区块链节点负载均衡方法,其特征是,所述对这两个全账本节点进行哈希校验的具体过程为:
钱包节点分别获取其一全账本节点的交易数据和另一个全账本节点的交易验证码;
计算所述交易数据的哈希值,对比该哈希值与所述交易验证码的一致性;
若一致,则通过校验,若不一致,则按照顺时针方向,选取当前两全账本节点的后两个全账本节点,重复进行哈希校验。
3.根据权利要求1所述的一种减少节点碰撞的区块链节点负载均衡方法,其特征是,所述在负载已满时,还包括以下步骤:
设置请求转发次数的阈值;
接收到请求的全账本节点判断请求转发次数是否超过阈值;
若是,则释放接收到的请求数据,返回负载已满的提示;
若否,向Chord环上的下一个全账本节点转发通信请求。
4.根据权利要求1-3任一项所述的一种减少节点碰撞的区块链节点负载均衡方法,其特征是,所述接收到通信请求的两个全账本节点分别独立处理所述通信请求。
5.一种减少节点碰撞的区块链节点负载均衡装置,其特征是,所述装置包括全账本节点、目录节点和钱包节点;
所述全账本节点用于处理钱包节点的通信请求,并根据自身服务器负载和Chord环选取为钱包节点提供服务的全账本节点,且将全账本节点按照哈希值的大小顺序映射到所述Chord环上;
所述目录节点用于存储全账本节点数据,并向请求数据的区块链节点发送所述全账本节点数据;
所述钱包节点用于构建哈希环,将所有全账本节点和自身钱包节点按照哈希值的大小顺序映射到所述哈希环上,并根据所述哈希环发起并建立与全账本节点的通信;
在哈希环上,钱包节点从自身位置按顺时针方向,就近选取两个全账本节点,并对这两个全账本节点进行哈希校验;钱包节点向选取的两个全账本节点发送通信请求;接收到通信请求的两个全账本节点,判断自身服务器的负载情况,在负载未满时,建立与当前钱包节点的通信关系,在负载已满时,沿Chord环的顺时针方向,向Chord环上的下一个全账本节点转发通信请求。
6.根据权利要求5所述的一种减少节点碰撞的区块链节点负载均衡装置,其特征是,所述全账本节点包括:
第一全账本节点数据获取模块,用于向目录节点发送数据请求信息,并获取所有全账本节点数据;
Chord环建立模块,用于建立Chord环,并根据所有全账本节点数据的哈希值,将所有全账本节点按照哈希值从小到大的顺序顺时针映射到所述Chord环上;
自身负载判断模块,用于判断自身服务器当前内存的剩余空间是否能够支撑为钱包节点提供服务;
通信消息处理模块,用于查看当前请求消息的转发次数,并根据转发次数阈值和所述自身负载判断模块的判断结果,向钱包节点返回通信成功与否的消息提示。
7.根据权利要求5所述的一种减少节点碰撞的区块链节点负载均衡装置,其特征是,所述目录节点包括:
全账本节点数据存储模块,用于存储当前区块链网络中所有全账本节点数据,所述全账本节点数据包括标识码、协议标识、地理位置信息、IP和端口信息;
钱包节点身份验证模块,接收钱包节点发送的自身id信息和区块链许可准入证书,验证钱包节点身份的合法性;
全账本节点数据发送模块,向通过身份验证的钱包节点发送所有全账本节点数据。
8.根据权利要求5所述的一种减少节点碰撞的区块链节点负载均衡装置,其特征是,所述钱包节点包括:
第二全账本节点数据获取模块,用于向目录节点发送自身身份信息,并请求获取所有全账本节点数据;
哈希环建立模块,根据一致性哈希算法建立哈希环,并将所有全账本节点和当前钱包节点按照哈希值的大小顺时针映射到所述哈希环上;
交易信息请求模块,在哈希环上,钱包节点从自身位置按顺时针方向,就近选取两个全账本节点,向其一全账本节点请求交易数据,向另一全账本节点请求交易数据的校验码;
交易数据哈希校验模块,计算所述交易数据的哈希值,并对比与所述校验码的一致性,若一致,则校验通过;
通信请求发送模块,向确定的两个全账本节点发送通信请求;
返回消息处理模块,根据全账本节点返回的消息提示,发送自身交易数据至全账本节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910374945.2A CN110098920B (zh) | 2019-05-07 | 2019-05-07 | 一种减少节点碰撞的区块链节点负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910374945.2A CN110098920B (zh) | 2019-05-07 | 2019-05-07 | 一种减少节点碰撞的区块链节点负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110098920A CN110098920A (zh) | 2019-08-06 |
CN110098920B true CN110098920B (zh) | 2022-08-02 |
Family
ID=67447024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910374945.2A Active CN110098920B (zh) | 2019-05-07 | 2019-05-07 | 一种减少节点碰撞的区块链节点负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110098920B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612810B (zh) * | 2021-05-18 | 2023-06-27 | 中国信息通信研究院 | 基于dht的集群节点间性能优化方法、电子设备及存储介质 |
CN113592656B (zh) * | 2021-09-27 | 2021-12-28 | 杭州宇链科技有限公司 | 联盟链交易同步优化方法、计算机可读介质和电子设备 |
CN115022371B (zh) * | 2022-06-14 | 2024-03-29 | 阿里云计算有限公司 | 负载分配方法、云单元系统及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737498A (zh) * | 2018-04-18 | 2018-11-02 | 中国地质大学(武汉) | 一种基于区块链的p2p安全下载检测方法及系统 |
CN109716375A (zh) * | 2018-07-27 | 2019-05-03 | 区链通网络有限公司 | 区块链账户的处理方法、装置和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301425A (zh) * | 2014-10-24 | 2015-01-21 | 南方电网科学研究院有限责任公司 | 基于对象类型和哈希环的对象注册中心服务集群实现方法 |
CN106020724A (zh) * | 2016-05-20 | 2016-10-12 | 南京邮电大学 | 一种基于数据映射算法的近邻存储方法 |
CN106973021A (zh) * | 2017-02-27 | 2017-07-21 | 华为技术有限公司 | 网络系统中负载均衡的方法和节点 |
CN108256965A (zh) * | 2018-01-11 | 2018-07-06 | 杭州秘猿科技有限公司 | 一种基于区块链的分布式电子商务平台系统 |
-
2019
- 2019-05-07 CN CN201910374945.2A patent/CN110098920B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737498A (zh) * | 2018-04-18 | 2018-11-02 | 中国地质大学(武汉) | 一种基于区块链的p2p安全下载检测方法及系统 |
CN109716375A (zh) * | 2018-07-27 | 2019-05-03 | 区链通网络有限公司 | 区块链账户的处理方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110098920A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111865598B (zh) | 网络功能服务的身份校验方法及相关装置 | |
CN110098920B (zh) | 一种减少节点碰撞的区块链节点负载均衡方法及装置 | |
WO2020173287A1 (en) | Systems and methods for determining network shards in blockchain network | |
US20220109730A1 (en) | Method and proxy server for establishing communication connection | |
CN107886328B (zh) | 交易处理方法、装置、计算机设备及存储介质 | |
US8259694B2 (en) | Methods, devices, systems, and computer program products for registration of multi-mode communications devices | |
CN111262865B (zh) | 访问控制策略的制定方法、装置及系统 | |
CN110602108B (zh) | 基于区块链网络的数据通信方法、装置、设备及存储介质 | |
CN110944319B (zh) | 5g通信身份验证方法、设备及存储介质 | |
CN111132305B (zh) | 5g用户终端接入5g网络的方法、用户终端设备及介质 | |
CN110768988A (zh) | 一种建立ssl vpn隧道的方法及装置 | |
CN111460504A (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN106210058A (zh) | 一种多核并行的反向代理方法 | |
JP2020506629A (ja) | ルーティング方法および装置 | |
CN103546528A (zh) | 分布式消息推送方法及系统 | |
CN113194519B (zh) | 一种网络切片的接入方法、nssf、amf及系统 | |
CN112651044B (zh) | 基于区块链技术的业务交易方法、系统及存储介质 | |
CN111698097A (zh) | 一种证书认证方法及装置 | |
WO2017000583A1 (zh) | 一种终端接入方法及相应的终端、基站和主核心网 | |
CN107294724B (zh) | 一种短信上行验证方法及装置 | |
CN112468558B (zh) | 基于混合云的请求转发方法、装置、终端及存储介质 | |
CN113986578A (zh) | 一种消息校验方法及第一设备 | |
CN111163466B (zh) | 5g用户终端接入区块链的方法、用户终端设备及介质 | |
GB2520938A (en) | Mobile device location | |
CN112839108A (zh) | 连接建立方法、装置、设备、数据网络及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |