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

技术编号:37443136 阅读:11 留言:0更新日期:2023-05-06 09:15
一种进行区块链节点主备切换的方法和装置,区块链节点包括若干计算设备和数据库,数据库中存储有锁信息表,锁信息表包括锁持有设备的设备信息和锁更新时间,方法应用于第一计算设备,该方法的一具体实施方式包括:从数据库读取锁信息表,得到当前的锁持有设备的第一设备信息和第一锁更新时间;如果第一设备信息和第一计算设备的第二设备信息不相同,根据锁信息表中的第一锁更新时间和预先设定的锁租期,确定锁是否超时;响应于确定锁超时,向数据库发送用于更新锁信息表中的信息的第一请求;响应于确定第一请求成功更新了锁信息表中的信息,成为区块链节点的主计算设备。成为区块链节点的主计算设备。成为区块链节点的主计算设备。

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


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

技术介绍

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

技术实现思路

[0004]本说明书的一个或多个实施例描述了一种进行区块链节点主备切换的方法和装置。
[0005]根据第一方面,提供一种进行区块链节点主备切换的方法,上述区块链节点包括若干计算设备和数据库,上述数据库中存储有锁信息表,上述锁信息表包括锁持有设备的设备信息和锁更新时间,上述方法应用于第一计算设备,上述方法包括:从上述数据库读取上述锁信息表,得到当前的锁持有设备的第一设备信息和第一锁更新时间;如果上述第一设备信息和上述第一计算设备的第二设备信息不相同,根据上述锁信息表中的第一锁更新时间和预先设定的锁租期,确定锁是否超时;响应于确定锁超时,向上述数据库发送用于更新上述锁信息表中的信息的第一请求,上述第一请求中包括上述第一设备信息、上述第一锁更新时间、上述第二设备信息,上述数据库用于在处理上述第一请求时在确定上述锁信息表中的信息与上述第一请求中的上述第一设备信息和上述第一锁更新时间一致的情况下,根据上述第一请求更新上述锁信息表;响应于确定上述第一请求成功更新了上述锁信息表中的信息,成为上述区块链节点的主计算设备。
[0006]根据第二方面,提供了一种进行区块链节点主备切换的装置,上述区块链节点包括若干计算设备和数据库,上述数据库中存储有锁信息表,上述锁信息表包括锁持有设备的设备信息和锁更新时间,上述装置设置于第一计算设备,上述装置包括:读取单元,配置为从上述数据库读取上述锁信息表,得到当前的锁持有设备的第一设备信息和第一锁更新时间;确定单元,配置为如果上述第一设备信息和上述第一计算设备的第二设备信息不相
同,根据上述锁信息表中的第一锁更新时间和预先设定的锁租期,确定锁是否超时;发送单元,配置为响应于确定锁超时,向上述数据库发送用于更新上述锁信息表中的信息的第一请求,上述第一请求中包括上述第一设备信息、上述第一锁更新时间、上述第二设备信息,上述数据库用于在处理上述第一请求时在确定上述锁信息表中的信息与上述第一请求中的上述第一设备信息和上述第一锁更新时间一致的情况下,根据上述第一请求更新上述锁信息表;切换单元,配置为响应于确定上述第一请求成功更新了上述锁信息表中的信息,成为上述区块链节点的主计算设备。
[0007]根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行上述第一方面所描述的方法。
[0008]根据第四方面,提供了一种计算设备,包括存储器和处理器,上述存储器中存储有可执行代码,上述处理器执行上述可执行代码时,实现如第一方面上述的方法。
[0009]根据本说明书实施例提供的进行区块链节点主备切换的方法和装置,该区块链节点包括若干计算设备和数据库,该数据库中存储有锁信息表,该锁信息表中包括锁持有设备的设备信息和锁更新时间。首先,第一计算设备可以从数据库读取锁信息表,从而得到当前的锁持有设备的第一设备信息和第一锁更新时间。如果锁信息表中的第一设备信息和第一计算设备的第二设备信息不相同,则表示第一计算设备未持有锁,不是主计算设备,此时,第一计算设备可以根据锁信息表中的第一锁更新时间和预设的锁租期,确定锁是否超时。如果锁超时,则向数据库发送用于更新锁信息表中的信息的第一请求,该第一请求中可以包括第一设备信息、第一锁更新时间和第二设备信息。数据库在处理第一请求时,在确定锁信息表中的信息与第一请求中的第一设备信息和第一锁更新时间一致的情况下,根据第一请求更新锁信息表。如果第一请求成功更新了锁信息表中的信息,则第一计算设备成为区块链节点的主计算设备。由此,通过在数据库中设置锁信息表,实现了区块链节点的主、备计算设备之间的顺利切换,保证了区块链节点的高可用性。
附图说明
[0010]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1示出了一实施例中的区块链架构图;
[0012]图2示出了本说明书实施例可以应用于其中的一个应用场景的示意图;
[0013]图3示出了初始时第一计算设备抢锁的示意图;
[0014]图4示出了根据一个实施例的进行区块链节点主备切换的方法的流程示意图;
[0015]图5示出了根据一个实施例的进行区块链节点主备切换的装置的示意性框图。
具体实施方式
[0016]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,
本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0017]图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中包括N个节点,图1中示意示出节点1

节点8。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,所述连接例如可以为TCP连接等,用于在节点之间传输数据。
[0018]区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。
[0019]区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链中调用智本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进行区块链节点主备切换的方法,所述区块链节点包括若干计算设备和数据库,所述数据库中存储有锁信息表,所述锁信息表包括锁持有设备的设备信息和锁更新时间,所述方法应用于第一计算设备,所述方法包括:从所述数据库读取所述锁信息表,得到当前的锁持有设备的第一设备信息和第一锁更新时间;如果所述第一设备信息和所述第一计算设备的第二设备信息不相同,根据所述锁信息表中的第一锁更新时间和预先设定的锁租期,确定锁是否超时;响应于确定锁超时,向所述数据库发送用于更新所述锁信息表中的信息的第一请求,所述第一请求中包括所述第一设备信息、所述第一锁更新时间、所述第二设备信息,所述数据库用于在处理所述第一请求时在确定所述锁信息表中的信息与所述第一请求中的所述第一设备信息和所述第一锁更新时间一致的情况下,根据所述第一请求更新所述锁信息表;响应于确定所述第一请求成功更新了所述锁信息表中的信息,成为所述区块链节点的主计算设备。2.根据权利要求1所述的方法,其中,所述方法还包括:响应于确定所述第一请求未成功更新所述锁信息表中的信息,继续作为所述区块链节点的从计算设备运行。3.根据权利要求1所述的方法,其中,所述方法还包括:如果所述第一设备信息和所述第二设备信息相同,向所述数据库发送用于更新所述锁信息表中的信息的第二请求,所述第二请求中包括所述第一设备信息、所述第一锁更新时间和当前时间,所述数据库用于在处理所述第二请求时在确定所述锁信息表中的信息与所述第二请求中的所述第一设备信息和所述第一锁更新时间一致的情况下,根据所述第二请求更新所述锁信息表;响应于确定所述第二请求成功更新了所述锁信息表中的信息,作为所述区块链节点的主计算设备继续维护锁租期;响应于确定所述第二请求未成功更新所述锁信息表中的信息,成为所述区块链节点的从计算设备。4.根据权利要求1所述的方法,其中,所述锁信息表还包括第一区块号,所述第一请求还包括所述第一区块号和当前写入所述数据库的区块的区块号,所述数据库用于在处理所述第一请求时在确定所述锁信息表中的信息与所述第一请求中的所述第一设备信息、所述第一区块号和所述第一锁更新时间一致的情况下,根据所述第一请求更新所述锁信息表。5.根据权利要求1所述的方法,其中,所述锁信息表还包括第一区块号;以及在成为所述区块链节点的主计算设备之后,所述方法还包括:根据所述第一区块号和所述区块链最新共识成功的共识提议对应区块的第二区块号,确定所述数据库中缺失的区块数据;获取所述数据库中缺失的区块数据,将所述缺失的区块数据存储到所述数据库。6.根据权利要求5所述的方法,其中,所述缺失的区块数据...

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

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

1