[发明专利]区块链中智能合约的执行方法、装置及节点设备在审
申请号: | 202110080216.3 | 申请日: | 2021-01-19 |
公开(公告)号: | CN112799674A | 公开(公告)日: | 2021-05-14 |
发明(设计)人: | 种衍雪;李茂材;石巍;付博;黄业辉 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/27 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强;杜维 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 区块 智能 合约 执行 方法 装置 节点 设备 | ||
1.一种区块链中智能合约的执行方法,其特征在于,所述区块链包括目标节点,所述目标节点中部署有目标程序编译执行器,所述方法包括:
接收执行智能合约的执行请求;
若所述目标节点的节点属性信息与所述智能合约的合约属性信息相匹配,则调用所述目标节点中部署的所述目标程序编译执行器执行所述智能合约并返回执行结果。
2.如权利要求1所述的方法,其特征在于,所述目标节点的节点属性信息包括所述目标节点所支持的编程语言相关信息和所述目标节点的硬件信息;所述智能合约的合约属性信息包括编写所述智能合约的编程语言相关信息和运行所述智能合约的节点的硬件信息所需满足的第一要求;
所述目标节点所支持的编程语言相关信息包括所述目标节点所支持的目标编程语言,以及所述目标节点中部署的支持所述目标编程语言的目标程序编译执行器属性信息;所述智能合约的编程语言相关信息包括编程所述智能合约的第一编程语言和运行所述第一编程语言的程序编译执行器所需满足的第二要求;
所述目标节点的节点属性信息与所述智能合约的合约属性信息相匹配是指:所述目标节点的硬件信息满足所述第一要求,以及所述目标编程语言包括所述第一编程语言,且所述目标程序编译器属性信息满足所述第二要求。
3.如权利要求1所述的方法,其特征在于,在接收执行智能合约的执行请求之前,所述方法还包括:
接收部署智能合约的部署请求;
若所述目标节点的节点属性信息与所述智能合约的合约属性信息相匹配,则存储所述智能合约,并通知所述区块链中的其他节点所述目标节点已存储智能合约,以使所述其他节点基于所述通知对所述智能合约部署进行共识验证,并在共识验证成功后确定所述智能合约部署成功。
4.如权利要求3所述的方法,其特征在于,所述若所述目标节点的节点属性信息与所述智能合约的合约属性信息相匹配,则存储所述智能合约,包括:
检测所述智能合约是否满足合约编写要求;
如果所述智能合约满足所述合约编写要求,则确定所述智能合约的编程语言所属语言类型;
基于所述智能合约的编程语言所属语言类型对所述智能合约进行存储。
5.如权利要求4所述的方法,其特征在于,所述基于所述智能合约的编程语言所属语言类型对所述智能合约进行存储,包括:
如果所述智能合约的编程语言所属语言类型为编译型语言,则调用所述目标程序编译执行器对所述智能合约对应的源代码进行编译处理得到编译结果,并将所述编译结果和所述智能合约对应的源代码进行关联存储;
如果所述智能合约的编程语言所属语言类型为解释型语言,则存储所述智能合约对应的源代码。
6.如权利要求5所述的方法,其特征在于,所述调用所述目标程序编译执行器执行所述智能合约,包括:
确定所述智能合约的编程语言所属语言类型;
若所述智能合约的编程语言所属语言类型为编译型语言,则从存储中加载所述智能合约对应的源代码的编译结果,并调用所述目标程序编译执行器执行所述编译结果;
若所述智能合约的编程语言所属语言类型为解释型语言,则从存储中加载所述智能合约对应的源代码,并调用所述目标程序编译执行器对所述源代码进行编译及执行。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标节点的节点属性信息与所述智能合约的执行条件不匹配,则将所述执行请求广播至所述至少一个节点中的其他节点,以指示所述其他节点执行所述智能合约;
接收所述其他节点执行所述智能合约的执行结果,并返回所述执行结果。
8.如权利要求1所述的方法,其特征在于,所述调用所述目标程序编译执行器执行所述智能合约,并返回执行结果,包括:
调用所述目标程序编译执行器执行所述智能合约得到执行结果,并将所述执行结果广播至所述区块链中的其他节点,以指示若所述其他节点的节点属性信息与所述智能合约的合约属性信息相匹配,则所述其他节点对所述执行结果进行共识验证;
若所述其他节点对所述执行结果的共识验证通过,则返回所述执行结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110080216.3/1.html,转载请声明来源钻瓜专利网。