CN112540857A - 处理工作量证明计算任务的方法、装置和系统 - Google Patents

处理工作量证明计算任务的方法、装置和系统 Download PDF

Info

Publication number
CN112540857A
CN112540857A CN201910899876.7A CN201910899876A CN112540857A CN 112540857 A CN112540857 A CN 112540857A CN 201910899876 A CN201910899876 A CN 201910899876A CN 112540857 A CN112540857 A CN 112540857A
Authority
CN
China
Prior art keywords
processing
workload
shared memory
sending
module
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
CN201910899876.7A
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.)
Bitmain Technologies Inc
Original Assignee
Bitmain Technologies Inc
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 Bitmain Technologies Inc filed Critical Bitmain Technologies Inc
Priority to CN201910899876.7A priority Critical patent/CN112540857A/zh
Publication of CN112540857A publication Critical patent/CN112540857A/zh
Pending legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本申请提供了一种处理工作量证明计算任务的方法,可以由通信模块执行,该方法包括:从工作量证明算力集合平台获取工作量证明计算任务;向处理模块发送工作量证明计算任务;从处理模块接收工作量证明计算任务的处理结果;向工作量证明算力集合平台发送处理结果。上述方法中,通信模块和处理模块为两个互相独立的模块,该两个模块可以通过系统调用或者共享内存进行通信。当包含开源代码的通信模块升级时,无需更改处理模块的代码;当处理设备的硬件更新时,只需要微调处理模块的代码,无需更改通信模块的代码。从而提高了代码的利用率,节约研发周期和用户的升级成本。

Description

处理工作量证明计算任务的方法、装置和系统
技术领域
本申请涉及计算机领域,具体涉及一种处理工作量证明计算任务的方法、装置和系统。
背景技术
数字凭证是一种应用区块链技术的信息,能够在一定程度上提高网络信息的安全性。数字凭证系统每隔一段时间会生成一些信息,这些信息需要被记录,生成数字凭证;并且,新生成的数字凭证需要被串联在之前的数字凭证上,每个数字凭证可以被称为一个区块,多个串联的数字凭证可以被称为区块链。
每个用户都有机会记录一段时间内的数字凭证系统生成的信息,用户可以通过计算机运行特定的算法计算工作量证明计算任务的哈希值,随后,该计算机向整个数字凭证系统广播获得的哈希值。若该哈希值通过数字凭证系统中一定数量的节点的验证,则数字凭证系统中第一个计算出工作量证明计算任务的哈希值的用户获取该段时间内的数字凭证的记录权。
为了提高计算哈希值的效率,用户需要不断升级数字凭证的处理设备,以提高算力。然而,频繁升级处理设备为用户带来较大的成本压力,因此,如何减小升级处理设备的成本是当前需要解决的问题。
发明内容
本申请提供了一种处理工作量证明计算任务的方法、装置和系统,能够减小升级处理设备的成本。
第一方面,提供了一种处理工作量证明计算任务的方法,包括:目标客户端的通信模块从工作量证明算力集合平台获取工作量证明计算任务,所述工作量证明算力集合用于向多个客户端发送工作量证明计算任务,所述目标客户端为所述多个客户端中的任意一个客户端,所述目标客户端包括通信模块和处理模块;所述通信模块向所述处理模块发送所述工作量证明计算任务,所述处理模块用于确定所述工作量证明计算任务的处理结果;所述通信模块从所述处理模块接收所述工作量证明计算任务的处理结果;所述通信模块向所述工作量证明算力集合平台发送所述处理结果,所述工作量证明算力集合平台用于根据所述处理结果确定所述第一客户端是否获取到目标时段内的信息的记录权。
第二方面,提供了另一种处理工作量证明计算任务的方法,包括:目标客户端的处理模块从通信模块获取工作量证明计算任务,所述目标客户端包括通信模块和处理模块;所述处理模块处理所述工作量证明计算任务,获取处理结果;所述处理模块向所述通信模块发送所述处理结果,以便于工作量证明算力集合平台根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
第三方面,提供了一种处理工作量证明计算任务的装置,用于执行上述第一方面的方法。具体地,该装置包括用于执行第一方面中的方法的功能模块。
第四方面,提供了另一种处理工作量证明计算任务的装置,用于执行上述第二方面的方法。具体地,该装置包括用于执行第二方面中的方法的功能模块。
第五方面,提供了一种处理工作量证明计算任务的系统,包括第三方面所述的装置和第四方面所述的装置。
第六方面,提供了一种终端设备,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述第一方面和/或第二方面中的方法。
第七方面,提供了一种服务器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述第一方面和/或第二方面中的方法。
第八方面,提供了一种芯片,用于执行上述第一方面和/或第二方面中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备用于执行上述第一方面和/或第二方面中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面和/或第二方面中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面和/或第二方面中的方法。
在本申请提供的处理工作量证明计算任务的方法中,通信模块和处理模块为两个互相独立的模块,该两个模块可以通过系统调用或者共享内存进行通信;当通信模块或者处理模块可以升级时,用户只需要更新数字凭证的处理设备的部分模块即可。例如,当包含开源代码的通信模块升级时,无需更改处理模块的代码;当处理设备的硬件更新时,只需要微调处理模块的代码,无需更改通信模块的代码。从而提高了代码的利用率,节约研发周期和用户的升级成本。
附图说明
图1是一种适用于本申请的数字凭证系统的示意图;
图2是本申请提供的一种处理工作量证明计算任务的方法的示意图;
图3是本申请提供的处理工作量证明计算任务的系统的通信方法的示意图;
图4是本申请提供的一种处理工作量证明计算任务的装置的示意图;
图5是本申请提供的另一种处理工作量证明计算任务的装置的示意图;
图6是本申请提供的一种处理工作量证明计算任务的设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1是一种适用于本申请的数字凭证系统的示意图。
数字凭证系统100包括服务器110和多个客户端(即,数字凭证的处理设备),图1中示出了该多个客户端中的一个,即,客户端120。客户端120与服务器110之间可以通过无线连接(例如,电磁波)通信,也可以通过有线连接(例如,光纤)通信,如图1中的双向箭头所示。
服务器110能够获取一个或多个工作量证明计算任务,并将该一个或多个工作量证明计算任务分配包括客户端120在内的多个客户端,包括客户端120在内的多个客户端共同处理该一个或多个工作量证明计算任务,并将处理结果返回服务器110。由于服务器110能够利用多个客户端的算力完成工作量证明任务,因此,服务器110也可以称为工作量证明算力集合平台。
当数字凭证系统100在时段A内生成的信息需要被记录时,服务器110可以向客户端120发送工作量证明计算任务,工作量证明计算任务可以是一个计算难度较大但计算结果很容易得到验证的数学难题。
客户端120获取工作量证明计算任务之后,可以运行特定的算法计算该数学难题,得到计算结果(例如,哈希值)后向数字凭证系统100广播该计算结果。其中,客户端120可以通过服务器110向数字凭证系统100中的其它客户端广播该计算结果,也可以自己向数字凭证系统100中的其它客户端广播该计算结果。
若该计算结果通过数字凭证系统100中一定数量的客户端的验证,并且,客户端120是数字凭证系统100中第一个计算出该数学难题的结果的客户端,则客户端120可以取时段A内的记录权,记录数字凭证系统100在时段A内生成的信息,得到数字凭证A,并将数字凭证A与时段A之前的数字凭证串联在一起。
由于数字凭证系统100生成的信息可能被数字凭证系统100中任意一个客户端记录,因此,相比于仅由一个或少量几个设备记录信息的数字凭证系统,数字凭证系统100降低了信息被篡改的风险。
需要说明的是,数字凭证系统100仅是适用于本申请的一个示例,适用于本申请的数字凭证系统不限于此。例如,工作量证明算力集合平台也可以作为一个软件模块集成在客户端上,而无需在数字凭证系统中设置服务器;又例如,客户端120可以直接从数字凭证系统100中获取工作量证明计算任务,而无需通过工作量证明算力集合平台获取工作量证明计算任务。
下面,将详细介绍本申请提供的处理工作量证明计算任务的方法。
如图2所示,方法200包括:
S201,目标客户端的通信模块从工作量证明算力集合平台获取工作量证明计算任务。
所述工作量证明算力集合用于向多个客户端发送工作量证明计算任务,所述目标客户端为所述多个客户端中的任意一个客户端,所述目标客户端包括通信模块和处理模块。通信模块可以是软件模块,例如,由开源代码构成的模块;通信模块也可以是硬件模块,例如,逻辑电路;或者,通信模块也可以是软硬结合模块。本申请对通信模块的具体形式不做限定。通信模块能够与工作量证明算力集合平台通信,从工作量证明算力集合平台获取工作量证明计算任务。
S202,通信模块向处理模块发送工作量证明计算任务。
处理模块是数字凭证的处理设备的核心模块,可以是软件模块,例如,内核代码构成的模块;也可以是硬件模块,例如,逻辑电路;还可以是软硬结合的模块。本申请对处理模块的具体形式不做限定。
当处理模块为软件模块时,处理模块可以被编译成系统驱动程序,集成在操作系统(operating system,OS)中,随OS的启动而运行。处理模块能够兼容不同的硬件,当处理模块从通信模块接收到工作量证明计算任务后,可以根据硬件支持的数据类型将工作量证明计算任务封装为该硬件能够识别的数据格式,并将封装后的工作量证明计算任务发送给硬件,由硬件处理该工作量证明计算任务。上述硬件例如可以是中央处理器(centralprocessing unit,CPU)、图形处理器(graphics processing unit,GPU)或者现场可编程门阵列(field programmable gate array,FPGA)。
通信模块与处理模块之间的通信方式可以是系统调用,也可以是共享内容,如图3所示。下面,分别介绍这两种通信方式。
通信方式一,系统调用。
现代计算机中都有几种不同的权限,在高权限下,代码可以执行特权指令,访问任意的物理地址,这种权限的代码可以称为内核态(kernel)代码;而在低权限下,代码的影响范围受到限制,只能在有限的范围内实现特定的功能,这种权限的代码可以称为用户态(user)代码。
组成通信模块的代码通常属于用户态代码,组成处理模块的代码通常属于内核态代码,出于安全考虑,用户态代码无法直接调用内核态代码,但用户态代码可以向OS请求调用内核态代码,这种调用内核态代码的方式即系统调用。
系统调用可以被看作特殊的公共子程序。数字凭证的处理设备中的各种共享资源都由OS统一掌管,因此,凡是与资源有关的用户态代码的操作(如存储分配、输入/输出(input/output,I/O)以及管理文件等),用户态代码都必须通过系统调用方式向OS提出服务请求,并由OS代为完成。
通过系统调用的方式来使用系统功能,可以保证系统的稳定性和安全性,防止用户随意更改或访问系统的数据或命令。系统调用是由OS提供的一个或多个子程序模块实现的。
当通信模块需要向处理模块发送工作量证明计算任务时,通信模块需要运行中断指令(该操作可以视为向OS发送系统调用请求),由用户态进入内核态;此时,系统调用总控程序(OS的一个模块)保存通信模块在用户态下的执行现场,并把通信模块的用户态堆栈转换为内核态堆栈。
随后,通信模块需要获取处理模块的入口地址。通信模块可以通过查找系统调用表(sys_call_table)获取处理模块的系统调用的内存入口地址,其中,处理模块的系统调用相当于处理模块的通信接口,系统调用的内存入口地址即通信接口的地址信息。系统调用表通常保存在eax寄存器中,通信模块可以执行pushl%eax操作,将eax寄存器的值压入内核态堆栈,从而获取系统调用表。
系统调用表保存各种系统调用的内存入口地址,通信模块获取处理模块的系统调用的内存入口地址之后,在该内存入口地址读取运行处理模块的系统调用,处理模块的系统调用例如是磁盘的I/O操作,通信模块执行上述I/O操作将工作量证明计算任务发送给处理模块,例如,将工作量证明计算任务存入ebx、ecx或edx等寄存器中,处理模块的系统调用可以运行保存命令(如SAVE_ALL)将上述寄存器中的工作量证明计算任务压入内核堆栈,以便于处理模块读取工作量证明计算任务。
通信模块通过系统调用向处理模块发送工作量证明计算任务后,可以退出内核态,返回运行中断指令时的用户态执行现场,继续执行用户态操作。
由上可知,处理模块运行在内核态,通过系统调用向处理模块发送工作量证明计算任务具有安全可靠的优点。
通信方式二,共享内存。
共享内存是一种允许两个不相关的进程访问同一个逻辑内存的方法。不同进程之间的共享内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址。如果一个进程向共享内存写入数据,可以访问该共享内存的其它进程均可以读取写入的数据。
当通信模块需要向处理模块发送工作量证明计算任务时,将工作量证明计算任务写入共享内存。随后,通信模块可以通知处理模块从共享内存中读取工作量证明计算任务;或者,通信模块也可以不通知处理模块,而是由处理模块周期性读取共享内存中的工作量证明计算任务。
上述方案中,通信模块直接将工作量证明计算任务写入内存,由处理模块直接访问内存,读取工作量证明计算任务。通信模块无需在用户态和内核态之间切换,相比于通过系统调用进行通信具有通信效率高的优点。
通信模块或者处理模块在创建共享内存时,可以在共享内存的数据结构中加入一个标识位,用于标识共享内存中的内容是否有更新。
例如,上述标识位的状态为“0”,通信模块在共享内存中写入工作量证明计算任务后,可以将该标识位的状态更新为“1”,以指示共享内存中的内容已更新。处理模块读取该标识位,确定该标识位的状态发生变化,从而确定共享内存中的内容已更新,随后可以从共享内存中读取工作量证明计算任务。若通信模块再次在共享内存中写入数据,则通信模块可以将标识位的状态从“1”更新为“0”;或者,若处理模块在共享内存中写入数据,则处理模块可以将标识位的状态从“1”更新为“0”。
上述共享内存可以是物理内存(也可以成为物理空间),也可以是线性内存(也可以成为线性空间)。通常情况下,物理内存的大小是有限的,而程序对内存的需求是无止境的,多个程序对内存的需求往往超出物理内存的大小,因此,可以将线性内存作为共享内存。
线性内存可以通过映射表映射到物理内存上。可以使用两种映射方法将线性内存映射到物理内存,该两种映射方法为变长映射和定长映射。变长映射指的是根据不同的需要,将多个长度不同的页映射到物理内存上。定长映射则是将多个长度相同的页映射到物理内存上。当需要使用线性内存时,可以将线性内存对应的页从磁盘换入物理内存;当不需要使用线性内存时,可以将线性内存对应的页从物理内存换出,放入磁盘。
通常情况下,一个程序中并非所有的代码和数据都能够被经常访问,被经常访问的内容只占全部代码和数据的一部分。因此,将线性内存作为共享内存能够提高物理内存的利用效率。
上述两种通信方式是本申请提供的两个示例,通信模块与处理模块之间的通信方式可以是其它方式。例如,通信模块与处理模块之间还可以通过套接字(socket)进行通信。
以通信模块为例,通信模块可以调用socket函数创建套接字,socket函数通常包括协议族参数、通信类型参数和协议参数;其中,协议族参数用于指示对端(即,处理模块)地址的类型,通信类型参数用于指示通信模块与处理模块之间的通信类型,协议参数用于指示套接字使用的协议为上述协议族中的哪一个协议。
若socket函数调用成功,则通信模块可以获取一个套接字描述符。可选地,通信模块可以调用连接函数为套接字绑定一个地址。随后,通信模块可以调用监听函数将套接字设置为监听状态,等待处理模块的连接;或者,通信模块可以向处理模块发送连接请求,请求建立与处理模块之间的套接字连接。
通信模块与处理模块建立套接字连接后,可以通过该套接字连接发送或接收数据。
通信模块与处理模块之间的通信结束时,通信模块可以调用关闭套接字函数关闭套接字,释放资源。
处理模块获取工作量证明计算任务之后,即可运行程序处理该工作量证明计算任务,即,执行S203,生成处理结果。处理工作量证明计算任务的过程例如是计算数学难题,生成的处理结果例如是哈希值。
随后,处理模块可以执行S204,向通信模块发送上述处理结果。
其中,处理模块可以通知通信模块通过系统调用获取处理结果,以保证数据的安全性,例如,处理模块可以更改寄存器的状态通知通信模块通过系统调用获取处理结果,通信模块通过系统调用获取处理结果的方式可以参考上述通过系统调用发送工作量证明计算任务的过程;处理模块也可以直接将处理结果写入共享内存,以便于通信模块快速获取处理结果,提高用户获得数字凭证的记录权的速率。
通信模块从处理模块获取处理结果后,可以执行S205,将处理结果返回工作量证明算力集合平台,以便于工作量证明算力集合平台向数字凭证系统广播该处理结果。
需要说明的是,本申请不限定通信模块与处理模块的连接关系,二者可以作为一个程序的两个子模块,也可以作为一个系统的两个分离部件。
此外,处理模块还可以维护数字凭证的处理设备的外设。处理模块获取外设的控制策略(例如用户输入的控制命令)后,根据该控制策略向外设发送控制命令,控制外设的运行状态,保证处理设备的长期稳定工作。上述外设例如是电源、传感器和风扇。例如,当处理设备的温度升高时,处理模块可以向风扇发送提速命令,提高风扇的转速;当处理设备的温度降低时,处理模块可以向风扇发送减速命令,降低风扇的转速。
由于方法200中,通信模块和处理模块为两个互相独立的模块,该两个模块可以通过系统调用或者共享内存进行通信;当通信模块或者处理模块可以升级时,用户只需要更新数字凭证的处理设备的部分模块即可。例如,当开源代码需要升级时,由于处理模块不包含开源代码,因此,无需更改处理模块的代码,仅需升级包含开源代码的通信模块;当处理设备的硬件更新时,由于通信模块与硬件解耦,因此,只需要微调处理模块的代码,无需更改通信模块的代码。从而提高了代码的利用率,节约研发周期和用户的升级成本。
上文详细介绍了本申请提供的处理工作量证明计算任务的方法的示例。可以理解的是,处理工作量证明计算任务的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请可以根据上述方法示例对处理工作量证明计算任务的装置进行功能单元的划分,例如,可以将各个功能划分为各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图4是本申请提供的一种处理工作量证明计算任务的装置的结构示意图。该装置400包括发送单元420和接收单元410,发送单元420能够执行发送步骤(或写入步骤),接收单元410能够执行接收步骤(或获取步骤或读取步骤)。
接收单元410用于:从工作量证明算力集合平台获取工作量证明计算任务,所述工作量证明算力集合用于向多个客户端发送工作量证明计算任务;
发送单元420用于:向处理模块发送所述工作量证明计算任务,所述处理模块用于确定所述工作量证明计算任务的处理结果;
接收单元410还用于:从所述处理模块接收所述工作量证明计算任务的处理结果;
发送单元420还用于:向所述工作量证明算力集合平台发送所述处理结果,所述工作量证明算力集合平台用于根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
可选地,发送单元420还用于:向OS发送系统调用请求,所述系统调用请求用于请求调用所述处理模块的通信接口;接收单元410还用于:从所述OS接收所述通信接口的地址信息;发送单元420具体用于:通过根据所述地址信息调用的所述通信接口,向所述处理模块发送所述工作量证明计算任务。
可选地,发送单元420具体用于:将所述工作量证明计算任务写入共享内存,所述共享内存用于所述通信模块的访问和所述处理模块的访问;更新所述共享内存的内容标识,其中,更新后的所述内容标识用于指示所述共享内存存在所述工作量证明计算任务。
可选地,接收单元410具体用于:读取共享内存的内容标识,所述共享内存用于所述通信模块的访问和所述处理模块的访问;当所述内容标识指示所述共享内存存在所述处理结果时,从所述共享内存中读取所述处理结果。
可选地,接收单元410还用于:从所述处理模块接收指示信息,所述指示信息用于指示获取所述处理结果;发送单元420还用于:根据所述指示信息向OS发送系统调用请求,所述系统调用请求用于请求调用所述处理模块的通信接口;接收单元410还用于:从所述OS接收所述通信接口的地址信息;接收单元420具体用于:通过根据所述地址信息调用的所述通信接口,从所述处理模块获取所述处理结果。
可选地,所述共享内存为线性内存。
装置400执行处理工作量证明计算任务的方法的具体过程以及产生的有益效果可以参考方法实施例中的相关描述,在此不再赘述。
图5是本申请提供的另一种处理工作量证明计算任务的装置的结构示意图。该装置500包括处理单元510、发送单元520和接收单元530,发送单元520能够在处理单元510的控制下执行发送步骤(或写入步骤),接收单元530能够在处理单元510的控制下执行接收步骤(或获取步骤或读取步骤)。
接收单元530用于:从通信模块获取工作量证明计算任务;
处理单元510用于:处理所述工作量证明计算任务,获取处理结果;
发送单元520用于:向所述通信模块发送所述处理结果,以便于工作量证明算力集合平台根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
可选地,接收单元530具体用于:通过通信接口从所述通信模块接收所述工作量证明计算任务。
可选地,接收单元530用于:读取共享内存的内容标识;当所述内容标识指示所述共享内存存在所述工作量证明计算任务时,从所述共享内存中读取所述工作量证明计算任务。
可选地,发送单元520具体用于:将所述处理结果写入共享内存;更新所述共享内存的内容标识,其中,更新后的所述内容标识用于指示所述共享内存存在所述处理结果。
可选地,发送单元520具体用于:向所述通信模块发送指示信息,所述指示信息用于指示所述通信模块调用通信接口获取所述处理结果;通过所述通信接口向所述通信模块发送所述处理结果。
可选地,所述共享内存为线性内存。
可选地,处理单元510还用于:根据处理硬件对所述工作量证明计算任务进行转数据格式处理,生成与所述处理硬件的数据格式匹配的处理信息;发送单元520还用于:向所述处理硬件发送所述处理信息。
可选地,接收单元530还用于:获取处理所述工作量证明计算任务的设备的外设的控制策略;发送单元520还用于:根据所述控制策略向所述外设发送控制命令,所述控制命令用于控制所述外设的运行状态。
装置500执行处理工作量证明计算任务的方法的具体过程以及产生的有益效果可以参考方法实施例中的相关描述,在此不再赘述。
图6示出了本申请提供的一种处理工作量证明计算任务的设备的结构示意图。图6中的虚线表示该单元或该模块为可选的。设备600可用于实现上述方法实施例中描述的方法。设备600可以是终端设备或服务器或芯片。
设备600包括一个或多个处理器601,该一个或多个处理器601可支持设备600实现图2至图3所对应方法实施例中的方法。处理器601可以是通用处理器或者专用处理器。例如,处理器601可以是CPU。CPU可以用于对设备600进行控制,执行软件程序,处理软件程序的数据。设备600还可以包括通信单元605,用以实现信号的输入(接收)和输出(发送)。
例如,设备600可以是芯片,通信单元605可以是该芯片的输入和/或输出电路,或者,通信单元605可以是该芯片的通信接口,该芯片可以作为终端设备或服务器或其它电子设备的组成部分。
又例如,设备600可以是终端设备或服务器,通信单元605可以是该终端设备或该服务器的收发器,或者,通信单元605可以是该终端设备或该服务器的收发电路。
设备600中可以包括一个或多个存储器602,其上存有程序604,程序604可被处理器601运行,生成指令603,使得处理器601根据指令603执行上述方法实施例中描述的方法。可选地,存储器602中还可以存储有数据。可选地,处理器601还可以读取存储器602中存储的数据,该数据可以与程序604存储在相同的存储地址,该数据也可以与程序604存储在不同的存储地址。
处理器601和存储器602可以单独设置,也可以集成在一起,例如,集成在服务器的单板或者终端设备的系统级芯片(system on chip,SOC)上。
设备600还可以包括天线606。通信单元605用于通过天线606实现设备600的收发功能。
处理器601执行处理工作量证明计算任务的方法的具体方式可以参见方法实施例中的相关描述。
应理解,上述方法实施例的各步骤可以通过处理器601中的硬件形式的逻辑电路或者软件形式的指令完成。处理器601可以是CPU、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件,例如,分立门、晶体管逻辑器件或分立硬件组件。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器601执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器602中,例如是程序604,程序604经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器601执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质例如是存储器602。存储器602可以是易失性存储器或非易失性存储器,或者,存储器602可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamicRAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (34)

1.一种处理工作量证明计算任务的方法,其特征在于,包括:
目标客户端的通信模块从工作量证明算力集合平台获取工作量证明计算任务,所述工作量证明算力集合用于向多个客户端发送工作量证明计算任务,所述目标客户端为所述多个客户端中的任意一个客户端,所述目标客户端包括通信模块和处理模块;
所述通信模块向所述处理模块发送所述工作量证明计算任务,所述处理模块用于确定所述工作量证明计算任务的处理结果;
所述通信模块从所述处理模块接收所述工作量证明计算任务的处理结果;
所述通信模块向所述工作量证明算力集合平台发送所述处理结果,所述工作量证明算力集合平台用于根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
2.根据权利1所述的方法,其特征在于,所述向处理模块发送所述工作量证明计算任务,包括:
向操作系统OS发送系统调用请求,所述系统调用请求用于请求调用所述处理模块的通信接口;
从所述OS获取所述通信接口的地址信息;
通过根据所述地址信息调用的所述通信接口,向所述处理模块发送所述工作量证明计算任务。
3.根据权利1所述的方法,其特征在于,所述向处理模块发送所述工作量证明计算任务,包括:
将所述工作量证明计算任务写入共享内存,所述共享内存用于所述通信模块的访问和所述处理模块的访问;
更新所述共享内存的内容标识,其中,更新后的所述内容标识用于指示所述共享内存存在所述工作量证明计算任务。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述从所述处理模块接收所述工作量证明计算任务的处理结果,包括:
读取共享内存的内容标识,所述共享内存用于所述通信模块的访问和所述处理模块的访问;
当所述内容标识指示所述共享内存存在所述处理结果时,从所述共享内存中读取所述处理结果。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述从所述处理模块接收所述工作量证明计算任务的处理结果,包括:
从所述处理模块接收指示信息,所述指示信息用于指示获取所述处理结果;
根据所述指示信息向OS发送系统调用请求,所述系统调用请求用于请求调用所述处理模块的通信接口;
从所述OS接收所述通信接口的地址信息;
通过根据所述地址信息调用的所述通信接口,从所述处理模块获取所述处理结果。
6.根据权利要求3所述的方法,其特征在于,所述共享内存为线性内存。
7.一种处理工作量证明计算任务的方法,其特征在于,包括:
目标客户端的处理模块从通信模块获取工作量证明计算任务,所述目标客户端包括通信模块和处理模块;
所述处理模块处理所述工作量证明计算任务,获取处理结果;
所述处理模块向所述通信模块发送所述处理结果,以便于工作量证明算力集合平台根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
8.根据权利要求7所述的方法,其特征在于,所述目标客户端的处理模块从通信模块获取工作量证明计算任务,包括:
所述处理模块通过通信接口从所述通信模块接收所述工作量证明计算任务。
9.根据权利要求7所述的方法,其特征在于,所述目标客户端的处理模块从通信模块获取工作量证明计算任务,包括:
所述处理模块读取共享内存的内容标识,所述共享内存用于所述通信模块的访问和所述处理模块的访问;
当所述内容标识指示所述共享内存存在所述工作量证明计算任务时,所述处理模块从所述共享内存中读取所述工作量证明计算任务。
10.根据权利要求7至9中任一项所述的方法,其特征在于,所述向所述通信模块发送所述处理结果,包括:
将所述处理结果写入共享内存;
更新所述共享内存的内容标识,其中,更新后的所述内容标识用于指示所述共享内存存在所述处理结果。
11.根据权利要求7至9中任一项所述的方法,其特征在于,所述向所述通信模块发送所述处理结果,包括:
向所述通信模块发送指示信息,所述指示信息用于指示所述通信模块通过系统调用获取所述处理结果;
通过所述系统调用对应的通信接口向所述通信模块发送所述处理结果。
12.根据权利要求9所述的方法,其特征在于,所述共享内存为线性内存。
13.根据权利要求7至9中任一项所述的方法,其特征在于,所述处理所述工作量证明计算任务,包括:
根据处理硬件对所述工作量证明计算任务进行转数据格式处理,生成与所述处理硬件的数据格式匹配的处理信息;
向所述处理硬件发送所述处理信息。
14.根据权利要求7至9中任一项所述的方法,其特征在于,所述方法还包括:
获取处理所述工作量证明计算任务的设备的外设的控制策略;
根据所述控制策略向所述外设发送控制命令,所述控制命令用于控制所述外设的运行状态。
15.一种处理工作量证明计算任务的装置,其特征在于,包括接收单元和处理单元,
所述接收单元用于:从工作量证明算力集合平台获取工作量证明计算任务,所述工作量证明算力集合用于向多个客户端发送工作量证明计算任务;
所述发送单元用于:向处理模块发送所述工作量证明计算任务,所述处理模块用于确定所述工作量证明计算任务的处理结果;
所述接收单元还用于:从所述处理模块接收所述工作量证明计算任务的处理结果;
所述发送单元还用于:向所述工作量证明算力集合平台发送所述处理结果,所述工作量证明算力集合平台用于根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
16.根据权利15所述的装置,其特征在于,
所述发送单元还用于:向操作系统OS发送系统调用请求,所述系统调用请求用于请求调用所述处理模块的通信接口;
所述接收单元还用于:从所述OS接收所述通信接口的地址信息;
所述发送单元具体用于:通过根据所述地址信息调用的所述通信接口,向所述处理模块发送所述工作量证明计算任务。
17.根据权利15所述的装置,其特征在于,所述发送单元具体用于:
将所述工作量证明计算任务写入共享内存,所述共享内存用于所述通信模块的访问和所述处理模块的访问;
更新所述共享内存的内容标识,其中,更新后的所述内容标识用于指示所述共享内存存在所述工作量证明计算任务。
18.根据权利要求15至17中任一项所述的装置,其特征在于,所述接收单元具体用于:
读取共享内存的内容标识,所述共享内存用于所述通信模块的访问和所述处理模块的访问;
当所述内容标识指示所述共享内存存在所述处理结果时,从所述共享内存中读取所述处理结果。
19.根据权利要求15至17中任一项所述的装置,其特征在于,
所述接收单元还用于:从所述处理模块接收指示信息,所述指示信息用于指示获取所述处理结果;
所述发送单元还用于:根据所述指示信息向OS发送系统调用请求,所述系统调用请求用于请求调用所述处理模块的通信接口;
所述接收单元还用于:从所述OS接收所述通信接口的地址信息;
所述接收单元具体用于:通过根据所述地址信息调用的所述通信接口,从所述处理模块获取所述处理结果。
20.根据权利要求17所述的装置,其特征在于,所述共享内存为线性内存。
21.一种处理工作量证明计算任务的装置,其特征在于,包括接收单元、处理单元和发送单元,
所述接收单元用于:从通信模块获取工作量证明计算任务;
所述处理单元用于:处理所述工作量证明计算任务,获取处理结果;
所述发送单元用于:向所述通信模块发送所述处理结果,以便于工作量证明算力集合平台根据所述处理结果确定所述目标客户端是否获取到目标时段内的信息的记录权。
22.根据权利要求21所述的装置,其特征在于,所述接收单元具体用于:
通过通信接口从所述通信模块接收所述工作量证明计算任务。
23.根据权利要求21所述的装置,其特征在于,所述接收单元用于:
读取共享内存的内容标识;
当所述内容标识指示所述共享内存存在所述工作量证明计算任务时,从所述共享内存中读取所述工作量证明计算任务。
24.根据权利要求21至23中任一项所述的装置,其特征在于,所述发送单元具体用于:
将所述处理结果写入共享内存;
更新所述共享内存的内容标识,其中,更新后的所述内容标识用于指示所述共享内存存在所述处理结果。
25.根据权利要21至23中任一项所述的装置,其特征在于,所述发送单元具体用于:
向所述通信模块发送指示信息,所述指示信息用于指示所述通信模块调用通信接口获取所述处理结果;
通过所述通信接口向所述通信模块发送所述处理结果。
26.根据权利要求23所述的装置,其特征在于,所述共享内存为线性内存。
27.根据权利要求21至23中任一项所述的装置,其特征在于,
所述处理单元还用于:根据处理硬件对所述工作量证明计算任务进行转数据格式处理,生成与所述处理硬件的数据格式匹配的处理信息;
所述发送单元还用于:向所述处理硬件发送所述处理信息。
28.根据权利要求21至23中任一项所述的装置,其特征在于,
所述接收单元还用于:获取处理所述工作量证明计算任务的设备的外设的控制策略;
所述发送单元还用于:根据所述控制策略向所述外设发送控制命令,所述控制命令用于控制所述外设的运行状态。
29.一种处理工作量证明计算任务的系统,其特征在于,包括如权利15至20中任一项所述的装置,以及,如权利要求21至28中任一项所述的装置。
30.一种终端设备,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至6中任一项所述的方法,和/或,执行如权利要求7至14中任一项所述的方法。
31.一种服务器,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至6中任一项所述的方法,和/或,执行如权利要求7至14中任一项所述的方法。
32.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行:如权利要求1至6中任一项所述的方法,和/或,如权利要求7至14中任一项所述的方法。
33.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行:如权利要求1至6中任一项所述的方法,和/或,如权利要求7至14中任一项所述的方法。
34.一种计算机程序产品,其特征在于,包括计算机程序指令,该计算机程序指令使得计算机执行:如权利要求1至6中任一项所述的方法,和/或,如权利要求7至14中任一项所述的方法。
CN201910899876.7A 2019-09-23 2019-09-23 处理工作量证明计算任务的方法、装置和系统 Pending CN112540857A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910899876.7A CN112540857A (zh) 2019-09-23 2019-09-23 处理工作量证明计算任务的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910899876.7A CN112540857A (zh) 2019-09-23 2019-09-23 处理工作量证明计算任务的方法、装置和系统

Publications (1)

Publication Number Publication Date
CN112540857A true CN112540857A (zh) 2021-03-23

Family

ID=75013114

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910899876.7A Pending CN112540857A (zh) 2019-09-23 2019-09-23 处理工作量证明计算任务的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112540857A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1928825A (zh) * 2005-09-09 2007-03-14 腾讯科技(深圳)有限公司 一种服务器的实现方法以及服务器系统
CN105610815A (zh) * 2015-12-25 2016-05-25 中国石油天然气集团公司 通信方法、客户端和通信系统
US20180267906A1 (en) * 2017-03-16 2018-09-20 Toshiba Memory Corporation Shared memory controller, shared memory module, and memory sharing system
CN109040014A (zh) * 2018-06-13 2018-12-18 湖南搜云网络科技股份有限公司 区块链处理方法及装置、区块链节点及存储介质
CN109118224A (zh) * 2018-08-22 2019-01-01 泰康保险集团股份有限公司 区块链网络的工作量证明方法、装置、介质及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1928825A (zh) * 2005-09-09 2007-03-14 腾讯科技(深圳)有限公司 一种服务器的实现方法以及服务器系统
CN105610815A (zh) * 2015-12-25 2016-05-25 中国石油天然气集团公司 通信方法、客户端和通信系统
US20180267906A1 (en) * 2017-03-16 2018-09-20 Toshiba Memory Corporation Shared memory controller, shared memory module, and memory sharing system
CN109040014A (zh) * 2018-06-13 2018-12-18 湖南搜云网络科技股份有限公司 区块链处理方法及装置、区块链节点及存储介质
CN109118224A (zh) * 2018-08-22 2019-01-01 泰康保险集团股份有限公司 区块链网络的工作量证明方法、装置、介质及电子设备

Similar Documents

Publication Publication Date Title
CN107113284B (zh) 针对可迁移虚拟机的可信计算基证据绑定
EP3123340B1 (en) Object oriented marshaling scheme for calls to a secure region
US10726120B2 (en) System, apparatus and method for providing locality assertion between a security processor and an enclave
US6219787B1 (en) Method and apparatus for extending security model to native code
US8788787B2 (en) Systems, methods and architecture for facilitating software access to acceleration technology
US20050216920A1 (en) Use of a virtual machine to emulate a hardware device
US7840964B2 (en) Mechanism to transition control between components in a virtual machine environment
US10416890B2 (en) Application execution enclave memory page cache management method and apparatus
US20190095220A1 (en) Multicore framework for use in pre-boot environment of a system-on-chip
US10963267B2 (en) Bootstrapping profile-guided compilation and verification
US9881351B2 (en) Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation
CN101777005B (zh) 重定向物理设备控制器的中断而提供多个虚拟设备控制器的装置和方法
CN116010296A (zh) 一种处理请求的方法、装置及系统
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
US8489860B1 (en) Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device
CN105677491A (zh) 一种数据传输方法及装置
US20220236902A1 (en) Systems and methods for data transfer for computational storage devices
US20070201059A1 (en) Method and system for automatically configuring a device driver
CN104714792A (zh) 多进程共享数据处理方法和装置
US10628611B2 (en) Exclusive execution environment within a system-on-a-chip computing system
CN112540857A (zh) 处理工作量证明计算任务的方法、装置和系统
EP4036725A1 (en) Systems and methods for data transfer for computational storage devices
US11960420B2 (en) Direct memory control operations on memory data structures
CN109240602B (zh) 数据存取方法
CN115604331A (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