【技术实现步骤摘要】
一种共识节点的添加方法、装置以及删除方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种共识节点的添加方法、装置以及删除方法和装置。
技术介绍
[0002]大部分区块链的共识算法采用静态的共识节点列表来生成区块,其共识节点数量不会随着时间而增加或者减少,即使共识节点因网络异常、宕机等原因无法参与共识算法的运行,也不会造成该异常的共识节点从共识节点列表中删除。目前常见的解决方案是通过智能合约来记录共识节点的地址,当出现共识节点添加的需求,或者发现有共识节点无法参与共识的情况下,由合约管理员手动发送合约交易进行共识节点的添加或者删除。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:
[0004]添加新共识节点时,要想保证区块链的稳定运行,需要新加共识节点从其他节点同步完区块链最新的数据,然后由管理员发送合约交易添加新节点到共识节点列表中。上述顺序不能改变,否则很容易出现新加节点状态落后导致区块生成不稳定的情况,进而影响整个区块链的性能。
[0005]当共识节点需要退出时,需要人工介入,由管理员将共识节点从共识节点列表中删除才能生效。
[0006]当共识节点出现异常无法参与共识算法运行时,从异常产生到由区块链节点运维人员修复异常或者由管理员将该节点从共识节点列表中删除存在很大的时间差,导致区块的生成出现不稳定的情况,进而影响整个联盟链的性能。
技术实现思路
[0007]有鉴于此,本专利技术实施例提供一种共识节点的添加方法、装置以及 ...
【技术保护点】
【技术特征摘要】
1.一种共识节点的添加方法,其特征在于,包括:区块链的第一节点从智能合约获取所述区块链的候选共识节点列表和共识节点列表,所述候选共识节点列表包括所述区块链中已进行候选共识节点验证且验证通过的各节点,所述共识节点列表包括所述区块链中的各共识节点;所述第一节点在确定所述第一节点属于所述候选共识节点列表,但不属于所述共识节点列表后,向所述共识节点列表中的共识节点发起投票请求,以由确认将所述第一节点加入所述共识节点列表的共识节点返回对应的响应信息;所述第一节点在从所述共识节点收到的所述响应信息的数量达到响应信息数量阈值后,向所述区块链的领导者节点请求加入所述共识节点列表,以由所述领导者节点将所述第一节点添加为所述区块链的新的共识节点,其中,所述领导者节点是通过共识算法从所述区块链中的各共识节点中选出的用于生成区块的节点。2.根据权利要求1所述的方法,其特征在于,所述确定所述第一节点属于所述候选共识节点列表之前,所述方法还包括:利用所述智能合约提供的添加候选共识节点接口和身份校验接口,对所述第一节点进行所述候选共识节点验证,并在所述第一节点通过所述候选共识节点验证后,将所述第一节点保存到所述候选共识节点列表。3.根据权利要求2所述的方法,其特征在于,所述利用所述智能合约提供的添加候选共识节点接口和身份校验接口,对所述第一节点进行所述候选共识节点验证,包括:由所述区块链的第一管理员模块触发调用所述智能合约的添加候选共识节点接口,通过所述添加候选共识节点接口调用所述智能合约的身份校验接口;由所述身份校验接口对所述第一节点进行身份校验,在所述身份校验通过的情况下,所述第一节点通过所述候选共识节点验证。4.根据权利要求2所述的方法,其特征在于,所述利用所述智能合约提供的添加候选共识节点接口和身份校验接口,对所述第一节点进行所述候选共识节点验证,包括:由所述区块链的第一管理员模块和至少一个第二管理员模块针对所述第一节点加入所述候选共识节点列表添加各自的第一签名;由所述第一管理员模块收集各所述第一签名,然后将收集的所述第一签名发送到所述智能合约的添加候选共识节点接口,通过所述添加候选共识节点接口调用所述智能合约的身份校验接口;由所述身份校验接口对所述第一节点进行身份校验,在所述身份校验通过的情况下,所述第一节点通过所述候选共识节点验证。5.根据权利要求4所述的方法,其特征在于,所述由所述身份校验接口对所述第一节点进行身份校验,包括:通过所述身份校验接口验证所述第一签名的合法性,以及验证所述第一签名的数量是否达到预设数量,在合法的所述第一签名的数量达到所述预设数量的情况下,所述身份校验通过。6.根据权利要求2所述的方法,其特征在于,所述利用所述智能合约提供的添加候选共识节点接口和身份校验接口,对所述第一节点进行所述候选共识节点验证,包括:由所述区块链的第一管理员模块发起针对所述第一节点加入所述候选共识节点列表
的提案,由所述区块链的至少一个第二管理员模块对所述提案进行投票;在对所述提案的投票数量达到投票数量阈值后,由所述第一管理员模块调用所述智能合约的添加候选共识节点接口,通过所述添加候选共识节点接口调用所述智能合约的身份校验接口;由所述身份校验接口对所述第一节点进行身份校验,在所述身份校验通过的情况下,所述第一节点通过所述候选共识节点验证。7.根据权利要求1所述的方法,其特征在于,所述第一节点向所述共识节点列表中的共识节点发起的投票请求包括所述第一节点的地址、当前区块高度、当前区块哈希、当前区块状态;所述方法还包括:收到所述投票请求的所述共识节点校验所述投票请求中的当前区块高度、当前区块哈希、当前区块状态是否与本共识节点中的区块高度、区块哈希、区块状态对应一致,如果一致,则向所述第一节点发送响应信息,所述响应信息表示该共识节点确认将所述第一节点加入所述共识节点列表。8.根据权利要求7所述的方法,其特征在于,所述共识节点发送的所述响应信息包括所述第一节点的地址、本共识节点的地址、本共识节点对所述区块哈希的签名;所述第一节点在从所述共识节点收到所述响应信息之后,包括:所述第一节点确认所述响应信息中的所述共识节点对所述区块哈希的签名正确,以及确认所述响应信息中的所述共识节点的地址在所述共识节点列表中存在。9.根据权利要求8所述的方法,其特征在于,所述第一节点在从所述共识节点收到的所述响应信息的数量达到响应信息数量阈值后,向所述区块链的领导者节点请求加入所述共识节点列表,以由所述领导者节点将所述第一节点添加为所述区块链的新的共识节点,包括:所述第一节点在从所述共识节点收到的所述响应信息的数量达到所述响应信息数量阈值后,向所述领导者节点发送收到的各所述响应信息;由所述领导者节点进行响应信息校验,所...
【专利技术属性】
技术研发人员:刘自强,
申请(专利权)人:中国人民银行数字货币研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。