一种任务执行方法和装置以及分布式计算系统制造方法及图纸

技术编号:31681492 阅读:11 留言:0更新日期:2022-01-01 10:27
本发明专利技术公开了一种任务执行方法和装置以及分布式计算系统,涉及分布式计算技术领域。该方法的一具体实施方式包括:申请到可执行任务后,将可执行任务的计算程序和任务输入信息加载到区块链的可信执行环境,在可信执行环境中执行计算程序以得到任务计算结果,并对任务输入信息和任务计算结果签名得到签名结果数据,通过区块链根据签名结果数据确定可执行任务被实际执行且任务计算结果可信,将任务计算结果保存在区块链。该实施方式能够保证分布式计算程序的运行环境安全性,避免分布式计算程序恶意访问或破坏参与者计算机,实现对任务确实得到执行以及计算结果可信性的验证,提高资源利用率且降低计算成本,提高区块链节点参与积极性。积极性。积极性。

【技术实现步骤摘要】
一种任务执行方法和装置以及分布式计算系统


[0001]本专利技术涉及分布式计算
,尤其涉及一种任务执行方法和装置以及分布式计算系统。

技术介绍

[0002]随着互联网的发展,信息化程度越来越高,产生了大量的数据需要通过计算机进行处理,然而单一计算机的算力总是有限的,因此分布式计算的产生就很有必要。目前分布式计算系统通常是由具有一定经济实力的机构或个人采用计算机集群来提升算力的方式进行建设(方案一),或者由机构发布分布式计算任务,由合作机构或者个人参与分布式计算(方案二)。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:
[0004]现有方案一建设成本高,同时由于算力需求并不总是高负荷的,就会导致算力闲置从而产生浪费;现有方案二无法保证分布式计算程序的运行环境的安全性,无法避免分布式计算程序恶意访问或破坏参与者计算机,且对于分布式计算的结果无法验证,即无法验证参与者是否真正执行了分布式计算程序,还存在伪造计算结果的可能性,并且社会闲置资源参与积极度不高。

技术实现思路

[0005]有鉴于此,本专利技术实施例提供一种任务执行方法和装置以及分布式计算系统,能够克服建设成本高、算力因闲置而浪费的缺陷,并保证分布式计算程序的运行环境安全性,可避免分布式计算程序恶意访问或破坏参与者的计算机,并且可实现对任务确实得到执行以及计算结果可信性的验证,且节省验证所耗的资源,提高资源利用率且降低计算成本,还可提高区块链节点的参与积极性。
[0006]为实现上述目的,根据本专利技术实施例的一个方面,提供了一种任务执行方法。
[0007]一种任务执行方法,包括:申请区块链上的可执行任务,并在申请到所述可执行任务后,从所述区块链获取所述可执行任务的计算程序和任务输入信息;将所述计算程序和所述任务输入信息加载到所述区块链的可信执行环境,在所述可信执行环境中,执行所述计算程序以得到任务计算结果,并对所述任务输入信息和所述任务计算结果进行签名,得到签名结果数据;将所述签名结果数据发送到所述区块链,通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,然后将所述任务计算结果保存在所述区块链。
[0008]可选地,所述从所述区块链获取所述可执行任务的计算程序和任务输入信息,包括:从写入智能合约的任务信息中得到所述计算程序的下载地址和所述任务输入信息,并根据所述计算程序的下载地址得到所述计算程序,其中,所述任务信息是任务发布方在将所述可执行任务发布到所述区块链时写入所述智能合约的。
[0009]可选地,所述写入智能合约的任务信息还包括所述计算程序的哈希值;所述将所
述计算程序和所述任务输入信息加载到所述区块链的可信执行环境之前,包括:对所述计算程序进行哈希运算,并确定所述哈希运算的结果与从所述写入智能合约的任务信息中获取的所述计算程序的哈希值比对一致。
[0010]可选地,所述写入智能合约的任务信息还包括所述可执行任务的任务标识;所述将所述签名结果数据发送到所述区块链,包括:在得到所述签名结果数据后,生成第一合约交易,并将所述第一合约交易发送到所述区块链,所述第一合约交易的信息包括所述可执行任务的任务标识、所述签名结果数据。
[0011]可选地,所述写入智能合约的任务信息还包括所述可执行任务对应的公钥;所述签名结果数据包括所述任务计算结果、所述任务计算结果的签名和所述任务输入信息的签名;通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,包括:通过所述智能合约根据所述可执行任务的任务标识,查询得到所述任务输入信息和所述可执行任务对应的公钥,并利用查询到的所述任务输入信息和所述可执行任务对应的公钥,验证所述任务输入信息的签名,在所述任务输入信息的签名正确的情况下,确定所述可执行任务被实际执行,并在确定所述可执行任务被实际执行后,利用所述可执行任务对应的公钥验证所述任务计算结果的签名,在所述任务计算结果的签名正确的情况下,确定所述任务计算结果可信。
[0012]可选地,所述写入智能合约的任务信息还包括所述可执行任务对应的公钥;所述签名结果数据包括对所述任务输入信息和所述任务计算结果的整体签名、所述任务计算结果;通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,包括:通过所述智能合约根据所述可执行任务的任务标识,查询得到所述可执行任务对应的公钥,并利用查询到的所述可执行任务对应的公钥,验证所述任务输入信息和所述任务计算结果的整体签名,在所述整体签名正确的情况下,确定所述可执行任务被实际执行且所述任务计算结果可信。
[0013]可选地,所述第一合约交易的信息还包括任务执行方标识;所述方法还包括:通过向所述区块链发送第二合约交易来申请所述可执行任务,所述第二合约交易的信息包括任务申请方标识和所述可执行任务的任务标识;通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信之前,所述方法还包括:通过所述智能合约根据所述可执行任务的任务标识,查询对应的所述任务申请方标识和所述任务执行方标识,并确定所述任务申请方标识和任务执行方标识比对一致。
[0014]可选地,所述对所述任务输入信息和所述任务计算结果进行签名,包括:利用预先内置在所述可执行任务的计算程序中的私钥,对所述任务输入信息和所述任务计算结果分别进行签名,或者,以所述任务输入信息和所述任务计算结果作为整体进行签名。
[0015]可选地,所述写入智能合约的任务信息还包括所述可执行任务对应的任务权利;将所述任务计算结果保存在所述区块链之后,所述方法还包括:接收所述区块链通过所述智能合约发放的所述任务权利。
[0016]根据本专利技术实施例的另一方面,提供了一种任务执行装置。
[0017]一种任务执行装置,包括:任务申请模块,用于申请区块链上的可执行任务,并在申请到所述可执行任务后,从所述区块链获取所述可执行任务的计算程序和任务输入信息;任务执行模块,用于将所述计算程序和所述任务输入信息加载到所述区块链的可信执
行环境,在所述可信执行环境中,执行所述计算程序以得到任务计算结果,并对所述任务输入信息和所述任务计算结果进行签名,得到签名结果数据;将所述签名结果数据发送到所述区块链,通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,然后将所述任务计算结果保存在所述区块链。
[0018]可选地,所述任务执行模块还用于:从写入智能合约的任务信息中得到所述计算程序的下载地址和所述任务输入信息,并根据所述计算程序的下载地址得到所述计算程序,其中,所述任务信息是任务发布方在将所述可执行任务发布到所述区块链时写入所述智能合约的。
[0019]可选地,所述写入智能合约的任务信息还包括所述计算程序的哈希值;所述任务执行模块还用于:对所述计算程序进行哈希运算,并确定所述哈希运算的结果与从所述写入智能合约的任务信息中获取的所述计算程序的哈希值本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务执行方法,其特征在于,包括:申请区块链上的可执行任务,并在申请到所述可执行任务后,从所述区块链获取所述可执行任务的计算程序和任务输入信息;将所述计算程序和所述任务输入信息加载到所述区块链的可信执行环境,在所述可信执行环境中,执行所述计算程序以得到任务计算结果,并对所述任务输入信息和所述任务计算结果进行签名,得到签名结果数据;将所述签名结果数据发送到所述区块链,通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,然后将所述任务计算结果保存在所述区块链。2.根据权利要求1所述的方法,其特征在于,所述从所述区块链获取所述可执行任务的计算程序和任务输入信息,包括:从写入智能合约的任务信息中得到所述计算程序的下载地址和所述任务输入信息,并根据所述计算程序的下载地址得到所述计算程序,其中,所述任务信息是任务发布方在将所述可执行任务发布到所述区块链时写入所述智能合约的。3.根据权利要求2所述的方法,其特征在于,所述写入智能合约的任务信息还包括所述计算程序的哈希值;所述将所述计算程序和所述任务输入信息加载到所述区块链的可信执行环境之前,包括:对所述计算程序进行哈希运算,并确定所述哈希运算的结果与从所述写入智能合约的任务信息中获取的所述计算程序的哈希值比对一致。4.根据权利要求2所述的方法,其特征在于,所述写入智能合约的任务信息还包括所述可执行任务的任务标识;所述将所述签名结果数据发送到所述区块链,包括:在得到所述签名结果数据后,生成第一合约交易,并将所述第一合约交易发送到所述区块链,所述第一合约交易的信息包括所述可执行任务的任务标识、所述签名结果数据。5.根据权利要求4所述的方法,其特征在于,所述写入智能合约的任务信息还包括所述可执行任务对应的公钥;所述签名结果数据包括所述任务计算结果、所述任务计算结果的签名和所述任务输入信息的签名;通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,包括:通过所述智能合约根据所述可执行任务的任务标识,查询得到所述任务输入信息和所述可执行任务对应的公钥,并利用查询到的所述任务输入信息和所述可执行任务对应的公钥,验证所述任务输入信息的签名,在所述任务输入信息的签名正确的情况下,确定所述可执行任务被实际执行,并在确定所述可执行任务被实际执行后,利用所述可执行任务对应的公钥验证所述任务计算结果的签名,在所述任务计算结果的签名正确的情况下,确定所述任务计算结果可信。6.根据权利要求4所述的方法,其特征在于,所述写入智能合约的任务信息还包括所述可执行任务对应的公钥;
所述签名结果数据包括对所述任务输入信息和所述任务计算结果的整体签名、所述任务计算结果;通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,包括:通过所述智能合约根据所述可执行任务的任务标识,查询得到所述可执行任务对应的公钥,并利用查询到的所述可执行任务对应的公钥,验证所述任务输入信息和所述任务计算结果的整体签名,在所述整体签名正确的情况下,确定所述可执行任务被实际执行且所述任务计算结果可信。7.根据权利要求4所述的方法,其特征在于,所述第一合约交易的信息还包括任务执行方标识;所述方法还包括:通过向所述区块链发送第二合约交易来申请所述可执行任务,所述第二合约交易的信息包括任务申请方标识和所述可执行任务的任务标识;通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信之前,所述方法还包括:通过所述智能合约根据所述可执行任务的任务标识,查询对应的所述任务申请方标识和所述任务执行方标识,并确定所述任务申请方标识和任务执行方标识比对一致。8.根据权利要求1所述的方法,其特征在于,所述对所述任务输入信息和所述任务计算结果进行签名,包括:利用预先内置在所述可执行任务的计算程序中的私钥,对所述任务输入信息和所述任务计算结果分别进行签名,或者,以所述任务输入信息和所述任务计算结果作为整体进行签名。9.根据权利要求2所述的方法,其特征在于,所述写入智能合约的任务信息还包括所述可执行任务对应的任务权利;将所述任务计算结果保存在所述区块链之后,所述方法还包括:接收所述区块链通过所述智能合约发放的所述任务权利。10.一种任务执行装置,其特征在于,包括:任务申请模块,用于申请区块链上的可执行任务,并在申请到所述可执行任务后,从所述区块链获取所述可执行任务的计算程序和任务输入信息;任务执行模块,用于将所述计算程序和所述任务输入信息加载到所述区块链的可信执行环境,在所述可信执行环境中,执行所述计算程序以得到任务计算结果,并对所述任务输入信息和所述任务计算结果进行签名,得到签名结果数据;将所述签名结果数据发送到所述区块链,通过所述区块链根据所述签名结果数据确定所述可执行任务被实际执行且所述任务计算结果可信,然后将所述任务计算结果保存在所述区块链。11.根据权利要求10所述的装置,其特征在于,所述任务执行模块还用于:从写入智能合约的任务信息中得到所述计算程序的下载地址和所述任务输入信息,并根据所述计算程序的下载地址得到所述计算程序,其中,所述任务信息是任务发布方在将所述可执行任务发布到所述区块链时写入所述智能合约的。12.根据权利要求11所述的装置,其特征在于,所述写入智能合约的任务信息还包括所述计算程序的...

【专利技术属性】
技术研发人员:刘自强钱友才
申请(专利权)人:中国人民银行数字货币研究所
类型:发明
国别省市:

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

1