[发明专利]支持无分叉升级的区块链运行时环境系统、方法在审
申请号: | 201911357828.1 | 申请日: | 2019-12-25 |
公开(公告)号: | CN111831301A | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 王宸敏;范学鹏 | 申请(专利权)人: | 北京熠智科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F9/455 |
代理公司: | 北京睿康信诚知识产权代理事务所(普通合伙) 11685 | 代理人: | 李建国 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 分叉 升级 区块 运行 环境系统 方法 | ||
1.一种支持无分叉升级的区块链运行时环境系统,其特征在于,包括:
协议表示管理模块,用于通过解析每个区块上的交易,处理协议的解析和协议表示的版本;
编译器前端,用于从所述协议表示管理模块中接收协议源代码,并进行预设处理后将协议源代码翻译成协议表示;
协议表示数据库,用于持久化不同类型以及不同版本的协议表示数据,其中所述协议元数据以及协议表示以键值对的形式持久化;
中间表示管理模块,用于接收待执行的协议表示集合,并对所述协议表示集合进行解析以使与执行引擎适配;
执行引擎,用于接收所述中间表示管理模块中的模块集合以及执行函数,执行并返回接口。
2.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,还包括:封装模块,用于将系统升级协议封装为特殊交易,
所述将系统升级协议封装为特殊交易的步骤包括:
将系统升级所需要的源代码以及元数据封装到区块链交易的数据字段中;其中,每条交易的数据字段只允许存放一份协议,但一个区块可以包含多条升级协议的交易,其中元数据包括:至少一个协议名称、协议版本、所依赖的协议及其版本。
3.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,当交易类型为系统协议时,所述协议表示管理模块,用于解析交易中的数据字段,得到协议源代码以及元数据。
4.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,当外部向区块链运行时环境请求一个协议的执行结果时,所述协议表示管理模块,用于从数据库中拿到对应的协议表示并接收执行协议表示的返回结果。
5.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,所述协议表示数据库,用于当协议表示管理模块向所述协议表示数据库请求一个协议表示时,协议表示本身以及其依赖的协议表示集合将一起返回。
6.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,所述中间表示管理模块,用于插入处理并发的代码到协议表示集合中;
当协议表示集合被解析成执行引擎的模块集合,并从所述模块集合中提取执行的函数入口,再交由执行引擎。
7.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,还包括:升级协议的上链发布模块,用于将待有升级协议的交易需要由一组多签签名后发布,如果是单独个体对该类型交易的签名则无法通过验证。
8.根据权利要求6所述的支持无分叉升级的区块链运行时环境系统,其特征在于,所述执行引擎,用于作为支持即时编译技术的区块链执行引擎,所述执行引擎在执行时通过查找相关符号是否在库的符号表中;同时所述执行引擎还用于将协议转化为可被即时编译引擎直接执行的语言。
9.根据权利要求1所述的支持无分叉升级的区块链运行时环境系统,其特征在于,所述执行引擎,用于使协议并发执行。
10.一种用于支持无分叉升级的区块链运行时环境系统的处理方法,其特征在于,包括:
将系统协议以源代码的形式封装到交易的数据字段并打包后上链;
通过所述用于支持无分叉升级的区块链运行时环境系统,解析所述交易并得到协议源代码;
将所述协议源代码编译生成协议表示,并持久化到数据库中后完成区块链系统的升级;
当客户端请求达到所述用于支持无分叉升级的区块链运行时环境系统时,所述用于支持无分叉升级的区块链运行时环境系统首先通过获取对应的协议代码,再交由执行引擎执行协议代码,最后返回客户端请求的结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京熠智科技有限公司,未经北京熠智科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911357828.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:冲击工具
- 下一篇:用于去中心化应用的数据处理方法以及装置、设备、存储介质