[发明专利]一种区块链的数据解析方法及装置在审
申请号: | 201910550186.0 | 申请日: | 2019-06-24 |
公开(公告)号: | CN110264361A | 公开(公告)日: | 2019-09-20 |
发明(设计)人: | 张龙;范瑞彬;张开翔;毛嘉宇 | 申请(专利权)人: | 深圳前海微众银行股份有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06F21/64;G06F8/41 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 518027 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 解析 数据解析 区块 用户业务 交易数据 事件数据 智能 生成数据 创建 | ||
1.一种区块链的数据解析方法,其特征在于,所述方法包括:
获取用户业务的智能合约,所述智能合约中包括用于创建实现所述用户业务的构造方法、事件方法以及非常量方法;
根据所述构造方法、事件方法以及非常量方法中的至少一个方法,生成数据解析代码,所述数据解析代码包括用于对所述用户业务的事件数据进行解析的事件数据解析代码和用于对所述用户业务的交易数据进行解析的交易数据解析代码;
使用所述数据解析代码对区块链中的每一个区块中的数据进行解析,获取所述事件数据和所述交易数据。
2.根据权利要求1所述的方法,其特征在于,根据所述构造方法、事件方法以及非常量方法中的至少一个方法,生成所述事件数据解析代码,包括:
编译所述智能合约,得到与所述智能合约对应的JAVA合约文件,所述JAVA合约文件中至少包括用于获取所述事件方法中的事件对象的获取方法、与所述事件方法对应的事件类以及所述智能合约的二进制编码,所述智能合约的二进制编码中至少包括所述构造方法、所述事件方法以及所述非常量方法中每个方法访问所述区块链的字段类型;
加载所述JAVA合约文件,通过反射获取所述事件类;
通过JAVA对象与第一字段类型之间的第一映射关系,将所述事件类中的与所述第一字段类型相同的字段转化为JAVA对象,从而获取与所述事件类对应的第一POJO对象,所述第一字段类型为所述事件方法中用于访问所述区块链的字段类型;
将所述第一POJO对象填入预设的事件数据解析模板,生成所述事件数据解析代码,所述预设的事件数据解析函数模板中至少包括调用模块、第一解析模块、第一实例化模块以及第一存储模块,所述调用模块用于调用所述获取方法,所述第一解析模块用于解析所述事件对象并获取解析后的事件数据,所述第一实例化模块用于将解析后的事件数据转换为第一POJO对象实例,以及,所述第一存储模块用于将所述第一POJO对象实例插入数据库表,所述数据库表用于存储所述事件数据和所述交易数据。
3.根据权利要求2所述的方法,其特征在于,使用所述事件数据解析代码对区块链中的每一个区块中的数据进行解析,以获取所述事件数据,包括:
获取所述区块链中的其中一个区块,所述其中一个区块为所述区块链中的任意一个区块;
运行所述事件数据解析代码,通过所述事件数据解析代码中的调用模块获取所述区块中的事件对象列表,所述事件对象列表包括所述事件对象的至少一个取值;
通过所述事件数据解析代码中的解析模块解析所述事件对象的至少一个取值,获得至少一个解析后的事件数据;
通过所述事件数据解析代码中的实例化模块将所述至少一个解析后的事件数据分别转化为至少一个第一POJO对象实例,所述至少一个第一POJO对象实例与所述至少一个解析后的事件数据一一对应;
通过所述事件数据解析代码中的存储模块将所述至少一个POJO对象实例插入所述数据库表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司,未经深圳前海微众银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910550186.0/1.html,转载请声明来源钻瓜专利网。