首页 / 专利库 / 电脑编程 / 算法 / 一种联盟链的性能维持方法、系统及存储介质

一种联盟链的性能维持方法、系统及存储介质

阅读:416发布:2020-05-08

专利汇可以提供一种联盟链的性能维持方法、系统及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种联盟链的性能维持方法、系统及存储介质,方法包括:为联盟链中所有 节点 分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;从选举列表池中选举得到领导节点;通过所述领导节点控制联盟链的运行。本发明能够在不稳定的网络中保持性能,提升集群的运行效率,可广泛应用于 区 块 链 技术领域。,下面是一种联盟链的性能维持方法、系统及存储介质专利的具体信息内容。

1.一种联盟链的性能维持方法,其特征在于,包括:
为联盟链中所有节点分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;
基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;
根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;
根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;
从选举列表池中选举得到领导节点;
通过所述领导节点控制联盟链的运行。
2.根据权利要求1所述的一种联盟链的性能维持方法,其特征在于,所述基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表,包括:
由任一节点向联盟链中其他节点发送私钥信息;
所述其他节点通过本地存储的公钥,对所述私钥信息进行校验;
确定校验通过后,由其他节点向该节点反馈自身的签名消息;
该节点通过本地存储的公钥,对所述签名消息进行校验,确定其他节点的可用性;
根据所有节点的可用性,得到可用性列表。
3.根据权利要求1所述的一种联盟链的性能维持方法,其特征在于,所述根据可用性列表,对联盟链中各个节点的可用性进行合理性验证,包括:
当各个节点的可用性与所述可用性列表中的状态不一致时,向所有节点发出联盟链智能合约的共识邀请;
各个节点根据自身校验过的可用性结果,确定所述共识邀请的合理性;
对于合理的共识邀请,则对所述可用性列表中的状态进行修改更新。
4.根据权利要求1所述的一种联盟链的性能维持方法,其特征在于,所述从选举列表池中选举得到领导节点,具体为:
从选举列表池中随机选举得到领导节点。
5.根据权利要求1所述的一种联盟链的性能维持方法,其特征在于,还包括:
从选举列表池中将不可用状态下的节点移除。
6.根据权利要求1所述的一种联盟链的性能维持方法,其特征在于,还包括:
对于可用状态下的节点,当该节点不在选举列表池中时,将该节点添加进选举列表池。
7.一种联盟链的性能维持系统,其特征在于,包括:
密钥分配模,用于为联盟链中所有节点分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;
可用性校验模块,用于基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;
合理性验证模块,用于根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;
列表更新模块,用于根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;
选举模块,用于从选举列表池中选举得到领导节点;
运行模块,用于通过所述领导节点控制联盟链的运行。
8.根据权利要求7所述的一种联盟链的性能维持系统,其特征在于,还包括:
移除模块,用于从选举列表池中将不可用状态下的节点移除;
添加模块,用于对于可用状态下的节点,当该节点不在选举列表池中时,将该节点添加进选举列表池。
9.一种联盟链的性能维持系统,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-6中任一项所述的方法。
10.一种存储介质,其中存储有处理器可执行的指令,其特征在于,所述处理器可执行的指令在由处理器执行时用于执行如权利要求1-6中任一项所述的方法。

说明书全文

一种联盟链的性能维持方法、系统及存储介质

技术领域

[0001] 本发明涉及链技术领域,尤其是一种联盟链的性能维持方法、系统及存储介质。

背景技术

[0002] 联盟链由多个节点构成,其中某一节点通过选举成为集群中的唯一leader节点,由此leader节点负责收集联盟链中的所有节点中智能合约执行要求。将智能合约执行请求打包,提供给所有副本replica节点进行三轮确认,具体包括:
[0003] 第一轮,所有replica节点都准备了此次智能合约交易。
[0004] 第二轮,所有replica节点确认其他replica节点都准备了此次智能合约交易。
[0005] 第三轮,所有replica节点接受确认,共同执行此智能合约交易。
[0006] 通过三轮确认,最终达成集群对智能合约的一致执行。
[0007] 联盟链节点集群通过随机的选举的算法,随给定时间区间不停变换选定leader节点,确保联盟链集群公平性,不会为单个节点所左右集群的智能合约收集与执行决定。
[0008] 现有的联盟链方案中,并没有考虑节点宕机或者网络不通的情况。按照当前通用设计,如果被选举为leader的节点暂时不可用,则replica节点需要持续等待leader节点发送确认消息。
[0009] 在此期间,整体联盟链网络集群处于瘫痪状态。直到时间区间变化,集群选举出新的leader,新的leader节点才能继续收集智能合约,打包以及发送replica节点进行三轮确认。现有技术的方案极大影响了联盟链的持续运行,大幅降低了联盟链的处理性能。

发明内容

[0010] 有鉴于此,本发明实施例提供一种联盟链的性能维持方法、系统及存储介质,能够在不稳定的网络中保持性能,提升集群的运行效率。
[0011] 第一方面,本发明实施例提供了一种联盟链的性能维持方法,包括:
[0012] 为联盟链中所有节点分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;
[0013] 基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;
[0014] 根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;
[0015] 根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;
[0016] 从选举列表池中选举得到领导节点;
[0017] 通过所述领导节点控制联盟链的运行。
[0018] 进一步,所述基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表,包括:
[0019] 由任一节点向联盟链中其他节点发送私钥信息;
[0020] 所述其他节点通过本地存储的公钥,对所述私钥信息进行校验;
[0021] 确定校验通过后,由其他节点向该节点反馈自身的签名消息;
[0022] 该节点通过本地存储的公钥,对所述签名消息进行校验,确定其他节点的可用性;
[0023] 根据所有节点的可用性,得到可用性列表。
[0024] 进一步,所述根据可用性列表,对联盟链中各个节点的可用性进行合理性验证,包括:
[0025] 当各个节点的可用性与所述可用性列表中的状态不一致时,向所有节点发出联盟链智能合约的共识邀请;
[0026] 各个节点根据自身校验过的可用性结果,确定所述共识邀请的合理性;
[0027] 对于合理的共识邀请,则对所述可用性列表中的状态进行修改更新。
[0028] 进一步,所述从选举列表池中选举得到领导节点,具体为:
[0029] 从选举列表池中随机选举得到领导节点。
[0030] 进一步,还包括:
[0031] 从选举列表池中将不可用状态下的节点移除。
[0032] 进一步,还包括:
[0033] 对于可用状态下的节点,当该节点不在选举列表池中时,将该节点添加进选举列表池。
[0034] 本发明的第二方面提供了一种联盟链的性能维持系统,包括:
[0035] 密钥分配模块,用于为联盟链中所有节点分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;
[0036] 可用性校验模块,用于基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;
[0037] 合理性验证模块,用于根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;
[0038] 列表更新模块,用于根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;
[0039] 选举模块,用于从选举列表池中选举得到领导节点;
[0040] 运行模块,用于通过所述领导节点控制联盟链的运行。
[0041] 进一步,还包括:
[0042] 移除模块,用于从选举列表池中将不可用状态下的节点移除。
[0043] 添加模块,用于对于可用状态下的节点,当该节点不在选举列表池中时,将该节点添加进选举列表池。
[0044] 本发明的第三方面提供了一种联盟链的性能维持系统,包括:
[0045] 至少一个处理器;
[0046] 至少一个存储器,用于存储至少一个程序;
[0047] 当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如第一方面所述的方法。
[0048] 本发明的第四方面提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行如第一方面所述的方法。
[0049] 上述本发明实施例中的一个或多个技术方案具有如下优点:本发明的实施例能够提升集群的稳定运行效率,保证集群在某些节点不可用的情况下,从选举列表池中选举得到领导节点,依然能保持一致的性能,不会因为某几个节点的不可用导致整体的性能降低;在节点的可用性恢复的情况下,节点可以迅速将此节点加入至集群参与领导选举,以此保证整个集群的处理同原处理算法完全一致。
附图说明
[0050] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051] 图1为本发明实施例的整体步骤流程示意图。

具体实施方式

[0052] 下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
[0053] 参照图1,本申请实施例的联盟链的性能维持方法,包括以下步骤:
[0054] S1:为联盟链中所有节点分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;
[0055] 具体的,本申请实施例以集群X为例,集群X中包括A、B、C、D四个节点。在此集群X中针对集群中的所有节点如A,B,C,D分配公私钥,公钥为节点的标识符,如a,b,c,d,对应私钥则为a′,b′,c′,d′。节点公钥a,b,c,d分配给集群X的所有节点上,节点私钥则分配在集群X中对应的节点上。
[0056] 本申请实施例中集群中所有节点均持有自身节点的私钥,用以向其他节点发送消息时进行签名。集群中所有节点均持有其他节点的公钥,用以验证从其他节点收到消息的签名,确保消息来自于其他节点,并且是真实有效的。
[0057] S2:基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;
[0058] 具体的,所述步骤S2包括S21-S25。
[0059] S21:由任一节点向联盟链中其他节点发送私钥信息;
[0060] 在本申请实施例中,节点A周期的形式向集群中的其余节点,如B,C,D发送使用私钥a′签名的消息Signa′(m)。
[0061] 本申请实施例中,集群中的所有节点周期性向其余节点发送验证性消息,其余节点收到消息签名时,需要回复确认消息,如果没有回复确认消息,则认为节点处于不可用状态。
[0062] S22:所述其他节点通过本地存储的公钥,对所述私钥信息进行校验;
[0063] 在本申请实施例中,B,C,D节点收到A发送的签名消息,则使用S1中分配的节点A的公钥a进行校验。
[0064] S23:确定校验通过后,由其他节点向该节点反馈自身的签名消息;
[0065] 本实施例中,如果通过校验,则向节点A回复自身的签名消息Signb′(Signa′(m))。
[0066] S24:该节点通过本地存储的公钥,对所述签名消息进行校验,确定其他节点的可用性;
[0067] 本申请实施例中,如果节点A收到节点B,C,D回复的签名消息,则使用节点B,C,D的公钥b′,c′,d′校验通过,判断节点B,C,D为可用状态,否则判断节点B,C,D为不可用状态。
[0068] S25:根据所有节点的可用性,得到可用性列表。
[0069] S3:根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;
[0070] S4:根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;
[0071] 本申请实施例中,集群X中所有节点A,B,C,D均维护一份统一的与集群绑定的节点可用性列表,当集群X可用性列表中B节点可用性与步骤S3验证出的实际可用性不等的情况,则提出联盟链智能合约共识邀请,变更集群X可用性列表中关于B节点的可用性。
[0072] 集群X中所有节点A,C,D收到了智能合约共识请求,则根据自身实际验证过的可用性状态确认智能合约修改节点B可用性是否合理,如合理则修改集群X可用性列表中节点B可用性。其余节点收到此智能合约请求,则执行智能合约,通过验证性消息,确认此节点的有效性,如不可用,则赞同此智能合约,将此节点从可选举成leader节点列表中移除。下一轮发起选举时,集群中的选举算法则不选举此节点为leader节点。
[0073] 另外,当集群中任一节点发现集群中的其他节点验证性消息无正常回复,则提出智能合约请求,请求内容为移除某一节点的可用性。
[0074] S5:从选举列表池中选举得到领导节点;
[0075] 本申请实施例中,当修改智能合约可用性成功,则更新leader选举列表池,只有leader选举的列表池节点允许参与选举,成为leader节点(即为领导节点),从而保证只有可用的节点才能成为leader节点。
[0076] 本申请实施例中,集群中的Leader选举从选举列表池中随机选取,确保中选概率相同。
[0077] S6:通过所述领导节点控制联盟链的运行。
[0078] S7:从选举列表池中将不可用状态下的节点移除。
[0079] S8:对于可用状态下的节点,当该节点不在选举列表池中时,将该节点添加进选举列表池。
[0080] 具体的,当集群中任一节点发现集群中的其他节点验证性消息有正常回复,且此节点不在选举列表池中时,则提出智能合约请求,请求内容为恢复某一节点的可用性。其余节点收到此智能合约请求,则执行智能合约,通过验证性消息,确认此节点的有效性,如可用,则赞同此智能合约,将此节点添加进可选举成leader节点列表中。下一轮发起选举时,集群中的选举算法则允许选举此节点为leader节点。
[0081] 本发明的第二方面还提供了一种联盟链的性能维持系统,包括:
[0082] 密钥分配模块,用于为联盟链中所有节点分配公钥和私钥,所述各个节点的公钥均存储在联盟链的所有节点上,所述各个节点的私钥分别存储在对应的节点上;
[0083] 可用性校验模块,用于基于所述公钥和私钥,对所有节点进行可用性校验,得到可用性列表;
[0084] 合理性验证模块,用于根据可用性列表,对联盟链中各个节点的可用性进行合理性验证;
[0085] 列表更新模块,用于根据合理性验证结果对所述可用性列表进行更新,确定选举列表池;
[0086] 选举模块,用于从选举列表池中选举得到领导节点;
[0087] 运行模块,用于通过所述领导节点控制联盟链的运行。
[0088] 进一步作为优选的实施方式,还包括:
[0089] 移除模块,用于从选举列表池中将不可用状态下的节点移除。
[0090] 添加模块,用于对于可用状态下的节点,当该节点不在选举列表池中时,将该节点添加进选举列表池。
[0091] 本发明的第三方面提供了一种联盟链的性能维持系统,包括:
[0092] 至少一个处理器;
[0093] 至少一个存储器,用于存储至少一个程序;
[0094] 当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的方法。
[0095] 本发明的第四方面提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的方法。
[0096] 综上所述,本申请一种联盟链的性能维持方法、系统及存储介质,具有以下优点:
[0097] 本发明公布的联盟链在不稳定网络中保持性能的方法,能够提升集群的稳定运行效率,保证集群在某些节点不可用的情况下,依然能保持一致的性能,不会因为某几个节点的不可用导致整体的性能降低。
[0098] 在节点的可用性恢复的情况下,节点可以迅速将此节点加入至集群参与leader选举,以此保证整个集群的处理同原处理算法完全一致。
[0099] 本实施例通过公私钥加解密的方式,来提供真实安全验证节点可用性的方法。
[0100] 本实施例通过集群共识更新节点可用性列表,确保集群节点拥有统一的节点可用性认识。
[0101] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0102] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0103] 以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈