[发明专利]内部松耦合的共识方法、系统、电子设备有效
申请号: | 201910851452.3 | 申请日: | 2019-09-10 |
公开(公告)号: | CN110618841B | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 高亦民;叶嘉雨 | 申请(专利权)人: | 杭州秘猿科技有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 杭州天昊专利代理事务所(特殊普通合伙) 33283 | 代理人: | 刘芬豪 |
地址: | 310000 浙江省杭州市西湖区文三路*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内部 耦合 共识 方法 系统 电子设备 | ||
本发明公开了一种内部松耦合的共识方法、系统、电子设备和计算机可读存储介质。其中系统包括状态存储模块、状态机模块、定时器模块和预写日志模块,所述状态存储模块用于接收消息,对消息进行验证签名、校验、存储,然后发送至状态机模块进行状态变更,并监听状态机模块抛出的事件,根据抛出的事件作出对应的逻辑;所述状态机模块用于状态的变更和锁的控制,当收到消息触发时,根据收到的消息做出相应的状态变更,并将该变更后的状态作为事件抛出;所述定时器模块用于根据状态机抛出的事件设置对应的定时器,当定时器到达超时时间的时候调用状态机接口唤醒状态机;所述预写日志模块用于被状态存储模块调用去读或写预写日志。
技术领域
本发明属于区块链技术领域,具体涉及一种内部松耦合的共识方法、系统、电子设备和计算机可读存储介质。
背景技术
对于一个区块链共识系统来说,主要的工作流程是接收网络传来的消息,然后根据自身的状态与网络传来的消息进行相应的处理,并进行投票。但是在现有的区块链共识架构中,往往将这些存储,状态变更和处理逻辑放在一个结构里面实现,这样在收到消息之后依次进行消息存储,状态变更,锁的变更。
以上的处理在现有的区块链共识系统中,不划分模块,放在一个结构里实现,所有的状态都堆叠在一起,存在太多在状态,导致没法进行单元测试;同时因为状态与事件之间紧密耦合,导致在发生问题时,难以进行问题排查。
发明内容
鉴于以上存在的技术问题,本发明用于提供一种内部松耦合的共识方法、系统、电子设备和计算机可读存储介质,用于区块链共识系统在收到消息时通过模块之间的协同处理,避免模块间的循环调用问题,实现共识系统内部的松耦合。
为解决上述技术问题,本发明采用如下的技术方案:
第一方面,本申请实施例提供一种内部松耦合的共识系统,包括状态存储模块、状态机模块、定时器模块和预写日志模块,
所述状态存储模块用于接收消息,对消息进行验签验证签名、校验、存储,然后发送至状态机模块进行状态变更,并监听状态机模块抛出的事件,根据抛出的事件作出对应的逻辑;
所述状态机模块用于状态的变更和锁的控制,当收到消息触发时,根据收到的消息做出相应的状态变更,并将该变更后的状态作为事件抛出;
所述定时器模块用于根据状态机抛出的事件设置对应的定时器,当定时器到达超时时间的时候调用状态机接口唤醒状态机;
所述预写日志模块用于被状态存储模块调用去读或写预写日志。
第一方面的一种可能设计中,其共识过程如下:
启动共识之后,所述状态机模块最先初始化,之后预写日志模块初始化,最后状态存储模块和定时器初始化;
状态存储模块调用预写日志模块读取之前写入的日志,根据读取信息输入给状态机模块进行状态变更;
之后循环并行如下动作:
当状态存储模块收到消息时,进行验签验证签名、校验通过之后,输入给状态机模块进行状态变更,状态存储模块和定时器模块监听状态机模块抛出的事件,根据此时抛出的事件,状态存储模块做作出对应的逻辑,定时器模块设定对应的定时器;
当定时器时间到达超时时间的时候,定时器模块输入状态机模块,之后继续监听事件,此时状态存储模块和定时器模块监听状态机抛出的事件,根据此时状态机抛出的事件,状态存储模块做相应的操作,定时器模块设定对应的定时器。
第一方面的一种可能设计中,状态机模块抛出事件包括进入新的轮次事件,包含新的轮次,可选的锁定的轮次,可选的锁定的提议,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州秘猿科技有限公司,未经杭州秘猿科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910851452.3/2.html,转载请声明来源钻瓜专利网。