CN110532036A - 程序验证方法、装置、计算设备及计算机存储介质 - Google Patents

程序验证方法、装置、计算设备及计算机存储介质 Download PDF

Info

Publication number
CN110532036A
CN110532036A CN201910680976.0A CN201910680976A CN110532036A CN 110532036 A CN110532036 A CN 110532036A CN 201910680976 A CN201910680976 A CN 201910680976A CN 110532036 A CN110532036 A CN 110532036A
Authority
CN
China
Prior art keywords
program
result
validation code
code
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910680976.0A
Other languages
English (en)
Inventor
张海涛
余洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yunwan Technology (jiaxing) Co Ltd
Original Assignee
Yunwan Technology (jiaxing) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yunwan Technology (jiaxing) Co Ltd filed Critical Yunwan Technology (jiaxing) Co Ltd
Priority to CN201910680976.0A priority Critical patent/CN110532036A/zh
Publication of CN110532036A publication Critical patent/CN110532036A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及云计算技术领域,公开了一种程序验证方法、装置、计算设备及计算机存储介质,方法包括:源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证。通过上述方式,本发明实施例使得在第三方计算机中执行程序时能够获得可靠的信任,不需要复制程序,降低了成本。

Description

程序验证方法、装置、计算设备及计算机存储介质
技术领域
本发明实施例涉及云计算技术领域,具体涉及一种程序验证方法、装置、计算设备及计算机存储介质。
背景技术
大多数计算机在其***中执行程序时,会假设计算机完全控制***中的程序,程序将在该***上正常执行。
在云计算领域,该假设仍然如此,用户信任云服务提供商来执行程序。然而,在去中心化场景的第三方“租用”计算机中进行程序执行时,前面的假设不能成立。例如在程序执行过程中,可以暂停、中止超出其假定的执行路径的程序。
在现有技术中,源节点将任务分发至第三方计算机并获取第三方计算机的程序执行结果,源节点不知道第三方计算机程序的执行情况。
发明内容
鉴于上述问题,本发明实施例提供了一种程序验证方法、装置、计算设备及计算机存储介质,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种程序验证方法,所述方法包括:源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证。
在一种可选的方式中,所述验证代码为程序代码,所述程序的运行结果中包括所述程序代码的执行结果;所述对所述验证代码的执行结果进行验证,包括:将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。
在一种可选的方式中,所述验证代码为带记忆功能的参数,所述程序的运行结果包括所述参数的记忆功能;所述对所述验证代码的执行结果进行验证,包括:通过马尔可夫状态转换验证所述参数的记忆功能。
在一种可选的方式中,所述对所述验证代码的执行结果进行验证,还包括:如果验证不通过,则进一步通过一仲裁节点进行验证;如果通过验证,则签署并密封,向所述计算节点发放与所述程序对应的奖励。
根据本发明实施例的另一方面,提供了一种程序验证方法,所述方法包括:计算节点接收源节点分发的程序;在所述程序的至少一个检查点处***的验证代码;执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
在一种可选的方式中,所述验证代码为带记忆功能的参数或程序代码,其中,所述参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一,所述程序代码包括本地散列函数,或非函数的计算。
根据本发明实施例的另一方面,提供了一种程序验证装置,所述程序验证装置包括:程序分发单元,用于将程序分发至计算节点;结果获取单元,用于获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;验证单元,用于对所述验证代码的执行结果进行验证。
根据本发明实施例的另一方面,提供了一种程序验证装置,所述程序验证装置包括:接收单元,用于计算节点接收源节点分发的程序;执行单元,用于在所述程序的至少一个检查点处***的验证代码;执行单元,用于执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述程序验证方法的步骤。
根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述程序验证方法的步骤。
本发明实施例的程序验证方法包括;源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的程序验证方法的流程示意图;
图2示出了本发明实施例提供的另一程序验证方法的流程示意图;
图3示出了本发明实施例提供的程序验证方法的检查点***示意图;
图4示出了本发明实施例提供的程序验证装置的结构示意图;
图5示出了本发明实施例提供的另一程序验证装置的结构示意图;
图6示出了本发明实施例提供的计算设备的结构示意图;
图7示出了本发明实施例提供的另一计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的程序验证方法的流程示意图,如图1所示,程序验证方法包括:
步骤S11:源节点将程序分发至计算节点。
在本发明实施例中,源节点将程序分发至计算节点以在计算节点完成与该程序对应的云计算任务。其中,计算节点为任一提供闲置计算能力的计算机。源节点可以是任何想要分发任务的计算机,其中,任务是用于指示执行相关的程序,即完成与所分发的程序对应的云计算任务的计算。
步骤S12:获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果。
计算节点接收到源节点分发的程序之后,在分发的程序中的至少一个检查点处***验证代码。计算节点执行该***了验证代码的程序,完成与该程序对应的云计算任务。计算节点在检查点处执行验证代码时还询问计算节点的签名,即签名执行检查点的验证代码。计算节点在检查点处执行程序时,同时执行验证代码,如此,如果计算节点执行了此检查点处的验证代码,说明计算节点将程序运行至了此检查点处。计算节点将程序的运行结果发送至源节点。该程序的运行结果中包括验证代码的执行结果。验证代码为带记忆功能的参数,其中,该带记忆功能的参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一。带记忆功能的参数是指当前检查点处参数的值或状态与前一个检查点处该参数的值或状态相关,例如,程序计数是在前一个检查点处的基础上继续进行计算的,而当前检查点处变量的值是在前一个检查点处的值的基础上按预设规则得到的。所述验证代码也可以为程序代码,其中,所述程序代码包括本地散列函数,或非函数的计算。对应地,源节点获取计算节点发送的程序的运行结果。验证代码为程序代码时,该程序的运行结果中包括所述程序代码的执行结果。验证代码为带记忆功能的参数时,该程序的运行结果中包括所述参数的记忆功能。
在步骤S12中,所述验证代码为程序代码时,源节点还从计算节点获取所述程序代码的预设结果。具体地,可以是源节点接收计算节点单独发送的所述程序代码的预设结果,也可以是所述程序代码的预设结果包括在程序的运行结果中,源节点获取计算节点对所述程序的运行结果时,即同时获取了所述程序代码的预设结果。
步骤S13:对所述验证代码的执行结果进行验证。
在本发明实施例中,将所述验证代码的执行结果与所述验证代码的预设结果进行比较验证。具体地,针对每一个检查节点,源节点比较执行结果与验证代码的预设结果。对于任一检查点,如果执行结果与验证代码的预设结果相同,则说明计算节点将程序运行到了此检查点处,且运行正确。如果执行结果与验证代码的预设结果不相同,则说明计算节点在此检查点处或之前程序运行缺失或错误,与该程序对应的云计算视为失效。只有所有检查点的验证代码的执行结果与验证代码的预设结果相同,验证才通过;否则验证不通过。如果验证不通过,则说明计算节点程序执行缺失或错误,计算节点的云计算视为无效。
在本发明实施例中,验证代码为程序代码时,源节点将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。对于任一检查点,如果执行结果与程序代码的预设结果相同,则说明计算节点将程序运行到了此检查点处,且运行正确。如果执行结果与程序代码的预设结果不相同,则说明计算节点在此检查点处或之前程序运行缺失或错误,与该程序对应的云计算视为失效。
验证代码为带记忆功能的参数时,源节点通过马尔可夫状态转换验证所述参数的记忆功能。具体地,源节点应用马尔可夫状态验证参数的记忆功能结果,执行程序的跟踪。对于任一检查点,如果通过马尔可夫状态验证,则说明计算节点将程序运行到了此检查点处,且运行正确。如果没有通过马尔可夫状态验证,则说明计算节点在此检查点处或之前程序运行缺失或错误,与该程序对应的云计算视为失效。
如果通过验证,则向所述计算节点发放与所述程序对应的奖励。验证通过时,说明计算节点完整执行了所分发的程序,完成了该程序对应的云计算任务。计算节点同时将程序的执行结果,即云计算结果,验证代码的执行结果以及计算节点的签名传输至源节点。验证通过时,源节点签署分发的任务并密封,同时向计算节点发放与任务相关的奖励。其中该任务用于指示执行对应的程序。奖励可以是与任务相关的金钱和/或积分等,在此不作限制。
如果验证不通过,则进一步通过一仲裁节点进行验证。具体地,通过所述仲裁节点验证所述验证代码的执行结果是否与验证代码的预设结果相同。需要说明的是,可以是任一有权限的计算机节点进行仲裁,也可以是人为进行仲裁,并出具仲裁报文。无论仲裁结果是否有效,仲裁节点将从任务中获得一半或部分奖励。如果计算节点的云计算最终验证不通过,则源节点不向计算节点发放奖励。
本发明实施例的程序验证方法包括;源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
图2示出了本发明实施例提供的程序验证方法的流程示意图,如图2所示,程序验证方法包括:
步骤S21:计算节点接收源节点分发的程序。
在本发明实施例中,源节点将程序分发至计算节点以在计算节点完成与该程序对应的云计算任务。计算节点接收源节点分发的该程序。
步骤S22:在所述程序的至少一个检查点处***的验证代码。
计算节点接收到源节点分发的程序之后,在分发的程序中的至少一个检查点处***验证代码。具体地,计算节点在分发的程序中设置多个检查点,可以在部分检查点处***验证代码,也可以在每个检查点处***验证代码。如图3所示,检查点可以位于所述程序的开头、结尾或中间的任一位置。
在本发明实施例中,所述验证代码为带记忆功能的参数,其中,该带记忆功能的参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一。带记忆功能的参数是指当前检查点处参数的值或状态与前一个检查点处该参数的值或状态相关,例如,程序计数是在前一个检查点处的基础上继续进行计算的,而当前检查点处变量的值是在前一个检查点处的值的基础上按预设规则得到的。所述验证代码也可以为程序代码,其中,所述程序代码包括本地散列函数,或非函数的计算。
步骤S23:执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
计算节点执行该***了验证代码的程序,完成与该程序对应的云计算任务。计算节点执行分发的完整程序以及验证代码。计算节点在检查点处执行验证代码时还询问计算节点的签名,即签名执行检查点的验证代码。计算节点在检查点处执行程序时,同时执行验证代码,如此,如果计算节点执行了此检查点处的验证代码,说明计算节点将程序运行至了此检查点处。计算节点将程序的运行结果返回至源节点。验证代码为程序代码时,该程序的运行结果中包括所述程序代码的执行结果。验证代码为带记忆功能的参数时,该程序的运行结果中包括所述参数的记忆功能。
在本发明实施例中,源节点接收到计算节点返回的程序的运行结果,并进行验证。验证代码为程序代码时,该程序的运行结果中包括所述程序代码的执行结果。源节点将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。如果执行结果与程序代码的预设结果相同,则说明计算节点将程序运行到了此检查点处,且运行正确。如果执行结果与程序代码的预设结果不相同,则说明计算节点在此检查点处或之前程序运行缺失或错误,与该程序对应的云计算视为失效。验证代码为带记忆功能的参数时,该程序的运行结果中包括所述参数的记忆功能。源节点通过马尔可夫状态转换验证所述参数的记忆功能。如果通过马尔可夫状态验证,则说明计算节点将程序运行到了此检查点处,且运行正确。如果没有通过马尔可夫状态验证,则说明计算节点在此检查点处或之前程序运行缺失或错误,与该程序对应的云计算视为失效。
如果通过验证,则计算节点接收源节点发放的与所述程序对应的奖励。奖励可以是与任务相关的金钱和/或积分等,在此不作限制。如果验证不通过,则进一步源节点通过一仲裁节点进行验证。具体地,源节点通过所述仲裁节点验证所述验证代码的执行结果是否与验证代码的预设结果相同。需要说明的是,可以是任一有权限的计算机节点进行仲裁,也可以是人为进行仲裁,并出具仲裁报文。无论仲裁结果是否有效,仲裁节点将从任务中获得一半或部分奖励。如果计算节点的云计算最终验证不通过,则不能获得源节点发放的奖励。如果通过仲裁节点的验证,则计算节点获得源节点发放的与所述程序对应的奖励的一半,仲裁节点获得另一半奖励。
本发明实施例的程序验证方法包括;计算节点接收源节点分发的程序;在所述程序的至少一个检查点处***的验证代码;执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
图4示出了本发明实施例的程序验证装置的结构示意图,该程序验证装置应用于云计算的任一源节点。如图4所示,该程序验证装置包括:程序分发单元41、结果获取单元42以及验证单元43。
程序分发单元41用于将程序分发至计算节点;结果获取单元42用于获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;验证单元43用于对所述验证代码的执行结果进行验证。
在一种可选的方式中,所述验证代码为程序代码,所述程序的运行结果中所述程序代码的执行结果;验证单元43用于将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。
在一种可选的方式中,所述验证代码为带记忆功能的参数,所述程序的运行结果中所述参数的记忆功能;验证单元43用于通过马尔可夫状态转换验证所述参数的记忆功能。
在一种可选的方式中,验证单元43用于如果验证不通过,则进一步通过一仲裁节点进行验证;如果通过验证,则向所述计算节点发放与所述程序对应的奖励。
本发明实施例的程序验证方法包括;源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
图5示出了本发明实施例的程序验证装置的结构示意图,该程序验证装置应用于云计算的任一计算节点。如图5所示,该程序验证装置包括:接收单元51、***单元52以及执行单元53。
接收单元51用于计算节点接收源节点分发的程序;***单元52用于在所述程序的至少一个检查点处***的验证代码;执行单元53用于执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
在一种可选的方式中,所述验证代码为带记忆功能的参数或者程序代码,其中,所述参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一,所述程序代码包括本地散列函数,或非函数的计算。
本发明实施例的程序验证方法包括;计算节点接收源节点分发的程序;在所述程序的至少一个检查点处***的验证代码;执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的程序验证方法。
可执行指令具体可以用于使得处理器执行以下操作:
源节点将程序分发至计算节点;
获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;
对所述验证代码的执行结果进行验证。
在一种可选的方式中,所述验证代码为程序代码,所述程序的运行结果中包括所述程序代码的执行结果;所述可执行指令使所述处理器执行以下操作:
将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。
在一种可选的方式中,所述验证代码为带记忆功能的参数,所述程序的运行结果包括所述参数的记忆功能;所述可执行指令使所述处理器执行以下操作:
通过马尔可夫状态转换验证所述参数的记忆功能。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
如果验证不通过,则进一步通过一仲裁节点进行验证;
如果通过验证,则向所述计算节点发放与所述程序对应的奖励。
本发明实施例的程序验证方法包括;源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的程序验证方法。
可执行指令具体可以用于使得处理器执行以下操作:
计算节点接收源节点分发的程序;
在所述程序的至少一个检查点处***的验证代码;
执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
在一种可选的方式中,所述验证代码为带记忆功能的参数或者程序代码,其中,所述参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一,所述程序代码包括本地散列函数,或非函数的计算。
本发明实施例的程序验证方法包括;计算节点接收源节点分发的程序;在所述程序的至少一个检查点处***的验证代码;执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
图6示出了本发明设备实施例的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
如图6所示,该设备可以包括:处理器(processor)602、通信接口(CommunicationsInterface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述程序验证方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:
源节点将程序分发至计算节点;
获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;
对所述验证代码的执行结果进行验证。
在一种可选的方式中,所述验证代码为程序代码,所述程序的运行结果中包括所述程序代码的执行结果;所述程序610使所述处理器执行以下操作:
将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。
在一种可选的方式中,所述验证代码为带记忆功能的参数,所述程序的运行结果包括所述参数的记忆功能;所述程序610使所述处理器执行以下操作:
通过马尔可夫状态转换验证所述参数的记忆功能。
在一种可选的方式中,所述程序610使所述处理器执行以下操作:
如果验证不通过,则进一步通过一仲裁节点进行验证;
如果通过验证,则向所述计算节点发放与所述程序对应的奖励。
本发明实施例的程序验证方法包括;源节点将程序分发至计算节点;获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;对所述验证代码的执行结果进行验证,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
图7示出了本发明设备实施例的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
如图7所示,该设备可以包括:处理器(processor)702、通信接口(CommunicationsInterface)704、存储器(memory)706、以及通信总线708。
其中:处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。通信接口704,用于与其它设备比如客户端或其它服务器等的网元通信。处理器702,用于执行程序710,具体可以执行上述程序验证方法实施例中的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702执行以下操作:
计算节点接收源节点分发的程序;
在所述程序的至少一个检查点处***的验证代码;
执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
在一种可选的方式中,所述验证代码为带记忆功能的参数或者程序代码,其中,所述参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一,所述程序代码包括本地散列函数,或非函数的计算。
本发明实施例的程序验证方法包括;计算节点接收源节点分发的程序;在所述程序的至少一个检查点处***的验证代码;执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果,能够根据设备翻转方向设置不同触发事件,使更加符合用户的操作习惯,提升了用户体验。
在此提供的算法或显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (10)

1.一种程序验证方法,其特征在于,所述方法包括:
源节点将程序分发至计算节点;
获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;
对所述验证代码的执行结果进行验证。
2.如权利要求1所述的方法,其特征在于,所述验证代码为程序代码,所述程序的运行结果中包括所述程序代码的执行结果;
所述对所述验证代码的执行结果进行验证,包括:将所述程序代码的执行结果与所述程序代码的预设结果进行比较验证。
3.如权利要求1所述的方法,其特征在于,所述验证代码为带记忆功能的参数,所述程序的运行结果包括所述参数的记忆功能;
所述对所述验证代码的执行结果进行验证,包括:通过马尔可夫状态转换验证所述参数的记忆功能。
4.如权利要求1所述的方法,其特征在于,所述对所述验证代码的执行结果进行验证,还包括:
如果验证不通过,则进一步通过一仲裁节点进行验证;
如果通过验证,则向所述计算节点发放与所述程序对应的奖励。
5.一种程序验证方法,其特征在于,所述方法包括:
计算节点接收源节点分发的程序;
在所述程序的至少一个检查点处***的验证代码;
执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
6.如权利要求5所述的方法,其特征在于,所述验证代码为带记忆功能的参数或者程序代码,其中,所述参数为堆栈参数,包括程序计数、变量、堆栈深度的其中之一,所述程序代码包括本地散列函数,或非函数的计算。
7.一种程序验证装置,其特征在于,所述装置包括:
程序分发单元,用于将程序分发至计算节点;
结果获取单元,用于获取所述计算节点对所述程序的运行结果,其中,所述程序的运行结果中包括所述计算节点在所述程序的至少一个检查点处***的验证代码的执行结果;
验证单元,用于对所述验证代码的执行结果进行验证。
8.一种程序验证装置,其特征在于,所述装置包括:
接收单元,用于计算节点接收源节点分发的程序;
***单元,用于在所述程序的至少一个检查点处***的验证代码;
执行单元,用于执行所述程序,并将所述程序的运行结果返回至所述源节点以进行验证,其中,所述程序的运行结果包括所述验证代码的执行结果。
9.一种计算设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1-4中任一项或5-6中任一项所述的程序验证方法的步骤。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行根据权利要求1-4中任一项或5-6中任一项所述的程序验证方法的步骤。
CN201910680976.0A 2019-07-26 2019-07-26 程序验证方法、装置、计算设备及计算机存储介质 Pending CN110532036A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910680976.0A CN110532036A (zh) 2019-07-26 2019-07-26 程序验证方法、装置、计算设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910680976.0A CN110532036A (zh) 2019-07-26 2019-07-26 程序验证方法、装置、计算设备及计算机存储介质

Publications (1)

Publication Number Publication Date
CN110532036A true CN110532036A (zh) 2019-12-03

Family

ID=68661824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910680976.0A Pending CN110532036A (zh) 2019-07-26 2019-07-26 程序验证方法、装置、计算设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN110532036A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039187A1 (en) * 2003-08-12 2005-02-17 Avakian Arra E. Instrumenting java code by modifying bytecodes
CN101446905A (zh) * 2008-12-29 2009-06-03 北京飞天诚信科技有限公司 编译方法及编译器
CN101533454A (zh) * 2009-04-14 2009-09-16 北京飞天诚信科技有限公司 编译方法以及编译器
CN102053906A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于收集程序运行时信息的***和方法
CN106776208A (zh) * 2016-12-02 2017-05-31 中国航天***科学与工程研究院 一种软件运行时故障定位方法
CN109710492A (zh) * 2018-12-29 2019-05-03 北方工业大学 应用程序运行监控方法、介质及电子设备
TW201924278A (zh) * 2017-11-09 2019-06-16 安地卡及巴布達商區塊鏈控股有限公司 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039187A1 (en) * 2003-08-12 2005-02-17 Avakian Arra E. Instrumenting java code by modifying bytecodes
CN101446905A (zh) * 2008-12-29 2009-06-03 北京飞天诚信科技有限公司 编译方法及编译器
CN101533454A (zh) * 2009-04-14 2009-09-16 北京飞天诚信科技有限公司 编译方法以及编译器
CN102053906A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 用于收集程序运行时信息的***和方法
CN106776208A (zh) * 2016-12-02 2017-05-31 中国航天***科学与工程研究院 一种软件运行时故障定位方法
TW201924278A (zh) * 2017-11-09 2019-06-16 安地卡及巴布達商區塊鏈控股有限公司 用以使用調解方電腦系統來確保電腦程式正確執行的系統與方法
CN109710492A (zh) * 2018-12-29 2019-05-03 北方工业大学 应用程序运行监控方法、介质及电子设备

Similar Documents

Publication Publication Date Title
CN106339875B (zh) 基于公有区块链的操作记录审查方法及装置
CN111045756B (zh) 生成接口服务的方法、装置、计算设备和介质
Whitnall et al. A critical analysis of ISO 17825 (‘testing methods for the mitigation of non-invasive attack classes against cryptographic modules’)
Maâlej et al. A Model Based Approach to Combine Load and Functional Tests for Service Oriented Architectures.
CN107077557A (zh) 软件应用程序发布和验证的方法及装置
US9558106B1 (en) Testing service with control testing
CN103020826B (zh) 支付处理方法和服务器
CN110111104A (zh) 区块链智能合约实现方法、装置、计算机设备和存储介质
CN109377338A (zh) 基于区块链的金融产品处理方法及装置
CN109240908A (zh) 异常测试用例模板创建方法及装置
CN107784579A (zh) 制证方法、装置、存储介质和计算机设备
CN110275818A (zh) 测试程序生成方法、装置及存储介质
CN109067746A (zh) 客户端与服务器之间的通信方法及装置
CN106326102A (zh) 测试方法和装置
CN104699619B (zh) 线上测试的方法和装置
CN110532036A (zh) 程序验证方法、装置、计算设备及计算机存储介质
US20170220449A1 (en) Infrastructure rule generation
CN110413345A (zh) 程序验证方法、装置、计算设备及计算机存储介质
Lyu et al. {MINER}: A Hybrid {Data-Driven} Approach for {REST}{API} Fuzzing
Watanabe et al. Generalized spot-checking for reliable volunteer computing
US10503633B2 (en) Symbolic execution of alternative branches
CN111666219B (zh) 业务功能的验证方法和装置、计算机***和存储介质
CN109800565A (zh) 软件升级方法及终端设备
CN109472148B (zh) 加载热补丁的方法、装置和存储介质
CN112862466A (zh) 一种资源转移的方法及结账终端、服务器节点

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination