区块链运行方法、装置、设备及存储介质与流程

文档序号:21926605发布日期:2020-08-21 14:47阅读:206来源:国知局
区块链运行方法、装置、设备及存储介质与流程

本申请涉及计算机技术领域,尤其涉及区块链技术,具体涉及一种区块链运行方法、装置、设备及存储介质。



背景技术:

在区块链系统中,区块链节点在处理完事务请求得到事务数据之后,会将事务数据传输至其他节点进行验证,以保证区块链的去中心化和安全性的特点。

而现有技术中的验证方式存在验证效率低、或通用性差的问题。



技术实现要素:

本申请提供了一种效率更高、通用性更好的区块链运行方法、装置、设备及存储介质。

根据本申请的一方面,提供了一种区块链运行方法,由背书节点执行,包括:

响应于客户端基于目标智能合约所发起的预执行请求,调用所述目标智能合约执行所述预执行请求,得到预执行结果;

根据所述客户端的账户密钥对所述预执行结果进行签名,得到第一结果签名;

将包括所述预执行结果和所述第一结果签名的结果数据反馈至所述客户端,以使所述客户端执行如下操作:基于所述结果数据发起验证事务请求,以使所述验证节点基于所述第一结果签名对所述预执行结果进行验证。

根据本申请的另一方面,提供了一种区块链运行方法,由客户端执行,包括:

基于目标智能合约向背书节点发起预执行请求,以使所述背书节点执行如下操作:调用所述目标智能合约执行所述预执行请求,得到预执行结果,并基于所述客户端的账户密钥对所述预执行结果进行签名,得到第一结果签名;

基于所述背书节点反馈的包括所述预执行结果和所述第一结果签名的结果数据,向验证节点发起验证事务请求,以使所述验证节点基于所述第一结果签名对所述预执行结果进行验证。

根据本申请的另一方面,提供了一种区块链运行方法,由验证节点执行,包括:

接收客户端基于包括预执行请求的预执行结果和第一结果签名的结果数据发起的验证事务请求;其中,预执行结果由背书节点调用目标智能合约执行所述客户端发起的预执行请求得到;所述第一结果签名由所述背书节点基于所述客户端的账户密钥对所述预执行结果签名得到;

响应于所述验证事务请求,基于所述第一结果签名对所述预执行结果进行验证。

根据本申请的另一方面,提供了一种区块链运行装置,配置于背书节点,包括:

预执行结果得到模块,用于响应于客户端基于目标智能合约所发起的预执行请求,调用所述目标智能合约执行所述预执行请求,得到预执行结果;

第一结果签名得到模块,用于根据所述客户端的账户密钥对所述预执行结果进行签名,得到第一结果签名;

结果数据反馈模块,用于将包括所述预执行结果和所述第一结果签名的结果数据反馈至所述客户端,以使所述客户端执行如下操作:基于所述结果数据向验证节点发起验证事务请求,以使所述验证节点基于所述第一结果签名对所述预执行结果进行验证。

根据本申请的另一方面,提供了一种区块链运行装置,配置于客户端,包括:

预执行请求发起模块,用于基于目标智能合约向背书节点发起预执行请求,以使所述背书节点执行如下操作:调用所述目标智能合约执行所述预执行请求,得到预执行结果,并基于所述客户端的账户密钥对所述预执行结果进行签名,得到第一结果签名;

验证事务请求发起模块,用于基于所述背书节点反馈的包括所述预执行结果和所述第一结果签名的结果数据,向验证节点发起验证事务请求,以使所述验证节点基于所述第一结果签名对所述预执行结果进行验证。

根据本申请的另一方面,提供了一种区块链运行装置,配置于验证节点,包括:

验证事务请求接收模块,用于接收客户端基于包括预执行请求的预执行结果和第一结果签名的结果数据发起的验证事务请求;其中,预执行结果由背书节点调用目标智能合约执行所述客户端发起的预执行请求得到;所述第一结果签名由所述背书节点基于所述客户端的账户密钥对所述预执行结果签名得到;

验证事务请求响应模块,用于响应于所述验证事务请求,基于所述第一结果签名对所述预执行结果进行验证。

根据本申请的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任一实施例提供的一种区块链运行方法。

根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请任一实施例提供的一种区块链运行方法。

根据本申请的技术,提高了智能合约运行结果的验证效率,能够适配不同区块链系统,具备通用性。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1a是本申请实施例提供的一种区块链系统结构图;

图1b是本申请实施例提供的一种区块链运行方法的流程图;

图2是本申请实施例提供的另一种区块链运行方法的流程图;

图3是本申请实施例提供的另一种区块链运行方法的流程图;

图4是本申请实施例提供的另一种区块链运行方法的流程图;

图5是本申请实施例提供的一种区块链运行装置的结构图;

图6是本申请实施例提供的另一种区块链运行装置的结构图;

图7是本申请实施例提供的另一种区块链运行装置的结构图;

图8是用来实现本申请实施例的区块链运行方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

为了清楚的介绍本申请实施例的技术方案,首先对本申请所涉及的区块链系统进行说明。

参见图1a所示的区块链系统结构图可知,本申请所涉及的区块链系统包括:客户端10、背书节点20和验证节点30。

其中,客户端10用于向用户提供区块链账户的登录入口,并根据用户操作向区块链中的背书节点20发起目标事务请求,和/或向验证节点30节点发起验证事务请求;

背书节点20,用于响应于客户端10发送的目标事务请求,以调用目标智能合约执行该目标事务请求,并向客户端10反馈执行结果;

验证节点30,用于响应于客户端10发送的验证事务请求,对验证事务请求中的数据的准确性加以验证。

本申请实施例所提供的各区块链运行方法和区块链运行装置,适用于图1a所示的区块链系统中进行智能合约处理和验证的情况。本申请实施例所提供的各区块链运行方法由区块链运行装置执行,该装置采用软件和/或硬件实现,并具体配置于电子设备中。

图1b是本申请实施例提供的一种区块链运行方法的流程图,该方法由背书节点执行,包括:

s101、响应于客户端基于目标智能合约所发起的预执行请求,调用目标智能合约执行预执行请求,得到预执行结果。

其中,目标智能合约可以理解为具备某种业务功能的智能合约,通过该目标智能合约的运行,能够实现相应的业务功能。

示例性地,客户端响应于用户的预执行请求发起操作,基于目标智能合约,向背书节点发起预执行请求;背书节点接收该预执行请求,并响应于预执行请求,调用预执行请求中包含的目标合约方法,对预执行请求进行处理,得到预执行结果。

可选的,背书节点可以直接基于目标智能合约进行目标合约方法的调用,从而实现对预执行请求的处理。为了避免在目标事务请求中多次进行同一目标合约方法的调用出现数据混乱的情况,可选的,还可以根据目标食物请求中的合约标识,将目标智能合约实例化,得到目标合约实例;根据目标事务请求中的方法标识,调用目标合约实例中的目标合约方法,从而实现对预执行请求的处理。

为了实现对不同事务请求的区分,同时避免目标合约方法执行过程中出现数据混乱的情况,便于数据管理,在本申请实施例的另一可选实施方式中,还可以创建会话,用于管理本次调用所使用的内存和全局变量,从而实现上下文的隔离;初始化目标会话中合约方法运行所需要的内存和全局变量;根据目标事务请求中的合约标识,将目标智能合约实例化,得到目标合约实例;根据目标事务请求中的方法标识,调用目标合约实例中的目标合约方法,从而基于目标事务请求中的输入参数和全局变量,实现对预执行请求的处理。

可选的,背书节点可以借助于安全计算,来提高预执行请求执行过程的安全性和执行结果准确度。示例性地,背书节点可以在可信执行环境中调用目标智能合约执行预执行请求,得到预执行结果。

其中,可信执行环境(trustedexecutionenvironment,tee)是主处理器内的安全区域。它运行在一个独立的环境中且与操作系统并行运行。它确保tee中加载的代码和数据的机密性和完整性都得到保护。通过同时使用硬件和软件来保护数据和代码,这个并行系统比传统系统,也即富执行环境(richexecutionenvironment,ree)更加安全。在tee中运行的可信应用(trustedapplication,ta)可以访问设备主处理器和内存的全部功能,而硬件隔离保护这些组件不受主操作系统中运行的用户安装应用程序的影响。tee中的软件和加密隔离相互保护不同的可信应用。

示例性地,响应于预执行请求,在可信执行环境中,调用目标智能合约中的目标合约方法,从而根据预执行请求中的输入参数,得到预执行结果。

在本申请实施例的一种可选实施方式中,可以基于共享链接库调用目标合约方法,在可信执行环境中处理目标事务请求。其中,共享链接库通过如下确定:对目标智能合约进行编译,生成链接有可信执行环境的共享链接库。

可以理解的是,在可信环境中执行事务请求,提高了智能合约执行过程的安全性;仅将智能合约运行过程迁移至可信执行环境中,将共享链接库的生成和加载过程隔离在可信执行环境之外,避免了资源的浪费;同时,无需对合约内容进行修改,能够适配不同的区块链系统,通用性好。

示例性地,对目标智能合约进行编译,生成链接有可信执行环境的共享链接库,可以是:对目标智能合约进行编译,得到静态链接库;将静态链接库链接至与目标智能合约所关联的目标可信应用;对链接有静态链接库的目标可信应用进行编译,得到共享链接库。

可以理解的是,将共享链接库的生成过程以及加载过程,与后续执行过程分离,从而将共享链接库的生成过程和加载过程隔离在可信执行环境之外,避免了资源的无端消耗,实现了资源的合理利用。同时,直接对目标智能合约进行编译和链接,对目标智能合约的代码不做任何处理,使得本申请中的区块链运行方法能够在不同的区块链系统中加以复用,通用性强。

可选的,共享链接库可以是静态链接库,用于存储目标智能合约的源文件中用到的库函数与汇编生成的目标代码合并所生成的可执行文件。

可以理解的是,静态链接库中的可执行文件中包含有库函数,因此可执行程序与库函数再无关系,放在任何环境中都可以执行,方便程序移植。

可选的,共享链接库可以是动态链接库,所存储的编译的可执行文件并未被连接到目标代码中,从而达到了隐藏源代码的目的,同时减少了共享链接库的空间占用量,缓解了代码耦合的问题。

若共享链接库为静态链接库,由于静态链接库的目标代码需要预先载入,且对函数库的链接需要在编译时期完成,因此仅能在电子设备接入区块链系统时,进行静态链接库的生成。示例性地,对目标智能合约进行编译,生成链接有可信执行环境的共享链接库,可以是:接收目标智能合约部署指令;响应于目标智能合约部署指令,对目标智能合约进行编译,生成连接有可信执行环境的静态链接库;加载该共享链接库。

若共享链接库为动态链接库,由于动态链接库的目标代码在程序运行时才会被载入,因此可以在电子设备接入区块链系统时,或在区块链系统运行过程中,进行动态链接库的生成,从而便于在区块链系统运行的不同时期进行智能合约的动态部署和更新升级。示例性地,对目标智能合约进行编译,生成链接有可信执行环境的共享链接库,可以是:在接入区块链系统时或在区块链系统运行过程中,接收目标智能合约部署指令;响应于目标智能合约部署指令,对目标智能合约进行编译,生成链接有可信执行环境的动态链接库。其中,区块链系统可以是常规区块链系统还可以是超级区块链系统。

在本申请实施例的一种可信执行环境中,基于共享链接库调用目标合约方法,在可信执行环境中处理目标事务请求,可以是:进程内访问目标可信应用,并通过目标可信应用基于共享链接库调用目标合约方法,在可信执行环境中处理目标事务请求。可以理解的是,由于在虚拟机处理进程内进行目标可信应用的访问,不涉及跨进程操作,使得目标事务请求的处理过程更加便捷,提供了处理效率。

s102、根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名。

可选的,客户端的账户密钥可以预先存储在背书节点本地,从而在背书节点得到预执行结果后,直接本地获取客户端登录账户的账户密钥,对预执行结果进行签名,得到第一结果签名。

可选的,客户端的账户密钥还可以在背书节点接收到目标智能合约所发起的预执行请求之前,从客户端中获取得到。

在本申请实施例的一种可选实施方式中,为了避免账户密钥泄露给客户端的登录账户带来的影响,在响应于客户端基于目标智能合约所发起的预执行请求,调用目标智能合约执行预执行请求,得到预执行结果之前,客户端还可以对背书节点的安全性加以验证,从而在安全认证通过之后,进行账户密钥的传输。

示例性地,响应于客户端发送的安全认证请求,反馈安全认证参数,以使客户端基于安全认证参数,对背书节点的执行环境进行安全性认证;接收客户端在安全认证通过后发送的账户密钥。

为了保障账户密钥的传输安全,可选的,在客户端对背书节点进行安全认证之后,若安全认证通过,还可以首先与背书节点协商传输密钥,并基于传输密钥向背书节点发送账户密钥。其中,传输密钥可以是对称密钥或非对称密钥。为了提高传输效率,可选的,传输密钥可以是对称密钥。

可选的,背书节点可以借助于安全计算,来保护账户密钥的安全性。示例性地,为了提高签名过程的安全性,在本申请实施例的一种可选实施方式中,根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名,可以是:在可信执行环境中,根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名。

示例性地,账户密钥可以是客户端的登录账户的账户私钥。

s103、将包括预执行结果和第一结果签名的结果数据反馈至客户端,以使客户端执行如下操作:基于结果数据向验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。

背书节点将包括预执行结果和第一结果签名的结果数据反馈至客户端;客户端接收该结果数据,并基于结果数据向验证节点发起验证事务请求;验证节点基于结果数据中的第一结果签名,对预执行结果进行验证。

示例性地,根据客户端的登录账户的账户公钥,对第一结果签名进行签名验证,若验证通过,则确定预执行结果正确;否则,确定预执行结果不正确。

本申请实施例通过背书节点响应于客户端基于目标智能合约所发起的预执行请求,调用目标智能合约执行预执行请求,得到预执行结果;根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名;将包括预执行结果和第一结果签名的结果数据反馈至客户端,以使客户端执行如下操作:基于结果数据行验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。上述技术方案借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

为了提高预执行结果的上链效率,在本申请实施例的一种可选实施方式中,还可以将对预执行结果的验证过程的发起操作和对矿工节点的支付过程的发起操作合并,从而实现两者的关联执行。

示例性地,背书节点在调用目标智能合约执行预执行请求过程中,还可以统计调用目标智能合约所消耗的待支付元素;冻结客户端的登录账户的可支付元素,用于支付待支付元素;将待支付元素的统计值和所冻结元素添加至结果数据,反馈至客户端,以使客户端基于结果数据,向验证节点发起转账事务请求。可选的,可支付元素的冻结操作可以在tee中执行,以提高执行过程的安全性;或者可选的,可支付元素的冻结操作可以在ree中执行,以合理利用资源,避免资源浪费。其中,元素可以理解为在区块链中能够起到激励作用的货币,例如可以是积分、星钻或者能量等。

相应的,验证节点响应于转账事务请求,基于结果数据中的第一结果签名对预执行结果的准确性进行验证。为了保证转账事务请求处理过程的合法性,在本申请实施例的一种可选实施方式中,验证节点还可以基于结果数据中的所冻结元素,对转账事务请求的合法性进行验证。

示例性地,验证节点从自身存储的区块链中查询所冻结元素是否被冻结且未被花费;若所冻结元素包含有冻结标识,且在被冻结之前和被冻结之后均未被花费,则确定转账事务请求合法;否则,确定转账事务请求非法。

相应的,当预执行结果的准确性验证通过,或进一步地所冻结元素的合法性验证通过之后,各验证节点遵守共识机制确定其中一个节点作为矿工节点,由矿工节点对转账事务请求加以响应,完成出块操作,实现数据上链。

示例性地,矿工节点从客户端的登录账户的所冻结元素中,转出与待支付元素的统计值等额的元素到自身账户,并上链存储,从而通过将包含有结果数据的转账事务请求的上链存储,实现了将预执行结果的上链存储。

在本申请实施例的一种可选实施方式中,冻结客户端的登录账户的可支付元素,可以是由背书节点在统计完调用目标智能合约所消耗的待支付元素之后,关联进行可支付元素的冻结,从而提高后续转账事务请求的发起效率,进而提高目标事务请求的预执行结果的上链效率。

由于在背书节点执行完目标事务请求之后,可能存在部分因素导致客户端的登录账户无法即刻进行预执行结果的上链操作,因此在背书节点得到预执行结果后即刻进行可支付元素的冻结,将会对登录账户产生一定的影响。为了避免上述情况的发生,本申请实施例的另一可选实施方式中,冻结客户端的登录账户的可支付元素,用于支付待支付元素,还可以是:接收客户端基于待支付元素的统计值所发送的元素冻结请求;响应于元素冻结请求,冻结客户端的登录账户的可支付元素,用于支付待支付元素。

可以理解的是,由客户端的登录账户在需要进行预执行结果上链时,主动发起元素冻结请求,进而进行自身元素的冻结和后续的元素支付,避免了贸然冻结登录账户的可支付元素带来的影响。

图2是本申请实施例提供的另一种区块链运行方法的流程图,该方法由客户端执行,包括:

s201、基于目标智能合约向背书节点发起预执行请求,以使背书节点执行如下操作:调用目标智能合约执行预执行请求,得到预执行结果,并基于客户端的账户密钥对预执行结果进行签名,得到第一结果签名。

其中,目标智能合约可以理解为具备某种业务功能的智能合约,通过该目标智能合约的运行,能够实现相应的业务功能。

示例性地,客户端响应于用户的预执行请求发起操作,基于目标智能合约,向背书节点发起预执行请求;背书节点接收该预执行请求,并响应于预执行请求,调用预执行请求中包含的目标合约方法,对预执行请求进行处理,得到预执行结果;背书节点基于客户端的账户密钥对预执行结果进行签名,得到第一结果签名。

可选的,客户端的账户密钥可以预先存储在背书节点中,从而在背书节点得到预执行结果后,直接本地获取客户端登录账户的账户密钥,对预执行结果进行签名,得到第一结果签名。

可选的,客户端的账户密钥还可以在客户端在向背书节点发起预执行请求之前,由客户端发送至背书节点以供使用。

在本申请实施例的一种可选实施方式中,为了避免账户密钥泄露给客户端的登录账户带来的影响,在基于目标智能合约向背书节点发起预执行请求之前,客户端还可以对背书节点的安全性加以认证,从而在安全性认证能通过之后,进行账户密钥的传输。

示例性地,客户端向背书节点发送安全认证请求,并接收背书节点基于安全认证请求反馈的安全认证参数;对安全认证参数进行认证,并在安全认证通过后,向背书节点发送账户密钥。

可选的,对安全认证参数进行认证,可以是:客户端将本地存储的安全认证参数与所接收的认证参数相比较;若比较结果一致,则安全认证通过;否则,安全认证不通过。其中,安全认证参数为背书节点自身的系统参数。

需要说明的是,背书节点可以借助于安全计算,来对预执行请求的执行过程的安全性和预执行结果的准确度。示例性地,在可信执行环境中,调用目标智能合约执行预执行请求。背书节点可以借助于安全计算保护账户密钥的安全性。示例性地,在可信执行环境中,根据客户端的账户密钥,对预执行结果进行签名。若背书节点在可信执行环境中,调用目标智能合约执行预执行请求,和/或在可信执行环境中,根据客户端的账户密钥对预执行结果进行签名,则安全认证参数可以是可信执行环境的系统参数。

为了保障账户密钥的传输安全,可选的,在客户端对背书节点进行安全认证之后,若安全认证通过,还可以首先与背书节点协商传输密钥,并基于传输密钥向背书节点发送账户密钥。其中,传输密钥可以是对称密钥或非对称密钥。为了提高传输效率,可选的,传输密钥可以是对称密钥。

示例性地,账户密钥可以是客户端的登录账户的账户私钥。

s202、基于背书节点反馈的包括预执行结果和第一结果签名的结果数据,向验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。

背书节点将包括预执行结果和第一结果签名的结果数据反馈至客户端;客户端接收该结果数据,并基于结果数据向验证节点发起验证事务请求;验证节点基于结果数据中的第一结果签名,对预执行结果进行验证。

示例性地,验证节点根据客户端的登录账户的账户公钥,对第一结果签名进行签名验证,若验证通过,则确定预执行结果正确;否则,确定预执行结果不正确。

本申请实施例通过客户端基于目标智能合约向背书节点发起预执行请求,以使背书节点执行如下操作:调用目标智能合约执行预执行请求,得到预执行结果,并基于客户端的账户密钥对预执行结果进行签名,得到第一签名结果;基于背书节点反馈的包括预执行结果和第一结果签名的结果数据,向验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。上述技术方案借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

在上述各技术方案的基础上,为了提高对预执行结果的验证结果的准确度,还可以对预执行结果进行多样化验证。可选的,客户端在基于背书节点反馈的包括预执行结果和第一结果签名的结果数据,向验证节点发起验证事务请求之前,还可以:根据账户密钥,对结果数据进行签名,得到第二结果签名;相应的,基于结果数据和第二结果签名,向验证节点发起验证事务请求;相应的,验证节点基于第一结果签名和/或第二结果签名,对预执行结果进行验证。

可选的,验证节点基于第一结果签名,对预执行结果的准确性加以验证;或者可选的,基于第二结果签名,对预执行结果的有效性加以验证。

示例性地,根据客户端的登录账户的账户公钥,对第一结果签名进行签名验证,若验证通过,则确定预执行结果正确;否则,确定预执行结果不正确。

示例性地,根据客户端的登录账户的账户公钥,对第二结果签名进行签名验证,若验证通过,则确定预执行结果有效;否则,确定预执行结果无效。

为了提高预执行结果的上链效率,在本申请实施例的一种可选实施方式中,还可以将对预执行结果的验证过程的发起操作和对矿工节点的支付过程的发起操作合并,从而实现两者的关联执行。

可选的,客户端基于结果数据向验证节点发起的验证事务请求,可以是转账事务请求。其中,结果数据中还包括背书节点执行预执行请求所统计的待支付元素的统计值,以及用于支付待支付元素所冻结的可支付元素;其中,所冻结元素用于由验证节点基于所冻结元素进行转账事务请求的合法性验证。其中,元素可以理解为在区块链中能够起到激励作用的货币,例如可以是积分、星钻或者能量等。

示例性地,背书节点在调用目标智能合约执行预执行请求过程中,还可以统计调用目标智能合约所消耗的待支付元素;冻结客户端的登录账户的可支付元素,用于支付待支付元素;将待支付元素的统计值和所冻结元素添加至结果数据,反馈至客户端;客户端基于结果数据,向验证节点发起转账事务请求。

相应的,验证节点响应于转账事务请求,基于结果数据中的第一结果签名对预执行结果的准确性进行验证。可选的,验证节点还可以基于结果数据中的所冻结元素,对转账事务请求的合法性进行验证。

示例性地,验证节点从自身存储的区块链中查询所冻结元素是否被冻结且未被花费;若所冻结元素包含有冻结标识,且在被冻结之前和被冻结之后均未被花费,则确定转账事务请求合法;否则,确定转账事务请求非法。

相应的,当预执行结果的准确性验证通过,或进一步地所冻结元素的合法性验证通过之后,各验证节点遵守共识机制确定其中一个节点作为矿工节点,由矿工节点对转账事务请求加以响应,完成出块操作,实现数据上链。

示例性地,矿工节点从客户端的登录账户的所冻结元素中,转出与待支付元素的统计值等额的元素到自身账户,并上链存储,从而通过将包含有结果数据的转账事务请求的上链存储,实现了将预执行结果的上链存储。

在本申请实施例的一种可选实施方式中,冻结客户端的登录账户的可支付元素,可以是由背书节点在统计完调用目标智能合约所消耗的待支付元素之后,关联进行可支付元素的冻结,从而提高后续转账事务请求的发起效率,进而提高目标事务请求的预执行结果的上链效率。

由于在背书节点执行完目标事务请求之后,可能存在部分因素导致客户端的登录账户无法即刻进行预执行结果的上链操作,因此在背书节点得到预执行结果后即刻进行可支付元素的冻结,将会对登录账户产生一定的影响。为了避免上述情况的发生,本申请实施例的另一可选实施方式中,客户端在向验证节点发起验证事务请求之前,还可以基于待支付元素的统计值,生成元素冻结请求;向背书节点发送元素冻结请求,以使背书节点冻结客户端的登录账户的可支付元素,用于支付待支付元素。

可以理解的是,由客户端的登录账户在需要进行预执行结果上链时,主动发起元素冻结请求,进而进行自身元素的冻结和后续的元素支付,避免了贸然冻结登录账户的可支付元素带来的影响。

图3是本申请实施例提供的另一种区块链运行方法的流程图,该方法由验证节点执行,包括:

s301、接收客户端基于包括预执行请求的预执行结果和第一结果签名的结果数据发起的验证事务请求;其中,预执行结果由背书节点调用目标智能合约执行客户端发起的预执行请求得到;第一结果签名由背书节点基于客户端的账户密钥对预执行结果签名得到;

其中,目标智能合约可以理解为具备某种业务功能的智能合约,通过该目标智能合约的运行,能够实现相应的业务功能。

示例性地,客户端响应于用户的预执行请求发起操作,基于目标智能合约,向背书节点发起预执行请求;背书节点接收该预执行请求,并响应于预执行请求,调用预执行请求中包含的目标合约方法,对预执行请求进行处理,得到预执行结果;背书节点基于客户端的账户密钥对预执行结果进行签名,得到第一结果签名;背书节点将包括预执行结果和第一结果签名的结果数据反馈至客户端;客户端基于所接收的结果数据向验证节点发起验证事务请求;验证节点接收该验证事务请求。

示例性地,账户密钥可以是客户端的登录账户的账户私钥。

可选的,背书节点可以借助于安全计算,来对预执行请求的执行过程的安全性和预执行结果的准确度。示例性地,在可信执行环境中,调用目标智能合约执行预执行请求。背书节点可以借助于安全计算保护账户密钥的安全性。示例性地,在可信执行环境中,根据客户端的账户密钥,对预执行结果进行签名。

s302、响应于验证事务请求,基于第一结果签名对预执行结果进行验证。

验证节点响应于验证事务请求,基于验证事务请求中结果数据所包含的第一结果签名,对结果数据所包含的预执行结果进行准确性验证。

示例性地,根据客户端的登录账户的账户公钥,对第一结果签名进行签名验证,若验证通过,则确定预执行结果正确;否则,确定预执行结果不正确。

为了提到对预执行结果的验证结果的准确度,还可以对预执行结果进行多样化验证。可选的,验证事务请求中还可以包括第二结果签名,其中第二结果签名由客户端根据账户密钥,对结果数据进行签名后得到。相应的,验证节点响应于验证事务请求,基于第二结果签名对预执行结果进行有效性验证。

示例性地,根据客户端的登录账户的账户公钥,对第二结果签名进行签名验证,若验证通过,则确定预执行结果有效;否则,确定预执行结果无效。

为了提高预执行结果的上链效率,在本申请实施例的一种可选实施方式中,还可以将对预执行结果的验证过程的发起操作和对矿工节点的支付过程的发起操作合并,从而实现两者的关联执行。

可选的,客户端基于结果数据向验证节点发起的验证事务请求,可以是转账事务请求。其中,结果数据中还包括用于支付待支付元素的被冻结元素;所述待支付元素由所述背书节点执行所述预执行请求时统计得到。相应的,验证节点响应于转账事务请求,基于所冻结元素,对转账事务请求的合法性进行验证。其中,元素可以理解为在区块链中能够起到激励作用的货币,例如可以是积分、星钻或者能量等。

示例性地,背书节点在调用目标智能合约执行预执行请求过程中,还可以统计调用目标智能合约所消耗的待支付元素;冻结客户端的登录账户的可支付元素,用于支付待支付元素;将待支付元素的统计值和所冻结元素添加至结果数据,反馈至客户端;客户端基于结果数据,向验证节点发起转账事务请求。

相应的,验证节点响应于转账事务请求,基于结果数据中的第一结果签名对预执行结果的准确性进行验证。可选的,验证节点还可以基于结果数据中的所冻结元素,对转账事务请求的合法性进行验证。

示例性地,验证节点从自身存储的区块链中查询所冻结元素是否被冻结且未被花费;若所冻结元素包含有冻结标识,且在被冻结之前和被冻结之后均未被花费,则确定转账事务请求合法;否则,确定转账事务请求非法。

相应的,当预执行结果的准确性验证通过,或进一步地所冻结元素的合法性验证通过之后,各验证节点遵守共识机制确定其中一个节点作为矿工节点,由矿工节点对转账事务请求加以响应,完成出块操作,实现数据上链。

示例性地,矿工节点从客户端的登录账户的所冻结元素中,转出与待支付元素的统计值等额的元素到自身账户,并上链存储,从而通过将包含有结果数据的转账事务请求的上链存储,实现了将预执行结果的上链存储。

本申请实施例通过验证节点接收客户端基于包括预执行请求的预执行结果和第一结果签名的结果数据发起的验证事务请求;其中预执行结果由背书节点调用目标智能合约执行客户端发起的预执行请求得到;第一结果签名由背书节点基于客户端的账户密钥对预执行结果签名得到;响应于验证事务请求,基于第一结果签名对预执行结果进行验证。上述技术方案借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

图4是本申请实施例提供的另一种区块链运行方法的流程图,该方法在上述各技术方案的基础上,提供了一种优选实施方式。

如图4所示的一种区块链运行方法,包括:

s401、客户端向背书节点发送tee安全认证请求;

s402、背书节点向客户端反馈tee安全认证参数;

s403、客户端将接收的安全认证参数与本地存储的安全认证参数进行比对,对背书节点的tee进行安全认证;

具体的,若比对结果一致,则安全认证通过;若比对结果不一致,则安全认证不通过。

s404、若安全认证通过,则客户端向背书节点发送登录账户的账户私钥;

示例性地,客户端可以与背书节点协商传输密钥,并基于传输密钥向背书节点发送账户私钥。其中,传输密钥可以是对称密钥。

s405、背书节点接收并存储该账户私钥。

s406、客户端基于目标智能合约,生成预执行请求;

s407、客户端向背书节点发起预执行请求;

s408、背书节点接收预执行请求,并在tee中调用目标智能合约生成读写集;同时统计调用目标智能合约需消耗的待支付元素;采用账户私钥对读写集进行签名,得到读写集签名;

s409、背书节点将读写集、读写集签名和待支付元素反馈至客户端;

s410、客户端接收读写集、读写集签名和待支付元素,并将接收的结果进行签名,得到结果签名;

其中,元素可以理解为在区块链中能够起到激励作用的货币,例如可以是积分、星钻或者能量等。

s411、客户端根据待支付元素生成元素冻结请求;

s412、客户端向背书节点发送元素冻结请求;

s413、背书节点根据元素冻结请求,在ree中冻结登录账户的可支付元素,用于支付待支付元素;

s414、背书节点向客户端反馈所冻结元素;

s415、客户端基于所冻结元素、读写集、读写集签名、结果签名和待支付元素,生成转账事务请求;

s416、客户端向验证节点发送转账事务请求;

s417、验证节点接受该转账事务请求,并根据登录账户的账户公钥对读写集签名进行验证,以验证目标智能合约执行结果的准确性;根据登录账户的账户公钥对结果签名进行验证,以验证目标智能合约执行结果的有效性;根据本地区块链中所冻结元素的冻结标识和花费状态,验证转账事务请求的合法性。

示例性地,根据登录账户的账户公钥对读写集签名进行验证,以验证目标智能合约执行结果的准确性,可以是:根据客户端的登录账户的账户公钥,对第一结果签名进行签名验证,若验证通过,则确定预执行结果正确;否则,确定预执行结果不正确。

示例性地,根据登录账户的账户公钥对结果签名进行验证,以验证目标智能合约执行结果的有效性,可以是:根据客户端的登录账户的账户公钥,对第二结果签名进行签名验证,若验证通过,则确定预执行结果有效;否则,确定预执行结果无效。

示例性地,根据本地区块链中所冻结元素的冻结标识和花费状态,验证转账事务请求的合法性,可以是:验证节点从自身存储的区块链中查询所冻结元素是否被冻结且未被花费;若所冻结元素包含有冻结标识,且在被冻结之前和被冻结之后均未被花费,则确定转账事务请求合法;否则,确定转账事务请求非法。

s418、若验证均通过,则根据共识机制确定矿工节点,由矿工节点处理转账事务请求。

示例性地,由矿工节点处理转账事务请求,可以是:矿工节点从客户端的登录账户的所冻结元素中,转出与待支付元素的统计值等额的元素到自身账户,并上链存储,从而通过将包含有结果数据的转账事务请求的上链存储,实现了将预执行结果的上链存储。

本申请通过对背书节点调用目标智能合约的读写集,采用客户端登录账户的账户私钥进行签名,得到读写集签名,从而验证节点采用对读写集签名的签名验证,代替目标智能合约的重建载入和执行,提高了智能合约执行结果的验证效率,进而提高了智能合约执行结果的上链耗时。

图5是本申请实施例提供的一种区块链运行装置的结构图,该区块链运行装置500,配置于背书节点,包括:预执行结果得到模块501、第一结果签名得到模块502和结果数据反馈模块503。其中,

预执行结果得到模块501,用于响应于客户端基于目标智能合约所发起的预执行请求,调用目标智能合约执行预执行请求,得到预执行结果;

第一结果签名得到模块502,用于根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名;

结果数据反馈模块503,用于将包括预执行结果和第一结果签名的结果数据反馈至客户端,以使客户端执行如下操作:基于结果数据向验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。

本申请实施例通过预执行结果得到模块响应于客户端基于目标智能合约所发起的预执行请求,调用目标智能合约执行预执行请求,得到预执行结果;通过第一结果签名得到模块根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名;通过结果数据反馈模块将包括预执行结果和第一结果签名的结果数据反馈至客户端,以使客户端执行如下操作:基于结果数据行验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。上述技术方案借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

进一步地,预执行结果得到模块502,包括:

预执行结果得到单元,用于在可信执行环境中,调用目标智能合约执行预执行请求,得到预执行结果;

进一步地,第一结果签名得到模块502,包括:

第一结果签名得到单元,用于在可信执行环境中,根据客户端的账户密钥对预执行结果进行签名,得到第一结果签名。

进一步地,所述预执行结果得到单元,包括:

预执行结果得到子单元,用于基于共享链接库,调用目标智能合约中的目标合约方法,在可信执行环境中处理所述预执行请求,得到预执行结果;其中,共享链接库通过如下确定:对目标智能合约进行编译,生成链接有可信执行环境的共享链接库。

进一步地,该装置,还包括:

安全认证参数反馈模块,用于在响应于客户端基于目标智能合约所发起的预执行请求,调用目标智能合约执行预执行请求,得到预执行结果之前,响应于客户端发送的安全认证请求,反馈安全认证参数,以使客户端基于安全认证参数对背书节点的执行环境进行安全认证;

账户密钥接收模块,用于接收客户端在安全认证通过后发送的账户密钥。

进一步地,该装置,还包括:

待支付元素统计模块,用于在调用目标智能合约执行预执行请求过程中,统计调用目标智能合约所消耗的待支付元素;

元素冻结模块,用于冻结客户端的登录账户的可支付元素,用于支付待支付元素;

结果数据反馈模块,还用于将待支付元素的统计值和所冻结元素添加至结果数据,反馈至客户端,以使客户端基于结果数据,向验证节点发起转账事务请求,并通过验证节点基于第一结果签名对预执行结果的准确性进行验证,和/或基于所冻结元素,对转账事务请求的合法性进行验证。

进一步地,元素冻结模块,包括:

元素冻结请求接收单元,用于接收客户端基于待支付元素的统计值所发送的元素冻结请求;

元素冻结请求响应单元,用于响应于元素冻结请求,冻结客户端的登录账户的可支付元素,用于支付待支付元素。

上述区块链运行装置可执行本发明任意实施例所提供的区块链运行方法,具备执行区块链运行方法相应的功能模块和有益效果。

图6是本申请实施例提供的另一种区块链运行装置的结构图,该区块链运行装置600,配置于客户端,包括:预执行请求发起模块601和验证事务请求发起模块602。其中,

预执行请求发起模块601,用于基于目标智能合约向背书节点发起预执行请求,以使背书节点执行如下操作:调用目标智能合约执行预执行请求,得到预执行结果,并基于客户端的账户密钥对预执行结果进行签名,得到第一结果签名;

验证事务请求发起模块602,用于基于背书节点反馈的包括预执行结果和第一结果签名的结果数据,向验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。

本申请实施例通过预执行请求发起模块基于目标智能合约向背书节点发起预执行请求,以使背书节点执行如下操作:调用目标智能合约执行预执行请求,得到预执行结果,并基于客户端的账户密钥对预执行结果进行签名,得到第一签名结果;通过验证事务请求发起模块基于背书节点反馈的包括预执行结果和第一结果签名的结果数据,向验证节点发起验证事务请求,以使验证节点基于第一结果签名对预执行结果进行验证。上述技术方案借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

进一步地,该装置,还包括:

安全认证请求发送模块,用于在基于目标智能合约向背书节点发起预执行请求之前,向背书节点发送安全认证请求,并接收背书节点基于安全认证请求反馈的安全认证参数;

账户密钥发送模块,用于对安全认证参数进行认证,并在安全认证通过后,向背书节点发送账户密钥。

进一步地,该装置,还包括:

第二结果签名得到模块,用于在基于背书节点反馈的包括预执行结果和第一结果签名的结果数据,向验证节点发起验证事务请求之前,根据账户密钥,对结果数据进行签名,得到第二结果签名;

验证事务请求发起模块,包括:

验证事务请求发起单元602,用于基于结果数据和第二结果签名,向验证节点发起验证事务请求,以使验证节点基于第一结果签名和/或第二结果签名,对预执行结果进行验证。

进一步地,所述验证事务请求为转账事务请求;所述结果数据中还包括所述背书节点执行所述预执行请求所统计的待支付元素的统计值,以及用于支付所述待支付元素所冻结的可支付元素;

其中,所冻结元素用于由验证节点基于所冻结元素进行转账事务请求的合法性验证。

进一步地,该装置,还包括:

元素冻结请求生成模块,用于在向验证节点发起验证事务请求之前,基于所述待支付元素的统计值,生成元素冻结请求;

元素冻结请求发送模块,用于向背书节点发送元素冻结请求,以使背书节点冻结客户端的登录账户的可支付元素,用于支付待支付元素。

上述区块链运行装置可执行本发明任意实施例所提供的区块链运行方法,具备执行区块链运行方法相应的功能模块和有益效果。

图7是本申请实施例提供的另一种区块链运行装置的结构图,该区块链运行装置700,配置于验证节点,包括:验证事务请求接收模块701和验证事务请求响应模块702。其中,

验证事务请求接收模块701,用于接收客户端基于包括预执行请求的预执行结果和第一结果签名的结果数据发起的验证事务请求;其中,预执行结果由背书节点调用目标智能合约执行客户端发起的预执行请求得到;第一结果签名由背书节点基于客户端的账户密钥对预执行结果签名得到;

验证事务请求响应模块702,用于响应于验证事务请求,基于第一结果签名对预执行结果进行验证。

本申请实施例通过验证事务请求接收模块接收客户端基于包括预执行请求的预执行结果和第一结果签名的结果数据发起的验证事务请求;其中预执行结果由背书节点调用目标智能合约执行客户端发起的预执行请求得到;第一结果签名由背书节点基于客户端的账户密钥对预执行结果签名得到;通过验证事务请求响应模块响应于验证事务请求,基于第一结果签名对预执行结果进行验证。上述技术方案借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

进一步地,验证事务请求还包括第二结果签名;第二结果签名由客户端根据账户密钥,对结果数据进行签名后得到;

装置还包括:

第二结果签名验证模块,用于响应于验证事务请求,基于第二结果签名对预执行结果的有效性进行验证。

进一步地,验证事务请求为转账事务请求,结果数据中还包括用于支付待支付元素的被冻结元素;待支付元素由背书节点执行预执行请求时统计得到;

进一步地,该装置还包括:

元素合法性验证模块,用于响应于转账事务请求,基于所冻结元素,对转账事务请求的合法性进行验证。

上述区块链运行装置可执行本发明任意实施例所提供的区块链运行方法,具备执行区块链运行方法相应的功能模块和有益效果。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图8所示,是实现本申请实施例的区块链运行方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图8所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器801为例。

存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的区块链运行方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的区块链运行方法。

存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的区块链运行方法对应的程序指令/模块(例如,附图5所示的预执行结果得到模块501、第一结果签名得到模块502和结果数据反馈模块503;或者附图6所示的:预执行请求发起模块601和验证事务请求发起模块602;或者附图7所示的验证事务请求接收模块701和验证事务请求响应模块702)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的区块链运行方法。

存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现区块链运行方法的电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至实现区块链运行方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实现区块链运行方法的电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图8中以通过总线连接为例。

输入装置803可接收输入的数字或字符信息,以及产生与实现区块链运行方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。

根据本申请实施例的技术方案,借助背书节点进行预执行请求的执行,得到预执行结果,从而保障了预执行结果的准确性;由背书节点对预执行结果采用客户端的账户密钥进行签名,为验证节点对预执行结果的验证提供了数据支撑,从而使得验证节点无需进行目标智能合约的重新载入和执行,提高了验证效率;采用第一结果签名进行智能合约的预执行结果的验证,能够适配包含背书节点的区块链系统,通用性好。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1