CN111475286B - 一种基于区块链的网格计算系统及方法 - Google Patents
一种基于区块链的网格计算系统及方法 Download PDFInfo
- Publication number
- CN111475286B CN111475286B CN202010200664.8A CN202010200664A CN111475286B CN 111475286 B CN111475286 B CN 111475286B CN 202010200664 A CN202010200664 A CN 202010200664A CN 111475286 B CN111475286 B CN 111475286B
- Authority
- CN
- China
- Prior art keywords
- node
- task
- contract
- nodes
- calculation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 26
- 238000003860 storage Methods 0.000 claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims description 100
- 238000009826 distribution Methods 0.000 claims description 14
- 238000013475 authorization Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 3
- 238000005096 rolling process Methods 0.000 claims description 2
- 230000006399 behavior Effects 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 8
- 238000011160 research Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于区块链的网格计算系统,系统中包含多个节点,每个节点配置有一个唯一id、一对公私钥,且每个所述节点与区块链中的某一账户对应;区块链上用于部署节点状态合约,维护所有的节点信息;任意两个节点之间的信息交流通过双方在节点状态合约中的公钥并依据密钥交换协议构造一条加密信道;每个所述节点通过分布式哈希表存储其他节点的信息;每个所述节点的角色为主节点、从节点、存储节点中的一种或多种;所述主节点为任务发布者,所述从节点为任务接收者,所述存储节点用于为其余节点提供文件存储服务。利用区块链公开透明、不可篡改、可溯源等特点,实现了一种公平公开、无单点依赖的激励机制,限制任务发布者和解决者的作弊行为。
Description
技术领域
本发明涉及计算机数据处理领域,具体地说,涉及网格计算领域,更具体地说,涉及一种基于区块链的网格计算系统及方法。
背景技术
如今的科研项目需要大量的计算机算力资源,如果借助超级计算机获取这样的算力需要高昂的费用。网格计算技术通过整合世界各地志愿者闲置的个人计算机资源为科研项目提供巨大的价格低廉的计算力,这大大节约了项目的成本,并使得现有的计算机资源得到充分利用。常见的网格计算如:BOINC,WCG。其中,Berkeley Open Infrastructure forNetwork Computing(BOINC)即伯克利开放式网络计算平台,是用于志愿计算和网格计算的开放的中间件系统。BOINC最早是为了支持SETI@home项目而开发的,之后逐渐成了最为主流的分布式计算平台,为众多的数学、物理、化学、生命科学、地球科学等学科类别的项目所使用。BOINC平台采用了传统的客户端-服务端构架,服务端部署于计算项目方的服务器,客户端部署于志愿者的计算机,两者之间通过标准的互联网协议进行通讯。分布式计算项目中均需涉及到任务分发、结果回收和验证、积分授予等相关的处理,BOINC作为一个通用的分布式计算平台,提供了一个考虑周全的软件应用框架,使得基于BOINC平台的计算项目在开发时,仅需要关注项目研究内容相关的方面。志愿者需要安装BOINC的客户端并且在客户端中选择科研项目,下载对应的程序包来参与到项目中贡献计算力。在志愿者参与过程中,志愿者计算机的BOINC客户端自动接受项目方的任务数据包,完成任务并回传计算结果,用户完成任务可以赚取虚拟积分。另外还有一个World Community Grid基于BOINC的项目,是由IBM公司主持的一项基于互联网的公益性分布式计算项目,开始于2004年11月16日,该项目将联合分布于世界各地的志愿者们提供的计算资源,用于一些能为全人类带来福音的大型科学研究项目。
但是,现有网格计算框架均缺乏公平公开、无单点依赖的激励机制(涵盖经济激励、志愿证书、系统积分等),无法有效调动任务发布者、任务解决者、数据存储服务提供方的参与积极性,也无法对其恶意行为进行有效约束。究其根本,是因为现有系统中,任务发布与结算存在的单点依赖问题,无法解决引入经济等激励形式而引起的作弊问题:任务发布者可能在获得所需结果后拒绝支付相应的奖励;任务解决者可能通过提交无效的答案或抄袭他人答案的作弊行为来骗取奖励。与此同时,任务解决者每完成一个任务都需要将结果发送给任务发布者,当一个任务包含多个连续的子任务时,现有任务结果验证方式要求任务发布者对每一个子任务完成一轮数据收发,并没有充分利用网格计算带来的数据分散特性,增大了数据传输开销,降低了效率。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的能够减少数据传输开销的基于区块链的网格计算系统及方法。
根据本发明的第一方面,提供一种基于区块链的网格计算系统,包括多个节点,每个所述节点配置有一个唯一id、一对公私钥,且每个所述节点与区块链中的某一账户对应;其中:所述区块链上用于部署节点状态合约,维护所有的节点信息,所述节点信息包括节点id、公钥;任意两个节点之间的信息交流通过双方在节点状态合约中的公钥并依据密钥交换协议构造一条加密信道;每个所述节点通过分布式哈希表存储其他节点的信息;每个所述节点的角色为主节点、从节点、存储节点中的一种或多种;所述主节点为任务发布者,所述从节点为任务接收者,所述存储节点用于为其余节点提供文件存储服务。
所述主节点用于将原始任务拆分成具有数据依赖关系的一系列子任务,并依据依赖关系构造区块链上计算合约的形式将子任务按照执行顺序逐个发布至区块链上并将任务消息广播到系统中;所述从节点通过区块链上的计算合约获取任务信息并通过与存储服务节点通信获取任务处理所需数据。其中,所述计算合约包括提交计算任务的主节点id、押金、奖励、奖励分配规则、合约生效日期。所述存储节点用于通过存储协议为其他节点提供文件存储服务并获取奖励,任务原始数据或中间结果以分布式的形式存储在存储服务节点中;所述存储协议包含文件同步协议和文件下载协议,其中,一个节点可以通过文件同步协议将自身的一个文件复制到另一个节点并更新文件的信息,可以通过文件下载协议向另一个节点获取文件,并给予该节点奖励。
在本发明的一些实施例中,网格计算系统中具有固定ip地址并可持续在线的节点被配置为基础服务节点,用于为其他节点提供节点查找服务,记录任务所需数据所在位置。
根据本发明的另一方面,提供一种网格计算方法,包括如下步骤:
S1、主节点将原始任务拆分成具有数据依赖关系的一系列子任务,并在区块链上部署计算合约以约定任务采用的奖励形式、对应的奖励数量、奖励分配规则,同时在计算合约中抵押约定数量的奖励的等价物作为押金以及任务解决后的奖励数量,其中后续子任务依赖于前序子任务的计算结果;
S2、主节点为其发布的任务生成id,并构造发布任务的消息广播到网格计算系统网络中;其中,消息的内容包括任务id、计算任务的规模、硬件需求、计算合约地址、样例代码;
S3、接受任务的从节点向主节点发送消息请求任务的元信息,元信息至少包括主节点对从节点id和任务id的授权签名、记录计算任务所需数据所在位置的节点的id、任务代码、主节点对该任务和该从节点生成的混淆值;
S4、基于主节点的回复,从节点向记录计算任务所需数据所在位置的节点查询持有任务所需数据的节点id,并通过存储协议从这些节点获取任务所需数据;
S5、从节点完成任务后,调用计算合约,向合约质押不少于约定下限的奖励的等价物作为押金并上传答案信息,答案信息包括但不限于:授权签名、计算结果的哈希值与混淆值相加的和(下文称特异答案);其中,执行前序子任务的从节点完成任务后,通过存储协议将答案信息对应的结果文件同步至其他节点,并记录这些节点以供完成后续子任务的从节点查询;
S6、主节点监听答案上传情况,调用计算合约进行结算,具体的,主节点监听答案上传情况,将接收到的特异答案与混淆值相减得到计算结果哈希,统计计算结果哈希的分布,在同一计算结果哈希出现次数过半数时,即认定该哈希为正确计算结果哈希,主节点调用计算合约执行结算操作,对提交答案的从节点依据答案正确性进行奖励;其中,上传答案操作仅能由从节点调用执行,从节点调用结算操作会触发惩罚;从节点上传答案时提供押金、授权签名和特异答案,上传答案的操作仅能由从节点调用,主节点调用会触发惩罚;对计算合约已被成功调用结算操作或从节点之前被本合约惩罚过或多次提交同一答案或提供押金值小于最低限度的情况,回滚合约调用;对从节点在合约生效时间之前上传答案或重复提交不同答案或授权签名无效的情况会触发惩罚操作对从节点进行惩罚;上传答案成功后,计算合约会记录从节点上传的答案,并将其通知主节点。
主节点在合约生效后调用计算合约执行结算操作;执行结算时,主节点上传每个从节点混淆值与正确计算结果哈希,计算合约根据每个从节点混淆值和上传的特异答案还原出每个从节点得到的计算结果哈希,并统计每种计算结果哈希出现频数,计算合约根据规则奖励得到频数过半的计算结果的节点,并扣除其他节点的押金。
由计算合约对调用上传答案操作的主节点、合约生效前调用结算操作的主节点、调用结算操作的从节点执行惩罚操作,扣除被惩罚者的押金并将被惩罚者加入黑名单。
与现有技术相比,本发明的优点在于:
本发明提出的基于区块链的网格计算框架,利用区块链公开透明、不可篡改、可溯源等特点,实现了一种公平公开、无单点依赖的激励机制。利用了区块链智能合约公开透明、不可篡改的特点,实现了恶意行为自动处罚与任务结算奖励自动发放。任务发布者将原问题拆分成具有数据依赖关系的一系列子任务,并按依赖关系将子任务逐个发布至结构化网络中并与从节点达成计算协议解决子任务,子任务的结果不必立即回传给主节点,而是通过存储协议传输至执行此后子任务的其他节点并利用冗余节点并行进行文件传输提高文件了传输速度。在任务计算结果验证过程中,仅对比结果哈希而非结果原始数据,减少数据通信开销,并且降低链上验证成本。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的基于区块链的网格计算系统简化结构示意图;
图2为根据本发明实施例的基于区块链的网格计算方法DAG图示意图;
图3为根据本发明实施例的基于区块链的网格计算方法DAG图反向示意图;
图4为根据本发明实施例的基于区块链的网格计算方法执行流程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面结合附图和实施例/示例详细说明本发明。
根据本发明的一个实施例,如图1所示,提供一种基于区块链的网格计算系统对应的网络架构,其中一个节点可以拥有主节点、从节点和存储服务节点这三种角色中的一个或多个,即一个节点可以是主节点、从节点和存储节点,即一个节点既可以发布任务,也可以接收任务并执行,还能存储原始数据或中间结果数据供其他从节点获取,所有节点通过分布式哈希表(DHT)存储其他节点的信息,构成结构化网络。
该结构化网络中,每个节点有一唯一id以及一对公私钥,这一唯一id与一条应用账户模型的区块链上的某一账户对应,拥有某一id的节点对其对应区块链上的账户具有完全的控制权;对应地,该区块链上部署有一智能合约(以下称为“节点状态合约”)维护所有结构化网络中的节点信息,这些信息包括但不限于:节点id、公钥。除此之外,节点状态合约还需要维护基础服务节点的ip地址和端口;节点加入网络时需要调用节点状态合约注册上述节点信息;节点可以调用节点状态合约查询其他节点信息。具有固定ip地址并可持续在线的节点可选择成为基础服务节点,用于为其他节点提供节点查找服务,记录任务所需数据所在位置。
为保证私密性,两节点间进行信息交流时,双方利用对方在节点状态合约中注册的公钥,通过密钥交换协议构造出一条加密信道,此外,在信道中传输的信息均经过数字签名。
主节点将原始任务拆分成具有数据依赖关系的一系列子任务,依据依赖关系构造区块链上计算合约的形式将子任务逐个发布至区块链上,并与从节点依据基于区块链的网格计算协议解决子任务,进而使原始任务得到解决,并依据协议给予从节点不同形式的奖励,奖励可以是金钱、积分、志愿者证书等。其中,计算合约包括但不限于提交计算任务的主节点id、押金、奖励、奖励分配规则、合约生效日期。
从节点通过区块链上计算合约获取任务信息,通过与存储服务节点通信获取任务处理所需数据(原始数据或中间结果数据)并给予存储服务节点一定奖励(经济奖励、积分等,或将等待任务结算完成后的奖励按照一定比例发送给存储服务节点),本地计算完成后,并将答案信息上链,供主节点验证任务处理结果。
存储服务节点通过存储协议为其余节点提供文件存储服务进而获取奖励,任务原始数据或中间结果均以分布式的形式存储在存储服务节点中。例如,从节点完成一个子任务后,通过存储协议将任务的结果文件同步至其他节点,主节点向持有任务最终结果的从节点通过存储协议购买最终结果数据。在本发明中,“文件”指一对键值,存储服务节点维护自身储存的文件信息,这些信息包括但不限于:文件大小、文件是否在节点本地、维护该文件信息的其他节点id;网络中的节点可以向存储服务节点查询文件信息。其中,存储协议包含文件同步协议和文件下载协议,文件同步协议是指某个节点通过文件同步协议将自身的一个文件复制到另一个节点并更新文件的信息,文件下载协议是指某个节点通过文件下载协议向另一个节点获取文件,并给予该节点奖励。
根据本发明的一个示例,节点A可以通过文件同步协议将自身的一个文件复制到节点B,并更新文件的信息,根据本发明的一个实施例,文件同步具体执行过程包括:
T1、节点A向节点B发送文件同步请求,请求包含文件大小、哈希以及文件对应计算合约。
T2、节点B若同意同步文件,向A发送同意消息,节点A向节点B发送文件,否则节点B不进行回复,协议执行结束。
T3、在节点B接收文件后,节点B检查接收文件哈希是否与已知相符,若相符,节点B向节点A发送成功消息,A、B更新文件信息,否则,节点B可重复步骤2,直到A、B某一方首先放弃执行协议。
T4、节点B成功接受文件后,每隔固定时间向节点A发送心跳信号,节点B在删除A同步的文件时,向A发送删除消息;A在超过时限未收到心跳信号或收到删除消息的情况下更新文件信息。
根据本发明的另一个示例,节点A可通过文件下载协议向节点B获取一文件,文件下载协议因实施方式不同而有不同的形式,在数据下载完成后或任务结算完成后,节点A将给予节点B一定奖励,因此文件下载协议也叫文件购买协议,购买可以是经济购买,也可以是积分等类似“等价物”购买,根据本发明的一个实施例,文件购买协议具体执行过程包括:
G1、节点A在以太坊部署文件购买合约,向节点B发送文件购买请求;
G2、节点B若同意请求,将文件F拆分成若干份,将每份取哈希后构造一棵Merkle树M1,将F和M1的所有节点用一随机生成的密钥k加密生成E((F,M1),k),将加密后的数据E((F,M1),k)构造一棵Merkle树M2,将M1的构造过程编码为指令序列I,将I构造一棵Merkle树M3,将M2和M3的根R2和R3和押金上传至文件购买合约,将E((F,M1),k)和I发送给A;
G3、节点A接收到E((F,M1),k)和I后,构造M2’和M3’,检查R2’和R3’是否与文件购买合约上的R2、R3相等,若不相等,终止协议,否则向文件购买合约提交奖金;
G4、节点B收到节点A提交奖金的通知后,在给定时间限制内需向文件购买合约上传密钥k,否则节点B的押金被文件购买合约扣除,协议终止;
G5、节点A收到k,根据收到的E((F,M1),k)得出F和M1,对F应用指令序列I,得到M1’,判断M1’是否与M1相等,若某处不相等,节点A构造得出不相等结果的指令i在I中的Merkle Proof:Mp1,构造指令i所需数据以及执行结果在M2中的Merkle Proof:Mp2,将(i,Mp1,Mp2)提交至文件购买合约;
G6、在给定时间限制内,若合约接收到(i,Mp1,Mp2),合约根据R2和R3检查Mp1和Mp2是否有效,并执行指令i,若执行结果与节点A得出结果一致,与节点B得出结果不一致,视为节点B违约,合约扣除节点B的押金,协议终止,在其他情况下,经过给定时间限制后,合约将节点A提交的奖金支付给节点B。
根据本发明的一个实施例,网格计算系统中所有节点至少拥有存储服务节点一种角色,所有节点通过Kademlia协议形成结构化网络,所有智能合约被部署在以太坊上,节点id为以太坊对应账户地址,节点公私钥由RSA算法生成,节点状态合约除维护必要信息外,还为每个节点维护一信誉值。两节点间进行信息交流时,双方利用对方在节点状态合约中注册的RSA公钥,通过密钥交换协议构造出一条加密信道。计算合约中触发的惩罚操作会降低节点状态合约中记录的被惩罚节点的信誉值,当信誉值下降至低于某一界限,被惩罚节点被加入黑名单,此后所有的计算合约拒绝来自黑名单中节点的调用,信誉值界限由系统设定。
根据本发明的另一个实施例,本发明提供一种基于区块链的网格计算方法,用于包含多个节点的网格计算系统,每个节点的角色为主节点、从节点和存储节点中的一种或多种,每个节点具有唯一id、一对公私钥,每个节点与区块链中的一个账户对应,其特征在于,包括如下步骤:
S1、主节点将原始任务拆分成具有数据依赖关系的一系列子任务,后续子任务依赖于前序子任务的计算结果,并在区块链上部署计算合约以约定任务采用的奖励形式、对应的奖励数量、奖励分配规则,同时在计算合约中抵押约定数量的奖励的等价物作为押金以及任务解决后的奖励数量;
S2、合约部署成功后,主节点为其发布的任务生成id,并构造发布任务的消息广播到网格计算系统网络中;其中,消息的内容包括任务id、计算任务的规模、硬件需求、计算合约地址、样例代码;
S3、从节点接收到消息并根据计算合约、硬件需求、样例代码等任务信息判断是否接受任务,若接受任务则转到步骤S4,若不接受任务,该从节点转发消息;
S4、接受任务的从节点向主节点发送消息请求任务的元信息,元信息包括但不限于主节点对从节点id和任务id的授权签名(代表主节点对某一从节点解决该计算任务的授权,简称授权签名)、记录计算任务所需数据所在位置的节点(成为Tracker节点)的id、任务代码、主节点对该任务和该从节点生成的特定值(下文称混淆值);计算任务所需数据所在位置是指存有计算任务的原始数据或中间结果数据的节点,由Tracker节点记录原始数据或中间结果数据所在的这些节点,并为其他节点提供查找这些节点的服务;基础服务节点可以是Tracker节点,执行完前序子任务的从节点都能成为Tracker节点,用于为执行后续子任务的从节点从哪个节点获取数据提供查询服务;
S5、主节点收到从节点发来的消息,并回复从节点元信息;
S6、从节点向Tracker节点查询持有任务所需数据的节点id,并通过存储协议从这些节点获取任务所需数据;
S7、从节点执行计算任务,完成任务后,从节点调用计算合约,向合约质押不少于约定下限的一定数量的奖励的等价物作为押金并上传答案信息,答案信息包括但不限于:授权签名、计算结果的哈希值与混淆值相加的和(下文称特异答案),特异答案保护答案在区块链上公开时不会被其他节点抄袭;其中,上传答案的操作只能由从节点调用,主节点调用会触发惩罚操作;从节点需提供押金、授权签名和特异答案;若合约已被成功调用结算操作或从节点之前被本合约惩罚过或多次提交同一答案或提供押金值小于最低限度,合约调用会被回滚;若从节点在合约生效时间之前上传答案或重复提交不同答案或授权签名无效会触发惩罚操作;上传答案方法被成功调用后,合约会记录从节点上传的答案,并将其通知主节点;
S8、主节点监听答案上传情况,统计计算结果哈希的分布,在同一计算结果哈希出现次数过半数时调用计算合约进行结算,具体的,将接收到的特异答案与混淆值相减得到计算结果哈希,主节点统计计算结果哈希的分布,在同一计算结果哈希出现次数过半数后,即认定该哈希为正确计算结果哈希,主节点调用计算合约,例如:5个从节点接受了该任务,当收到3份相同答案后,主节点调用计算合约,上传每个从节点混淆值、正确计算结果哈希等信息,执行结算操作,对提交答案的从节点依据答案正确性进行奖惩。结算方法只能由主节点在合约生效后调用,若从节点调用结算或主节点在合约生效前调用会触发惩罚操作,结算时需要主节点上传混淆值与混淆值对应特异答案等信息,合约根据每个从节点混淆值和上传的特异答案还原出每个从节点得到的计算结果哈希,并统计每种计算结果哈希出现频数,合约根据规则奖励得到频数过半计算结果的节点,并扣除其他节点的押金,若无法得到过半答案,视为子任务执行失败,触发对主节点的惩罚操作。惩罚操作只能由合约自身调用,合约会扣除被惩罚者的押金,并将被惩罚者加入黑名单。
其中,子任务成功执行完成后,从节点不会直接将结果文件发送给主节点,从节点通过存储协议将文件同步至其他节点,从节点自身成为Tracker节点供其他欲完成后续子任务的从节点查询,在所有子任务完成后,主节点向完成最后一个子任务的从节点查询持有最终结果的节点,并通过存储协议购买回最终结果数据。若子任务执行失败后,主节点借助此前步骤的结果以及某种纠错方法尝试重新发布子任务,纠错方法根据实施方式不同而不同。
简单的说,上述实施例中,运行主节点的用户手动将原问题拆分成一系列具有数据依赖关系的步骤,每个步骤将所有输入数据通过同一种算法转化为输出数据;主节点程序自动将每一个步骤按用户给定的规模拆分成可以并行执行的一系列子任务,将子任务作为顶点,若子任务1依赖子任务2的数据,从1顶点向2顶点连接一条有向边,由此构成如图2所示的有向无环图(下称DAG)。根据本发明的一个实施例,如图3所示,主节点按照如下方式为子任务分配执行顺序:
F1、将DAG所有边反向,当前标号设为零;
F2、将所有未被分配标号的入度为零的顶点分配当前标号,删除它们的出边,并将标号加一;
F3、若所有顶点均被标号,主节点将按照顶点标号从大到小的顺序发布对应的子任务,否则返回步骤F2,如图3中,子任务的发布顺序从子任务n开始,直到子任务0,图中箭头所示方向即为任务发布顺序方向。
优选的,为加速数据传输速度,主节点在发布第一个子任务前或从节点正确解决子任务后,将数据或结果文件通过文件同步协议同步至其他节点,从节点优先将结果文件同步至除主节点外的结果对应子任务的消息来源节点。
可选地,主节点在向从节点发送元数据时,可以要求从节点按主节点给定的函数对从节点下载到的数据进行变换,相应地,主节点对不同节点发送的待执行的代码也有所不同,经过这种处理的不同的子节点执行任务得到的结果有效性不同,计算合约在结算过程中,若发现两从节点提交了相同的无效答案,将惩罚这两个节点。
优选的,某一子任务执行失败后,主节点可采用纠错方法来补救,包括:
B1、主节点从失败子任务出发,沿DAG反向尝试下载从前子任务的结果文件,并将无法下载全部结果文件的子任务标记为失败,并递归运行纠错方法,直到将全部已执行子任务标记为成功或失败。
B2、主节点从成功的子任务之后的未执行或失败的子任务开始重新发布任务。
为了更进一步的理解本发明的方法,下面给出一个具体的执行流程实施例来说明本发明的方法。如图3所示,包括如下步骤:
P1、主节点在区块链部署计算合约,区块链生成计算合约地址;
P2、主节点将计算合约地址、需求、任务id等信息构造成消息广播到区块链中;
P3、从节点接收消息,根据任务需求等判断是否接手任务,若接收任务则向主节点请求元信息;
P4、主节点将元信息返回从节点;
P5、从节点根据主节点反馈的元信息向存储节点查询任务所需数据信息,得到持有任务所需数据的节点;
P6、从节点基于区块链部署的文件购买合约查询文件购买合约信息,向持有任务所需数据的存储节点购买任务所需数据;
P7、存储节点向区块链查询文件购买合约,获得文件购买合约信息,将从节点购买的文件发送给从节点并获得相应奖励,并通知区块链文件购买结束;
P8、从节点基于购买的任务所需数据,执行接受的子任务并向区块链提交答案;
P9、区块链通知主节点,主节点监控答案上传情况并调用结算,将结算结果反馈给从节点。
本发明提出的基于区块链的网格计算框架,利用区块链公开透明、不可篡改、可溯源等特点,实现了一种公平公开、无单点依赖的激励机制。并针对现有系统数据传输低效、验证复杂的问题,提出相应优化措施。为保证激励机制的公平公开,限制任务发布者和解决者的作弊行为,本发明提出了一套基于区块链的网格计算协议,利用了区块链智能合约公开透明、不可篡改的特点,实现了恶意行为自动处罚与任务结算奖励自动发放。为提高任务原始数据与中间结果数据传输效率,并降低链上任务结果验证成本。本专利提出了适应于去中心化环境的网格计算数据传输方式,任务发布者将原问题拆分成具有数据依赖关系的一系列子任务,并按依赖关系将子任务逐个发布至结构化网络中并与从节点达成计算协议解决子任务,子任务的结果不必立即回传给主节点,而是通过存储协议传输至执行此后子任务的其他节点并利用冗余节点并行进行文件传输以提高文件传输速度。在任务计算结果验证过程中,仅对比结果哈希而非结果原始数据,减少数据通信开销,并且降低链上验证成本。
本发明最终实现了计算任务的分发、解决以及相应激励机制设计,在这一过程中,原问题被拆分为若干子任务按数据依赖关系被执行,没有依赖关系的子任务可以并行执行,提高了效率;后续任务执行失败时主节点可以根据此前的阶段性结果重启计算任务,保证了容错性;最终答案由多数表决得出,在诚实节点过半的情况下保证了结果的正确性;在上传押金到计算合约后,主节点或从节点的作弊行为将导致它们受到相应的惩罚,保证了公平性;计算过程的所有中间结果的哈希和奖励分配均存储于区块链上,保证了公开性。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种基于区块链的网格计算方法,其特征在于,包括如下步骤:
S1、主节点将原始任务拆分成具有数据依赖关系的一系列子任务,并在区块链上部署计算合约以约定任务采用的奖励形式、对应的奖励数量、奖励分配规则,同时在计算合约中抵押约定数量的奖励的等价物作为押金以及任务解决后的奖励数量,其中后续子任务依赖于前序子任务的计算结果;
S2、主节点为其发布的任务生成id,并构造发布任务的消息广播到网格计算系统网络中;其中,消息的内容包括任务id、计算任务的规模、硬件需求、计算合约地址、样例代码;
S3、接受任务的从节点向主节点发送消息请求任务的元信息,元信息至少包括主节点对从节点id和任务id的授权签名、记录计算任务所需数据所在位置的节点的id、任务代码、主节点对该任务和该从节点生成的混淆值;
S4、基于主节点的回复,从节点向记录计算任务所需数据所在位置的节点查询持有任务所需数据的节点id,并通过存储协议从这些节点获取任务所需数据;
S5、从节点完成任务后,调用计算合约,向合约质押不少于约定下限的奖励的等价物作为押金并上传答案信息,答案信息至少包括:授权签名、特异答案,其中,特异答案是计算结果的哈希值与混淆值相加的和;
S6、主节点监听答案上传情况,调用计算合约进行结算。
2.根据权利要求1所述的一种基于区块链的网格计算方法,其特征在于,
执行前序子任务的从节点完成任务后,通过存储协议将答案信息对应的结果文件同步至其他节点,并记录这些节点以供完成后续子任务的从节点查询。
3.根据权利要求2所述的一种基于区块链的网格计算方法,其特征在于,
主节点监听答案上传情况,将接收到的特异答案与混淆值相减得到计算结果哈希,统计计算结果哈希的分布,在同一计算结果哈希出现次数过半数时,即认定该哈希为正确计算结果哈希,主节点调用计算合约执行结算操作,对提交答案的从节点依据答案正确性进行奖励;其中,
上传答案操作仅能由从节点调用执行;从节点上传答案时提供押金、授权签名和特异答案;
对计算合约已被成功调用结算操作或从节点之前被本合约惩罚过或多次提交同一答案或提供押金值小于最低限度的情况,回滚合约调用;对从节点在合约生效时间之前上传答案或重复提交不同答案或授权签名无效的情况会触发惩罚操作对从节点进行惩罚;上传答案成功后,计算合约会记录从节点上传的答案,并将其通知主节点。
4.根据权利要求3所述的一种基于区块链的网格计算方法,其特征在于,
主节点在合约生效后调用计算合约执行结算操作;
执行结算时,主节点上传每个从节点混淆值与正确计算结果哈希,计算合约根据每个从节点混淆值和上传的特异答案还原出每个从节点得到的计算结果哈希,并统计每种计算结果哈希出现频数,计算合约根据规则奖励得到频数过半的计算结果的节点,并扣除其他节点的押金。
5.根据权利要求3或4任一所述的基于区块链的网格计算方法,其特征在于,由计算合约执行对调用上传答案操作的主节点、合约生效前掉用结算操作的主节点以及调用结算操作的从节点的行惩罚操作,扣除被惩罚者的押金并将被惩罚者加入黑名单。
6.一种基于权利要求1-5任一所述方法的网格计算系统,包括多个节点,其特征在于,
每个所述节点配置有一个唯一id、一对公私钥,且每个所述节点与区块链中的某一账户对应;其中:
所述区块链上用于部署节点状态合约,维护所有的节点信息,所述节点信息包括节点id、公钥;任意两个节点之间的信息交流通过双方在节点状态合约中的公钥并依据密钥交换协议构造一条加密信道;
每个所述节点通过分布式哈希表存储其他节点的信息;
每个所述节点的角色为主节点、从节点、存储节点中的一种或多种;所述主节点为任务发布者,所述从节点为任务接收者,所述存储节点用于为其余节点提供文件存储服务。
7.根据权利要求6所述的一种基于区块链的网格计算系统,其特征在于,
所述主节点用于将原始任务拆分成具有数据依赖关系的一系列子任务,并依据依赖关系构造区块链上计算合约的形式将子任务按照执行顺序逐个发布至区块链上并将任务消息广播到系统中;
所述从节点通过区块链上的计算合约获取任务信息并通过与存储服务节点通信获取任务处理所需数据。
8.根据权利要求7所述的一种基于区块链的网格计算系统,其特征在于,所述计算合约包括提交计算任务的主节点id、押金、奖励、奖励分配规则、合约生效日期。
9.根据权利要求8所述的一种基于区块链的网格计算系统,其特征在于,
所述存储节点用于通过存储协议为其他节点提供文件存储服务并获取奖励,任务原始数据或中间结果以分布式的形式存储在存储服务节点中;
所述存储协议包含文件同步协议和文件下载协议,其中,一个节点可以通过文件同步协议将自身的一个文件复制到另一个节点并更新文件的信息,可以通过文件下载协议向另一个节点获取文件,并给予该节点奖励。
10.根据权利要求6所述的一种基于区块链的网格计算系统,其特征在于,所述网格计算系统中具有固定ip地址并可持续在线的节点被配置为基础服务节点,用于为其他节点提供节点查找服务,记录任务所需数据所在位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010200664.8A CN111475286B (zh) | 2020-03-20 | 2020-03-20 | 一种基于区块链的网格计算系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010200664.8A CN111475286B (zh) | 2020-03-20 | 2020-03-20 | 一种基于区块链的网格计算系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475286A CN111475286A (zh) | 2020-07-31 |
CN111475286B true CN111475286B (zh) | 2023-03-21 |
Family
ID=71747937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010200664.8A Active CN111475286B (zh) | 2020-03-20 | 2020-03-20 | 一种基于区块链的网格计算系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475286B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584374B (zh) * | 2022-03-04 | 2023-11-21 | 内蒙古蒙嘟嘟科技服务有限公司 | 一种基于区块链的大数据隐私共享安全保护系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150228004A1 (en) * | 2014-02-07 | 2015-08-13 | Kristin Kaye Bednarek | Smart Device Apps and Incentives For Encouraging The Creation and Sharing Electronic Lists To Imrpove Targeted Marketing While Preserving User Anonymity |
US10678598B2 (en) * | 2017-12-07 | 2020-06-09 | International Business Machines Corporation | Enforcing compute equity models in distributed blockchain |
CN112767158A (zh) * | 2018-02-27 | 2021-05-07 | 创新先进技术有限公司 | 基于区块链的交易执行方法及装置、电子设备 |
-
2020
- 2020-03-20 CN CN202010200664.8A patent/CN111475286B/zh active Active
Non-Patent Citations (3)
Title |
---|
Grid Computing;NIST;《NIST https://www.nist.gov/itl/ssd/grid-computing》;20111102;全文 * |
云计算环境下工作流任务调度优化算法研究;曹云棣;《中国优秀硕士论文电子期刊网》;20181215;全文 * |
网格计算简述;木夜溯;《简书 https://www.jianshu.com/p/9b419efa228f》;20161123;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111475286A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7569602B2 (ja) | 分散協調を用いるスマートコントラクトの実行 | |
US11038771B2 (en) | Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT) | |
CN109218079B (zh) | 一种区块链网络、部署方法及存储介质 | |
EP3732857B1 (en) | Apparatus and method for decentralized-identifier creation | |
CN109191124B (zh) | 区块链网络、部署方法及存储介质 | |
WO2021244208A1 (zh) | 区块链的提案消息处理方法、装置、设备以及存储介质 | |
US20190172026A1 (en) | Cross blockchain secure transactions | |
EP3552166B1 (en) | Function-as-a-service (faas) platform in blockchain networks | |
US11928222B2 (en) | Distributed ledger network implementing a synchronous trust consensus model | |
CN112020705A (zh) | 区块链随机计时器事务同步 | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
CN111445333A (zh) | 区块生成方法、装置、计算机设备以及存储介质 | |
CN111309745B (zh) | 虚拟资源处理方法、装置、电子设备及存储介质 | |
Dorsala et al. | Fair payments for verifiable cloud services using smart contracts | |
CN115769241A (zh) | 针对经许可的区块链的隐私保护架构 | |
JP2022523447A (ja) | ブロックチェーンネットワークにおいてロールベース合意プロトコルを使用してリーダーノードを選出する方法 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN110222109A (zh) | 基于分布式账本技术的节点拼接系统、方法及区块链节点 | |
KR20190078668A (ko) | 검증가능한 추첨을 위한 장치 및 방법 | |
CN114913013B (zh) | 一种基于区块链的租房交易系统及租房交易方法 | |
CN111475286B (zh) | 一种基于区块链的网格计算系统及方法 | |
WO2024146285A1 (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
Decker | On the scalability and security of bitcoin | |
Kramer et al. | A blockchain-based micro economy platform for distributed infrastructure initiatives | |
JP2023106055A (ja) | エビデンス管理方法、エビデンス管理システム及びノード |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |