[发明专利]BFT共识算法热插拔切换系统在审
申请号: | 202010943230.7 | 申请日: | 2020-09-09 |
公开(公告)号: | CN112068900A | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 简海波;葛鑫;汤勇;张卫;李京京 | 申请(专利权)人: | 上海万向区块链股份公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/48 |
代理公司: | 上海段和段律师事务所 31334 | 代理人: | 李佳俊;郭国中 |
地址: | 200086 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | bft 共识 算法 热插拔 切换 系统 | ||
本发明提供了一种BFT共识算法热插拔切换系统,包括:共识算法抽象框架模块:对拜占庭容错BFT共识算法流程进行抽象,形成通用框架,包括共识引擎的启动管理、共识流程的管理、超时和异常处理以及参数管理;智能合约存储模块:存储共识算法元信息;共识算法热插拔模块:处理共识算法的热插拔。本发明通过共识算法元信息存储模块,实现在智能合约中存储共识算法相关元信息,如区块链系统当前使用的共识算法的ID等,区块链系统需要热切换共识算法时,系统通过发起针对存储在智能合约中的共识算法ID的更新的投票并达成共识来触发共识算法的热切换。
技术领域
本发明涉及区块链技术领域,具体地,涉及BFT共识算法热插拔切换系统。
背景技术
不同的BFT(拜占庭容错)共识算法具有不同的适用场景。在区块链系统中,如果需要支持不同的共识算法,传统的解决方案需要先停止共识节点的运行,再配置加载另一个共识算法。该技术方案能够允许节点在不停机的情况下,动态地切换共识算法,保证上层业务不中断。
传统区块链系统中共识算法的切换,解决方案需要先停止共识节点的运行,再配置加载另一个共识算法。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种BFT共识算法热插拔切换系统。
根据本发明提供的一种BFT共识算法热插拔切换系统,包括:
共识算法抽象框架模块:对拜占庭容错BFT共识算法流程进行抽象,形成通用框架,包括共识引擎的启动管理、共识流程的管理、超时和异常处理以及参数管理;
智能合约存储模块:存储共识算法元信息;
共识算法热插拔模块:处理共识算法的热插拔。
优选地,根据共识算法抽象框架模块抽象形成的通用框架,系统中实现不同的共识算法,各共识算法的元信息存储在智能合约存储模块中,这些信息在需要进行共识算法动态切换时被共识算法热插拔模块读取,用于实现切换。
优选地,所述共识算法抽象框架模块包括:
共识引擎启动管理模块、共识流程管理模块、超时和异常处理模块以及参数管理模块。
优选地,所述共识引擎启动管理模块负责管理共识引擎的创建、启动和停止;
所述共识流程管理模块通过对目前拜占庭容错BFT共识算法的概念和算法流程进行考察和分析,总结出该类共识算法的通用共识概念和共识流程,进而抽象出该类共识算法运行流程的通用抽象框架,即统一的程序接口;
所述超时和异常处理模块用于处理共识过程出现超时和异常情况时,使得共识算法进行上下文的切换;
所述参数管理模块用于管理共识算法的相关参数。
优选地,所述识算法的相关参数包括:
共识ID、超时时间设置、当前共识高度和上下文编号、投票信息以及有无锁定相关参数信息
优选地,所述通用抽象框架包括:
区块提议流程、共识投票和处理流程、投票阶段流转和区块确认流程;
区块提议流程包括:指定高度区块的组装,即包含一组交易等、接收和验证被提议的区块;
共识投票和处理流程包括:特定阶段的共识投票、对接收到的投票进行验证和存储;
投票阶段流转和区块确认流程包括:对接收到的共识投票进行计数、投票数量是否达到指定阈值以及达到阈值后如何流转到下一共识阶段的处理。
优选地,所述智能合约存储模块包括共识算法元信息存储模块;
所述共识算法元信息存储模块用于通过智能合约存储共识算法相关元信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海万向区块链股份公司,未经上海万向区块链股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010943230.7/2.html,转载请声明来源钻瓜专利网。