【技术实现步骤摘要】
基于区块链的虚拟机内存自动扩容系统和方法
本专利技术涉及区块链
,具体地,涉及一种基于区块链的虚拟机内存自动扩容系统和方法。
技术介绍
区块链的共识需要一个确定性的环境,来执行确定性的行为。也就是说,不管节点的宿主机器是异构的,还是同构的,都需要确保在初始状态,行为操作两者一致的情况下,所有节点的输出结构也必须保证一致。为了实现这一核心要求,区块链系统需要引入虚拟机技术。虚拟机是用来执行外部用户部署的合约交易,而外部用户部署的合约交易对与内存消耗的大小是没有办法预测的,如果按照固定内存大小来设计虚拟机的话,过大的内存初始化会造成内存的浪费和启动速度的下降,而如果初始化的内存过小的话,则会导致交易执行失败,而且是永久的失败,这是用户不可以接受的。而如果从用户侧,链外规定的方式限制交易使用内存的大小,则会导致一些类型的交易无法使用区块链,从而限制业务类型的多样性,也会增加合约编写者的心智负担。如果内存管理模块可以采用自动内存扩容方案,则上述问题都会得到完美的解决。难点有:1)内存管理器自动扩容方案设计成适合 ...
【技术保护点】
1.一种基于区块链的虚拟机内存自动扩容系统,其特征在于,包括:/n编译器模块:对WASM二进制代码进行解析,生成内存汇编指令;/n执行引擎模块:执行生成的内存汇编指令;/n内存模块:为执行引擎模块的实例化和汇编指令的运行进行内存管理;/nGAS模块:通过消耗GAS,防止恶意攻击;/n区块链和虚拟机交互模块:接收外部参数的输入给执行引擎模块,同时将执行引擎模块的执行结果传输到区块链。/n
【技术特征摘要】
1.一种基于区块链的虚拟机内存自动扩容系统,其特征在于,包括:
编译器模块:对WASM二进制代码进行解析,生成内存汇编指令;
执行引擎模块:执行生成的内存汇编指令;
内存模块:为执行引擎模块的实例化和汇编指令的运行进行内存管理;
GAS模块:通过消耗GAS,防止恶意攻击;
区块链和虚拟机交互模块:接收外部参数的输入给执行引擎模块,同时将执行引擎模块的执行结果传输到区块链。
2.根据权利要求1所述的基于区块链的虚拟机内存自动扩容系统,其特征在于,所述编译器模块根据WASM规范对二进制代码进行解析,获取其中的汇编指令和静态数据,然后构建WASM模块对象和节对象用以存储汇编指令和静态数据,并构建出指令码值所对应的指令对象。
3.根据权利要求1所述的基于区块链的虚拟机内存自动扩容系统,其特征在于,所述执行引擎模块包括:构建虚拟机用以模拟实体计算机,并使用内存模块作为虚拟机的内存管理器。
4.根据权利要求1所述的基于区块链的虚拟机内存自动扩容系统,其特征在于,所述内存模块对虚拟机的内存进行管理,包括内存申请、内存再申请、内存自动扩容、内存释放和释放后合并。
5.根据权利要求1所述的基于区块链的虚拟机内存自动扩容系统,其特征在于,所述内存模块执行包括内存分配、内存再分配、内存释放和内存合并。
6.根据权利要求1所述的基于区块链的虚拟机内存自动扩容系统,其特征在于,在内存模块中引入内存池模块,...
【专利技术属性】
技术研发人员:杜满想,
申请(专利权)人:上海万向区块链股份公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。