1.一种基于基础指令集执行区块链中智能合约的方法,包括:
区块链中的节点将部署好的智能合约的字节码,加载到所述节点的虚拟机中;
所述虚拟机对所述字节码进行解析,得到对应的解析模块;
所述虚拟机基于所述解析模块,判断所述解析模块中是否包含扩展指令;
若否,所述虚拟机基于基础指令集执行所述解析模块;所述基础指令集由基础指令及对应的行为构成。
2.如权利要求1所述的方法,所述方法还包括:
若是,所述虚拟机基于完整指令集执行所述解析模块;所述完整指令集由基础指令和扩展指令及对应的行为构成。
3.如权利要求1所述的方法,所述虚拟机基于所述解析模块,判断所述解析模块中是否包含扩展指令,包括:
所述虚拟机判断所述解析模块中的前缀字节是否包含扩展指令对应的前缀字节,是则所述解析模块中包含扩展指令。
4.如权利要求1所述的方法,所述区块链中的节点将部署好的智能合约的字节码,加载到区块链节点的虚拟机中,包括:
所述节点接收调用所述智能合约的请求;
所述节点基于所述请求中指向的所述智能合约的地址,从本地存储中将所述字节码加载到所述虚拟机中。
5.如权利要求1所述的方法,所述方法还包括:
所述虚拟机将所述智能合约中是否包含扩展指令的判断结果写入所述解析模块中。
6.如权利要求1所述的方法,所述若否,所述虚拟机基于基础指令集,执行所述解析模块,包括:
所述虚拟机判断所述解析模块中的指令是否出现在所述基础指令集中,是则执行所述指令,否则不执行。
7.如权利要求1所述的方法,所述基础指令或/和所述扩展指令为wasm指令,所述wasm指令由wasm标准定义。
8.一种基于基础指令集执行区块链中智能合约的系统,包括:
加载模块,用于将部署好的智能合约的字节码,加载到所述节点的虚拟机中;
解释模块,用于对所述字节码进行解析,得到对应的解析模块;
判断模块,基于所述解析模块,判断所述解析模块中是否包含扩展指令;
执行模块,用于若否,基于基础指令集执行所述解析模块;所述基础指令集由基础指令及对应的行为构成。
9.如权利要求8所述的系统,所述执行模块进一步用于:
若是,基于完整指令集执行所述解析模块;所述完整指令集由基础指令和扩展指令及对应的行为构成。
10.如权利要求8所述的系统,所述判断模块进一步用于:
所述虚拟机判断所述解析模块的前缀字节中是否包含扩展指令对应的前缀字节,是则所述解析模块中包含扩展指令。
11.如权利要求8所述的系统,所述加载模块进一步用于:
接收调用所述智能合约的请求;
基于所述请求中指向的所述智能合约的地址,从本地存储中将所述字节码加载到所述虚拟机中。
12.如权利要求8所述的系统,所述系统还包括:
写入模块,用于将所述智能合约中是否包含扩展指令的判断结果写入所述解析模块中。
13.如权利要求8所述的系统,所述执行模块进一步用于:
判断所述解析模块中的指令是否出现在所述基础指令集中,是则执行所述指令,否则不执行。
14.如权利要求8所述的系统,所述基础指令或/和所述扩展指令为wasm指令,所述wasm指令由wasm标准定义。
15.一种基于基础指令集执行区块链中智能合约的装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~7任一项所述的方法。