一种智能合约调用单点执行系统技术方案

技术编号:19866272 阅读:40 留言:0更新日期:2018-12-22 13:53
本发明专利技术应用于包括多个节点以及虚拟机的区块链网络,提供了一种智能合约调用单点执行系统,所述系统包括合约调用节点,用于生成并广播合约调用;多个合约调用执行节点;一个合约调用单点执行节点,用于执行所述合约调用,并广播合约调用执行结果;挖矿节点,用于将所述合约调用执行结果打包生成区块,并广播区块以及多个区块同步节点,用于同步区块。本发明专利技术实施例通过在合约调用中指定合约执行地址,保证了合约调用第一时间只能被单节点执行,有效地解决了现有技术中存在多个节点竞争执行合约调用打包执行结果但是只采取单个节点的结果从而导致能源浪费的技术问题。同时在打包以及同步的过程中加入了私钥签名验证确保了执行结果的合法性。

【技术实现步骤摘要】
一种智能合约调用单点执行系统
本专利技术涉及区块链领域,特别是涉及一种智能合约调用单点执行系统。
技术介绍
当前,随着区块链技术的不断发展与流行,智能合约作为区块链的一项重要技术也逐渐被更多的人所熟知。然而随着越来越多的人加入到区块链网络中来,区块链网络规模越来越大,现有的智能合约调用执行方法就存在着合约全网执行导致的资源浪费问题。业界当前设计的智能合约调用执行都采用了全网打包节点都执行的模式,也就是说如果这个区块链网络有100个节点参与竞争打包,则100个节点都会执行同样的合约调用,但是最终只会采取一个节点的执行结果,这样就造成了能源的巨大浪费,而随着区块链网络规模的扩大,会有更多的节点执行同样的合约调用,能源浪费也会更加严重。可见现有的区块链智能合约调用执行模式中,存在着区块链上的节点都执行相同的合约调用,但只采取一个节点的执行结果,导致了极大的能源浪费的技术问题,而且随着区块链网络规模的扩大,能源浪费的技术问题也会越来越严重。
技术实现思路
本专利技术实施例提供一种智能合约调用单点执行系统,旨在解决现有的区块链智能合约调用执行模式中存在的因多节点竞争执行相同的合约调用而导致能源浪费本文档来自技高网...

【技术保护点】
1.一种智能合约调用单点执行系统,应用于包括多个节点以及虚拟机的区块链网络,其特征在于,所述智能合约调用单点执行系统包括:合约调用节点,用于根据用户合约调用请求生成合约调用并进行全网广播,所述合约调用中指定有合约执行地址,所述合约指定地址是根据合约创建者地址公钥以及合约内容生成的;多个合约调用执行节点,用于接收合约调用节点广播的合约调用,进行合约调用执行权限验证并确定合约调用单点执行节点;合约调用单点执行节点,用于将接收到的合约调用传输给所述虚拟机执行合约调用,并接收所述虚拟机返回的合约调用执行结果,根据所述返回的合约调用执行结果创建第一合约调用执行结果并使用私钥签名,并将所述第一合约调用执行...

【技术特征摘要】
1.一种智能合约调用单点执行系统,应用于包括多个节点以及虚拟机的区块链网络,其特征在于,所述智能合约调用单点执行系统包括:合约调用节点,用于根据用户合约调用请求生成合约调用并进行全网广播,所述合约调用中指定有合约执行地址,所述合约指定地址是根据合约创建者地址公钥以及合约内容生成的;多个合约调用执行节点,用于接收合约调用节点广播的合约调用,进行合约调用执行权限验证并确定合约调用单点执行节点;合约调用单点执行节点,用于将接收到的合约调用传输给所述虚拟机执行合约调用,并接收所述虚拟机返回的合约调用执行结果,根据所述返回的合约调用执行结果创建第一合约调用执行结果并使用私钥签名,并将所述第一合约调用执行结果进行全网广播;挖矿节点,用于接收合约调用节点广播的合约调用以及合约调用单点执行节点广播的第一合约调用执行结果,进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一合约调用执行结果非法,丢弃所述第一合约调用执行结果,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一合约调用执行结果合法,并将所述第一合约调用执行结果打包生成第一区块,将所述第一区块进行全网广播;以及多个区块同步节点,用于接收合约调用节点广播的合约调用以及挖矿节点广播的第一区块,获取所述第一区块中含有的第一合约调用执行结果,并对所述第一合约调用执行结果再次进行合约调用执行结果验证以及第一合约调用执行结果私钥签名验证,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证中有验证未通过时,则确认所述第一区块非法,丢弃所述第一区块,若所述合约调用执行结果验证以及第一合约调用执行结果私钥签名验证均通过时,则确认所述第一区块合法,并同步第一区块。2.根据权利要求1所述的系统,其特征在于,所述多个合约调用执行节点包括区块链网络中除合约调用节点之外的所有节点。3.根据权利要求1所述的系统,其特征在于,所述合约调用执行节点包括:合约调用接收单元,用于接收合约调用节点广播的合约调用;以及合约调用执行权限验证单元,用于进行合约调用执行权限验证并确定合约调用单点执行节点;其中,所述合约调用执行权限验证单元具体包括:地址公钥解析模块,用于对所接收到的合约调用中指定的合约地址进行解析并获取合约创建者地址公钥;公钥对比模块,用于判断所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥是否为唯一配对的密钥对;合约调用执行权限验通过模块,用于若判断出所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥是唯一配对的密钥对时,则确认所述合约调用执行节点通过合约调用执行权限验证,确认所述合约调用执行节点是合约调用单点执行节点;以及合约调用执行权限验未通过模块,用于若判断出所述合约调用执行节点地址私钥与所述获取的合约创建者地址公钥不是唯一配对的密钥对时,则确认所述合约调用执行节点未通过合约调用执行权限验证,确认所述合约调用执行节点不是合约调用单点执行节点。4.根据权利要求1所述的系统,其特征在于,所述合约调用单点执行节点包括:合约调用传输第一单元,用于将接收到的合约调用传输给虚拟机执行合约调用;合约调用执行结果第一接收单元,用于接收虚拟机返回的合约调用执行结果;合约调用执行结果第一创建单元,用于根据所述返回的合约调用执行结果创建第一合约调用执行结果;第一合约调用执行结果私钥签名单元,用于使用私钥对所述第一合约调用执行结果进行签名;以及第一合约调用执行结果广播单元,用于将所述含有私钥签名的第一合约调用执行结果进行全网广播。5.根据权利要求1所述的系统,其特征在于,所述挖矿节点包括:合约调用接收单元,用于接收合约调用节点广播的合约调用;第一合约调用执行结果第一接收单元,用于接收合约调用单点执行节点广播的含有私钥签名的第一合约调用执行结果;第一合约调用执行结果第一验证单元,用于进行合约调用执行结果验证并确定所述第一合约调用执行结果是否合法;第一合约调用执行结果第一私钥签名验证单元,用于进行第一合约调用执行结果私钥签名验证并确定所述第一合约调用执行结果是否合法;第一合约调用执行结果打包单元,用于将所述合法的第一合约调用执行结果进行打包并生成第一区块;以及第一区块广播单元,用于将所述第一区块进行全网广播;其中,所述第一合约调用执行结果第一验证单元具体...

【专利技术属性】
技术研发人员:陈飞杨程文彬许敏勋
申请(专利权)人:深圳前海益链网络科技有限公司
类型:发明
国别省市:广东,44

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

1