一种进行区块链节点主备切换的方法和装置制造方法及图纸

技术编号:37994484 阅读:6 留言:0更新日期:2023-06-30 10:08
一种进行区块链节点主备切换的方法和装置,所述区块链节点包括若干计算设备和控制设备,所述若干计算设备分别注册至所述控制设备,所述控制设备用于向已注册至所述控制设备的多个计算设备中的一个计算设备提供分布式锁,其中,第一计算设备初始拥有所述分布式锁,该方法的一具体实施方式包括:所述控制设备在所述第一计算设备发生故障之后,删除所述第一计算设备的注册,并向其他计算设备发送与所述第一计算设备对应的删除事件;第二计算设备响应于所述删除事件,根据所述控制设备中记录的各个计算设备的信息,获取到所述分布式锁,成为所述区块链节点的主计算设备。为所述区块链节点的主计算设备。为所述区块链节点的主计算设备。

【技术实现步骤摘要】
一种进行区块链节点主备切换的方法和装置


[0001]本说明书实施例属于区块链
,尤其涉及一种进行区块链节点主备切换的方法和装置。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
[0003]对于业务直连区块链的某个联盟参与方节点的数据访问场景,当节点出现故障后,业务客户端无法继续从可信且具备权限的节点上继续获取数据,数据的持续导出出现中断。对于业务而言,希望能始终保持与链节点持续访问连接。在数据存储这一层,用户可通过接入一个高可用的数据库进程以达到数据层面的高可用保障,然而在链节点层面,当进程或节点服务器出现故障时,链不再往数据库写入新的数据,直接影响到用户对最新数据的获取。因此,为了保证存入数据库的区块的实时性和不间断性,需要让链节点具有热备切换的能力。

技术实现思路

[0004]本说明书的一个或多个实施例描述了一种进行区块链节点主备切换的方法和装置。
[0005]根据第一方面,提供一种进行区块链节点主备切换的方法,上述区块链节点包括若干计算设备和控制设备,上述若干计算设备分别注册至上述控制设备,上述控制设备用于向已注册至上述控制设备的多个计算设备中的一个计算设备提供分布式锁,其中,第一计算设备初始拥有上述分布式锁,上述方法包括:上述控制设备在上述第一计算设备发生故障之后,删除上述第一计算设备的注册,并向其他计算设备发送与上述第一计算设备对应的删除事件;第二计算设备响应于上述删除事件,根据上述控制设备中记录的各个计算设备的信息,获取到上述分布式锁,成为上述区块链节点的主计算设备。
[0006]根据第二方面,提供了一种进行区块链节点主备切换的方法,上述区块链节点包括若干计算设备和控制设备,上述若干计算设备分别注册至上述控制设备,上述控制设备用于向已注册至上述控制设备的多个计算设备中的一个计算设备提供分布式锁,其中,第一计算设备初始拥有上述分布式锁,上述方法应用于第二计算设备,上述方法包括:响应于上述控制设备发送的删除事件,向上述控制设备发送请求,以获取上述控制设备中记录的各个计算设备的信息;根据上述控制设备中记录的各个计算设备的信息,确定获取到上述分布式锁,成为上述区块链节点的主计算设备。
[0007]根据第三方面,提供了一种进行区块链节点主备切换的方法,上述区块链节点包括若干计算设备和控制设备,上述方法应用于控制设备,上述方法包括:基于上述若干计算
设备的注册,记录各个注册的计算设备的信息;基于各个计算设备的信息,从上述若干计算设备确定一个计算设备拥有分布式锁;响应于确定已注册的计算设备发生故障,删除发生故障的计算设备的注册,并向注册的计算设备发送删除事件;响应于注册的计算设备发送的请求,发送记录的各个注册的计算设备的信息,以供注册的计算设备根据接收的信息,确定是否获得分布式锁,其中,获取到分布式锁的计算设备成为上述区块链节点的主计算设备。
[0008]根据第四方面,提供了一种进行区块链节点主备切换的装置,上述区块链节点包括若干计算设备和控制设备,上述若干计算设备分别注册至上述控制设备,上述控制设备用于向已注册至上述控制设备的多个计算设备中的一个计算设备提供分布式锁,其中,第一计算设备初始拥有上述分布式锁,上述装置设置于第二计算设备,上述装置包括:获取单元,配置为响应于上述控制设备发送的删除事件,向上述控制设备发送请求,以获取上述控制设备中记录的各个计算设备的信息;确定单元,配置为根据上述控制设备中记录的各个计算设备的信息,确定获取到上述分布式锁,成为上述区块链节点的主计算设备。
[0009]根据第五方面,提供了一种进行区块链节点主备切换的装置,上述区块链节点包括若干计算设备和控制设备,上述装置设置于控制设备,上述装置包括:记录单元,配置为基于上述若干计算设备的注册,记录各个注册的计算设备的信息;锁确定单元,配置为基于各个计算设备的信息,从上述若干计算设备确定一个计算设备拥有分布式锁;删除单元,配置为响应于确定已注册的计算设备发生故障,删除发生故障的计算设备的注册,并向注册的计算设备发送删除事件;信息发送单元,配置为响应于注册的计算设备发送的请求,发送记录的各个注册的计算设备的信息,以供注册的计算设备根据接收的信息,确定是否获得分布式锁,其中,获取到分布式锁的计算设备成为上述区块链节点的主计算设备
[0010]根据第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行所述第二方面或第三方面所描述的方法。
[0011]根据第七方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现如第二方面或第三方面所述的方法。
[0012]根据本说明书实施例提供的进行区块链节点主备切换的方法和装置,该区块链节点包括若干计算设备和控制设备,若干计算设备分别注册至控制设备,该控制设备用于向已注册至控制设备的多个计算设备中的一个计算设备提供分布式锁。第一计算设备初始拥有分布式锁,即,第一计算设备初始为区块链节点的主计算设备。控制设备在第一计算设备发生故障之后,删除第一计算设备的注册,并向其他计算设备发送与第一计算设备对应的删除事件。第二计算设备响应于删除事件,根据控制设备中记录的各计算设备的信息,获取到分布式锁,生成区块链节点的主计算设备。由此,通过控制设备提供的分布式锁,实现了在第一计算设备发生故障之后,将获取到分布式锁的第二计算设备切换为新的主计算设备,保证了区块链节点的主、备计算设备之间的顺利切换,保证了区块链节点的高可用性。
附图说明
[0013]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附
图获得其他的附图。
[0014]图1示出了一实施例中的区块链架构图;
[0015]图2示出了本说明书实施例可以应用于其中的一个应用场景的示意图;
[0016]图3示出了以第一计算设备为例注册至控制设备的示意图;
[0017]图4示出了根据一个实施例的进行区块链节点主备切换的方法的流程示意图;
[0018]图5示出了根据一个实施例的进行区块链节点主备切换的装置的示意性框图;
[0019]图6示出了根据又一个实施例的进行区块链节点主备切换的装置的示意性框图。
具体实施方式
[0020]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进行区块链节点主备切换的方法,所述区块链节点包括若干计算设备和控制设备,所述若干计算设备分别注册至所述控制设备,所述控制设备用于向已注册至所述控制设备的多个计算设备中的一个计算设备提供分布式锁,其中,第一计算设备初始拥有所述分布式锁,所述方法包括:所述控制设备在所述第一计算设备发生故障之后,删除所述第一计算设备的注册,并向其他计算设备发送与所述第一计算设备对应的删除事件;第二计算设备响应于所述删除事件,根据所述控制设备中记录的各个计算设备的信息,获取到所述分布式锁,成为所述区块链节点的主计算设备。2.根据权利要求1所述的方法,所述区块链节点还包括数据库,所述方法还包括:所述第二计算设备在获取到所述分布式锁之后,读取所述第一计算设备在所述数据库中成功写入的最后一个区块的第一区块号;根据所述第一区块号和所述区块链最新共识成功的共识提议对应区块的第二区块号,确定所述数据库中缺失的区块数据;获取所述数据库中缺失的区块数据,将所述缺失的区块数据存储到所述数据库。3.根据权利要求2所述的方法,其中,所述缺失的区块数据包括缺失的区块及与所述缺失的区块对应的状态数据。4.根据权利要求3所述的方法,其中,所述方法还包括,在对所述数据库补齐缺失的数据之后,根据所述共识提议执行所述第二区块号的区块中的多个交易,根据所述多个交易的执行结果更新所述数据库。5.根据权利要求2所述的方法,其中,所述方法还包括,在所述第一计算设备发生故障之前,所述第二计算设备同步所述第一计算设备的区块数据到内存缓存;以及所述获取所述数据库中缺失的区块数据,包括:响应于确定所述内存缓存中包括所述数据库中缺失的第一区块数据,从所述内存缓存中获取所述第一区块数据;对于所述内存缓存中未存储的、且所述数据库中缺失的第二区块数据,从其他区块链节点获取所述第二区块数据。6.根据权利要求1所述的方法,其中,所述控制设备部署有分布式存储系统ETCD。7.根据权利要求6所述的方法,其中,所述方法还包括:所述第二计算设备在启动之后注册至所述控制设备,所述控制设备响应于所述第二计算设备的注册确定所述第二计算设备对应的注册值,所述控制设备在目标列表中存储所述第二计算设备对应的注册值和标识;以及第二计算设备响应于所述删除事件,根据所述控制设备中记录的各个计算设备的信息,获取到所述分布式锁,包括:第二计算设备响应于所述删除事件,从所述控制设备获取最新目标列表,根据所述最新目标列表中包括的各个计算设备的注册值,确定获取到所述分布式锁。8.根据权利要求6所述的方法,其中,所述方法还包括:所述控制设备在接收到计算设备发送的心跳信息之后,如果判断距离上次发送心跳信息的时间间隔大于预设的租约时长,确定计算设备发生故障,从所述目标列表中删除发生故障的计算设备对应的注册值和标识。
9.根据权利要求1所述的方法,其中,所述方法还包括:所述控制设备在超过预设间隔未从所述第一计算设备接收到心跳信息的情况下,确定所述第一计算设备发生故障。10.根据权利要求7所述的方法,其中,所述方法还包括:所述第一计算设备在重新启动之后重新在所述控制设备中注册,在注册成功之后,根据更新的所述目标...

【专利技术属性】
技术研发人员:陈骁杰范学冬
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1