[发明专利]基于联盟链的事件防丢失方法、系统、装置及存储介质有效
申请号: | 202110430469.9 | 申请日: | 2021-04-21 |
公开(公告)号: | CN113157522B | 公开(公告)日: | 2022-11-04 |
发明(设计)人: | 黄步添;李永健;刘强;梁逸敏;刘振广;万志国 | 申请(专利权)人: | 杭州云象网络技术有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 杭州五洲普华专利代理事务所(特殊普通合伙) 33260 | 代理人: | 徐晶晶 |
地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 联盟 事件 丢失 方法 系统 装置 存储 介质 | ||
1.一种基于联盟链的事件防丢失方法,其特征在于,具体包括:
响应于触发网络重启的动作;
为保证事件监听的幂等性,在执行前去链上查询数据,判断是否已经执行过,若已执行过则不重复执行;
从EventMap和数据库获取区块编号,其中,EventMap用于记录每个区块中的事件,每个区块包含多个事件,区块与区块编号一一对应;
基于区块编号是否为空判断事件是否丢失,基于区块编号的判断结果对联盟链网络的区块进行监听;
若为空,则从联盟链网络的最新区块开始监听,否则,从区块编号对应的区块开始监听;
将监听到的区块编号存入EventMap和数据库中;
若存在多后端多事件,则采用分布式锁保证多个后端有且只有一个后端开启事件监听,如果监听被关闭,多后端中的一个会自动开启监听。
2.根据权利要求1所述的基于联盟链的事件防丢失方法,其特征在于,将监听到的区块编号存入EventMap包括:将区块编号作为EventMap的value,在EventMap获取到区块中事件的txID和区块编号,若没有,则存储区块中事件的txID和区块编号,若有,则删除EventMap中事件的txID和区块编号,其中,事件与交易一一对应,将交易的txID作为EventMap的Key。
3.根据权利要求2所述的基于联盟链的事件防丢失方法,其特征在于,还包括:每次删除事件区块的txID和区块编号后须遍历EventMap,将最小的区块编号存到数据库中。
4.根据权利要求1所述的基于联盟链的事件防丢失方法,其特征在于,还包括过滤掉不合格事件的步骤,其中,不合格事件包括无效交易事件、没有交易的事件和未注册的交易事件中的任意一种;具体为:判断交易是否合格,若合格,则将该事件存储到EventMap;若不合格,则过滤掉该事件。
5.根据权利要求1所述的基于联盟链的事件防丢失方法,其特征在于,所述分布式锁包括延长锁和删除死锁;在任何时间下,延长锁根据锁名和ClientId查询数据库是否有满足第一条件的锁,若有,则更新ValidTime+10秒,其中,第一条件为当前时间CreatTime+VaildTime-5秒;在任何时间下,删除死锁根据锁名查询数据库中是否有满足第二条件的锁,若有,则删除,其中,第二条件为当前时间CreatTime+VaildTime,CreatTime为加锁时间,ValidTime为延长时间。
6.一种基于联盟链的事件防丢失系统,其特征在于,包括数据获取模块、编码判断模块、执行监听模块、编号存储模块和防重复监听模块;
所述数据获取模块,用于响应于触发网络重启的动作,从EventMap和数据库获取区块编号,其中,EventMap用于记录每个区块中的事件,每个区块包含多个事件,区块与区块编号一一对应;
所述编码判断模块,基于区块编号是否为空判断事件是否丢失,基于区块编号的判断结果对联盟链网络的区块进行监听;
所述执行监听模块,被设置为:若为空,则从联盟链网络的最新区块开始监听,否则,从传入的区块开始监听;
所述编号存储模块,用于将监听到的区块编号存入EventMap和数据库中;
所述防重复监听模块,用于防止事件被重复监听,在执行前去链上查询数据,判断是否已经执行过,若已执行过则不重复执行;若存在多后端多事件,则采用分布式锁保证多个后端有且只有一个后端开启事件监听,如果监听被关闭,多后端中的一个会自动开启监听。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州云象网络技术有限公司,未经杭州云象网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110430469.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于区块链全生命周期的监控方法和监控系统
- 下一篇:一种多媒体电教台