当前位置: 首页 > 专利查询>复旦大学专利>正文

智能合约数据提取和同步方法、系统和平台技术方案

技术编号:24853217 阅读:53 留言:0更新日期:2020-07-10 19:07
本发明专利技术公开了一种基于抽象语法树的智能合约数据提取和同步方法。首先对智能合约源代码进行词法分析和语法分析,生成抽象语法树;对该抽象语法树进行由顶至下的遍历分析,针对每个合约中的状态变量记录其序号及类型,并据此计算出该智能合约中的数据对应于存储MPT树中的索引值;当有新的交易产生时,根据交易所在的区块头的状态MPT树根重构存储MPT树,根据索引值查询存储MPT树获取到状态变量实际值,并将该数据同步到外部存储层中。使用本发明专利技术能够有效提取和同步智能合约应用中变量的数据,用于后续查询和分析。

【技术实现步骤摘要】
智能合约数据提取和同步方法、系统和平台
本专利技术涉及区块链
,特别涉及一种智能合约数据提取和同步方法、系统和平台。
技术介绍
智能合约是区块链2.0的核心,具有图灵完备性,它是由事件驱动的、具有状态的、运行在可复制的共享区块链数据账本上的计算机程序,能够实现自主调用或被调用的处理数据,接受、储存和转发数字货币对应的价值,以及控制和管理各类在区块链上的智能数字资产等功能。同时,智能合约中的数据是与应用强相关的。对于以太坊上的去中心化应用而言,大量的业务数据都被保存在智能合约中,比如在医疗记录交换的去中心化应用中,智能合约中保存了用户访问医疗记录的权限信息,医疗记录的元数据信息等。在用户使用和管理者维护时,智能合约中的业务数据被频繁读取和使用。然而,以太坊对于这部分内容的查询却并不友好。若要从外界读取合约中的数据,需要合约的编写者主动在合约中定义和实现读取函数,其次,用户在读取时需要向以太坊客户端发起交易请求,在以太坊交易完成后才能从该交易的返回值中获取到需要读取的值,最后,以太坊本身采用的底层数据组织方式和数据结构对于智能本文档来自技高网...

【技术保护点】
1.一种智能合约数据提取和同步方法,其特征在于,包括:/n步骤一、对所述智能合约数据进行词法分析和语法分析,生成抽象语法树;/n步骤二、对所述抽象语法树进行逐步遍历分析,针对每个智能合约中的状态变量记录其序号及类型,并根据状态变量的序号及类型计算出该智能合约中的数据对应于存储MPT树中的索引值;/n步骤三、对抽象语法树进行逐步遍历分析,针对每个智能合约中的方法节点,解析出所有该方法涉及到的状态变量/n步骤四、当有新的交易产生时,根据交易关联合约的abi和交易载荷解析出交易所执行的方法,并根据交易所执行的方法涉及到的状态变量生成待更新列表,/n同时,根据交易所在的区块头的状态MPT树根重构存储M...

【技术特征摘要】
1.一种智能合约数据提取和同步方法,其特征在于,包括:
步骤一、对所述智能合约数据进行词法分析和语法分析,生成抽象语法树;
步骤二、对所述抽象语法树进行逐步遍历分析,针对每个智能合约中的状态变量记录其序号及类型,并根据状态变量的序号及类型计算出该智能合约中的数据对应于存储MPT树中的索引值;
步骤三、对抽象语法树进行逐步遍历分析,针对每个智能合约中的方法节点,解析出所有该方法涉及到的状态变量
步骤四、当有新的交易产生时,根据交易关联合约的abi和交易载荷解析出交易所执行的方法,并根据交易所执行的方法涉及到的状态变量生成待更新列表,
同时,根据交易所在的区块头的状态MPT树根重构存储MPT树,对待更新列表中的状态变量,根据索引值获取到状态变量实际值,并将该数据同步到外部存储层中。


2.根据权利要求1所述的方法,其特征在于,在步骤一中获得抽象语法树后,进一步删除抽象语法树中与智能合约数据提取和同步无关的冗余节点,得到与智能合约数据提取和同步相关的保留节点,在步骤二中进一步对保留节点进行遍历分析。


3.根据权利要求1所述的方法,其特征在于,对智能合约中状态变量的序号和类型的记录方式为,设立两个参数,分别保存在智能合约中出现的状态变量信息和结构体信息,遍历抽象语法树时根据节点的不同类型将信息存储到对应的参数中。


4.根据权利要求1所述的方法,其特征在于,解析状态变量的方法是,
遍历抽象语法树,进入到函数节点时判断函数内的赋值语句中的被赋值变量是否在曾在状态变量中定义过,且没有在函数内部声明,若是,则将该状态变量与该方法关联起来。


5.根据权利要求1所述的方法,其特征在于,所述生成待更新列表的方法为:
1)获取到智能合约对应的abi;
2)获取到智能合约生成的交易,对该交易的载荷进行解析,确定生成该交易所调用的智能合约函数名;

【专利技术属性】
技术研发人员:卢暾王泓机张绍华顾宁戴炳荣李超
申请(专利权)人:复旦大学上海计算机软件技术开发中心
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1