一种基于区块链技术的计算资源共享方法及区块链系统与流程

文档序号:16252906发布日期:2018-12-12 00:11阅读:380来源:国知局
一种基于区块链技术的计算资源共享方法及区块链系统与流程

本发明涉及信息技术领域,尤其涉及一种基于区块链技术的计算资源共享方法及区块链系统。

背景技术

区块链是一种新形式的具有普遍适应性的分布式架构,现已广泛应用于金融、经济、科技甚至政治等各个领域。区块链从技术上讲是一种比较特殊的分布式数据库,同时又是点对点传输、加密算法、共识机制等计算机技术汇合的新型应用模式。和传统分布式储存、计算系统相比,区块链利用点对点传输和共识机制实现了去中心化,链上的区块包含的信息对于链上的每个节点是公开透明的,这解决了分布式计算方式在通信中可能会出现的问题。虽然区块链特有的机制可以使得交易双方略过第三方,从而实现点对点的交易,但是区块链为了实现公开透明可查,无法较好的实现大规模的数据的传输和运算,受困于网络、底层技术等原因。

分布式计算是一种和集中式计算相对的、采用保证分布计算一致性的相关算法以提高计算能力的计算方法。广义的分布式计算是一种把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,在上传运算结果后,将结果统一合并得出数据结论的科学。分布式计算采用paxos等算法来保证计算环境的一致性,利用通信技术汇合多台计算机的计算能力来获得远超其他系统的处理速度。然而,分布式计算中掌控全局的服务器一旦出现故障崩溃,这台机器的作用不可替代,整个服务器集群的计算就会停滞,从而使得效率降低。

另一方面,计算资源分布的不均衡性无法满足大部分相关人员对计算资源的需求,有时计算需求量大的一方却不具备相匹配的计算资源。与此同时,拥有较丰富计算资源的一方往往无法充分利用手中的先进设备,甚至出现机器的闲置情况。而当前大规模的服务器集群集中在较大的互联网公司,互联网公司提供服务器硬件出租或服务等等,其他人只能租用服务器来使用,这会产生高额的使用成本。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述一个或多个的缺陷,提供了一种基于区块链技术的计算资源共享方法及区块链系统。

为了解决上述技术问题,本发明提供了基于区块链技术的计算资源共享方法,包括:

位于区块链网络中的算力需求方将算力供应方的计算节点分成分析组和整合组,并将待处理数据切片成多个数据块后分别进行打包,每个数据包中还包含用于数据分析的二进制可执行文件,且数据包的数量与分析组中计算节点的数量相同;

算力需求方创建智能合约并发送至区块链网络中,所述智能合约中包含每个数据包与对应分析组计算节点、以及每个分析组计算节点与对应的整合组计算节点的映射表;

算力需求方按照智能合约中映射表将数据包发送给对应的分析组计算节点;

分析组计算节点接收数据包并执行计算任务得到计算结果;

整合组计算节点按照智能合约中映射表在各个分析组计算节点的计算任务完成后将计算结果整合并发送给智能合约,由智能合约传送给算力需求方。

可选地,所述位于区块链网络中的算力需求方将算力供应方的计算节点分成分析组和整合组时,分析组中计算节点的数量大于整合组中计算节点的数量。

可选地,每个数据块都是有唯一标识的键/值对的集合。

可选地,所述映射表包括:数据包与数据包对应的分析组计算节点的地址以及数据存储路径之间的对应;分析组计算节点的地址、数据存储路径与整合组计算节点的账户信息和地址之间的对应。

可选地,所述用于数据分析的二进制可执行文件中包括用于发送任务执行进度以及任务状态的心跳信息的程序;所述智能合约中包括:和算力需求方的计算节点的心跳信号执行交互的程序;所述方法还包括:分析组计算节点在执行计算任务时定时向智能合约发送心跳信息,报告任务执行进度以及任务状态;智能合约根据心跳信息判断分析组计算节点是否正常执行计算任务,是则继续执行计算任务,否则修改智能合约中的映射表并将该分析组计算节点执行的计算任务分配至其他分析组计算节点重新执行。

可选地,所述方法还包括:智能合约根据心跳信息判断分析组计算节点执行任务完毕时,发送数据获取指令给该发送获取数据指令给完成任务的分析组计算节点对应的整合组计算节点;整合组计算节点接收到数据获取指令后按照映射表从对应的分析组计算节点中获取计算结果。

可选地,所述方法还包括:智能合约根据心跳信息判断全部分析组计算节点执行任务完毕时,发送数据检查指令给整合组计算节点;整合组计算节点接收到数据检查指令后检测对应的分析组计算节点的计算结果是否获取完毕,是则返回数据获取完毕信息给智能合约,否则等待数据获取完毕;智能合约在接收数据获取完毕信息后发送整合指令给整合组计算节点对计算结果进行整合。

可选地,所述方法还包括:算力需求方将用于数据整合的二进制可执行文件发送给整合组计算节点,且所述用于数据整合的二进制可执行文件中包括用于发送任务执行进度以及任务状态的心跳信息的程序;整合组计算节点在对计算结果进行整合时定时向智能合约发送心跳信息,报告任务执行进度以及任务状态;智能合约根据心跳信息判断整合组计算节点是否正常执行整合任务,是则继续执行整合任务,否则修改智能合约中的映射表并将该整合组计算节点执行的整合任务分配至其他整合组计算节点重新执行整合任务。

可选地,所述方法还包括:算力需求方和算力供应方根据智能合约进行计算资源交易的结算,并在交易完成后向区块链网络广播。

本发明还提供了一种区块链系统,包括互相通信的多个节点:

所述多个节点中的算力需求方将算力供应方的计算节点分成分析组和整合组,并将待处理数据切片成多个数据块后分别进行打包,每个数据包中还包含用于数据分析的二进制可执行文件,且数据包的数量与分析组中计算节点的数量相同;

算力需求方创建智能合约并发送至区块链网络中,所述智能合约中包含每个数据包与对应分析组计算节点、以及每个分析组计算节点与对应的整合组计算节点的映射表;

算力需求方按照智能合约中映射表将数据包发送给对应的分析组计算节点;

分析组计算节点接收数据包并执行计算任务得到计算结果;

整合组计算节点按照智能合约中映射表在各个分析组计算节点的计算任务完成后将计算结果整合并发送给智能合约,由智能合约传送给算力需求方。

实施本发明实施例提供的基于区块链技术的计算资源共享方法及区块链系统,至少具有如下有益效果:

1、本发明通过共享计算资源提高计算资源的利用率,解决了计算资源分布的不均匀问题,在大大降低租用计算资源的成本的同时,保证了基于区块链的分布式计算的可靠性。

2、本发明对于计算资源的管控和任务的划分类比分布式计算,先映射后规约,为解决分布式的不足,使用高级的智能合约替代分布式计算中的核心控制服务器,防止分布式计算的核心控制服务器崩溃造成整体计算停滞。

3、本发明基于分布式计算,数据量过大时将其拆分,并送往不同的计算节点,分散了网络流量,避免数据传输量过大造成的网络堵塞。

4、本发明中,共享计算资源均位于区块链上,交易双方点对点交易,不涉及中间开发者,保证了交易的速度、安全和透明。

附图说明

图1是本发明实施例一所提供基于区块链技术的计算资源共享方法的流程图;

图2是本发明实施例二所提供基于区块链技术的计算资源共享方法的流程图;

图3是本发明实施例三所提供区块链系统的示意图。

图中:300:区块链系统;301:算力需求方;302:分析组计算节点;303:整合组计算节点。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

如图1所示,本发明实施例提供的基于区块链技术的计算资源共享方法,可以包括以下步骤:

步骤s101:位于区块链网络中的算力需求方将算力供应方的计算节点分成分析组和整合组,并将待处理数据切片成多个数据块后分别进行打包,得到多个数据包。算力需求方可以通过去中心化的平台获取算力供应方的计算节点的信息,即区块链网络中处于闲置状态的计算节点信息。供需双方的信息展示和撮合由可以去中心化的平台负责完成。算力供应方的信息存储在去中心化平台的资源池中,算力需求方提出自己的需要,并从资源池中获得算力供应方的详细信息。应注意,平台仅仅用于信息展示和撮合,不涉及任何交易的细节。算力需求方生成的数据包的数量与分析组中计算节点的数量相同,每个数据包中含有切片后的数据块,以及用于数据分析的二进制可执行文件。切片得到的每个数据块都是有唯一标识的键/值对的集合。这有利于后面的分析和整合。优选地,该步骤中算力需求方将算力供应方的计算节点分成分析组和整合组时,划分的分析组中计算节点的数量大于甚至远大于整合组中计算节点的数量。例如,整合组计算节点为2台机器,而分析组计算节点为50台机器。

步骤s102:算力需求方创建智能合约并发送至区块链网络中,所述智能合约中包含每个数据包与对应分析组计算节点、以及每个分析组计算节点与对应的整合组计算节点的映射表。优选地,映射表包括:数据包与数据包对应的分析组计算节点的地址(标识符)以及数据存储路径之间的对应;分析组计算节点的地址(标识符)、数据存储路径与整合组计算节点的账号信息和地址(标识符)之间的对应。算力需求方发布的智能合约负责处理供需双方有关数据处理的交互以及交易相关事宜。

步骤s103:算力需求方按照智能合约中映射表将数据包发送给对应的分析组计算节点。也就是说,当算力需求方的数据准备完毕以及所有的算力供应方在智能合约上签名后,即满足了智能合约的条件,遂交易开始。算力需求方开始向分析组计算节点发送数据。

步骤s104:分析组计算节点接收数据包并执行计算任务得到计算结果。

步骤s105:整合组计算节点按照智能合约中映射表在各个分析组计算节点的计算任务完成后将计算结果整合并发送给智能合约。智能合约接收整合后的计算结果后,需通知并将该整合后的计算结果传回算力需求方。

本发明提出了一种基于区块链技术的计算资源共享方法,通过共享计算资源提高计算资源的利用率,同时可以大大降低租用计算资源的成本。并且对于计算资源的管控和任务的划分类比分布式计算,先映射(map)后规约(reduce),为解决分布式的不足,使用高级的智能合约替代分布式计算中的的核心控制服务器(master),防止分布式计算master崩溃造成整体计算停滞。此外,共享计算资源均位于区块链上,交易双方点对点交易,区块链的特点保证交易的安全和透明。另外,点对点的交易可以大大降低租用计算资源的成本。

实施例二

实施例二在实施例一提供的基于区块链技术的计算资源共享方法的基础上进行了优化,包括以下步骤:

步骤s201:流程开始;

步骤s202:位于区块链网络中的算力需求方将算力供应方的计算节点分成分析组和整合组;该步骤与前述步骤s101相同,在此不在进行赘述。

步骤s203:算力需求方将待处理数据切片成多个数据块后分别进行打包,得到多个数据包。该数据包的数量与分析组中计算节点的数量相同,每个数据包中含有切片后的数据块,以及用于数据分析的二进制可执行文件。切片得到的每个数据块都是有唯一标识的键/值对的集合。

步骤s204:算力需求方将数据包和算力供应方的计算节点之间建立映射,包括建立数据包与数据包对应的分析组计算节点的地址以及数据存储路径之间的映射,分析组计算节点的地址、数据存储路径与整合组计算节点的的账户信息和地址之间的映射。

步骤s205:算力需求方发布智能合约,并将其发布至区块链网络中。智能合约至少包括:步骤s204中制定的映射表;以及更新映射表的程序;和算力需求方的心跳信号执行交互的程序。

步骤s206:算力需求方按照智能合约中映射表将数据包发送给对应的分析组计算节点。优选地,算力需求方还将用于数据整合的二进制可执行文件发送给整合组计算节点。这种用于整合的机器码程序是处理数据时要用到的,由算力需求方提供。本发明使用机器码而非源代码也是为了防止泄露代码。

步骤s207:分析组计算节点接收数据包并执行计算任务得到计算结果。分析组计算节点接收的用于数据分析的二进制可执行文件中包括用于发送任务执行进度以及任务状态的心跳信息的程序。因此,分析组计算节点在执行计算任务时定时向智能合约发送心跳信息,报告任务执行进度以及任务状态。分析组计算节点上的程序向智能合约发送心跳信息报告当前的任务状态应持续至整合组将全部的整合后的计算结果传送至智能合约。

步骤s208:智能合约根据心跳信息判断分析组计算节点是否正常执行计算任务,是则转步骤s210,否则转步骤s209;如果心跳显示某个分析组计算节点的机器有问题或智能合约未收到某个分析组计算节点的心跳信息,则判定该分析组计算节点的机器故障,即不能正常执行计算任务。

步骤s209:修改智能合约中的映射表并转步骤s206将该分析组计算节点执行的计算任务分配至其他分析组计算节点重新执行。智能合约含义修改映射表的程序,当条件触发时,即智能合约判定某个分析组计算节点的机器故障时,将映射表中该分析组计算节点对应的数据包修改为其它分析组计算节点的地址以及数据存储路径,从而在更新智能合约后重新触发条件,使得算力需求方将该数据包发送给更改后的分析组计算节点并进行后续处理。

步骤s210:分析组计算节点继续执行计算任务直至在心跳信息显示计算任务执行完毕;

步骤s211:通过智能合约,整合组获取分析组计算节点的计算结果,并等待分析组计算节点的全部计算结果传输完毕。例如,当分析组某一计算节点完成计算任务,即刻向智能合约报告,根据映射表,智能合约指示对应的整合组计算节点从该分析组计算节点取得计算结果。

优选地,该步骤s211进一步通过以下步骤实现:

(1)智能合约根据心跳信息判断分析组计算节点执行任务完毕时,发送数据获取指令给完成任务的分析组计算节点对应的整合组计算节点;

(2)整合组计算节点接收到数据获取指令后按照映射表中,分析组计算节点的地址、数据存储路径与整合组计算节点的账号信息和地址之间的对应,从对应的分析组计算节点中获取计算结果;

(3)智能合约根据心跳信息判断所有的分析组计算节点执行任务完毕后,发送数据检查指令给整合组计算节点;

(4)整合组计算节点接收到数据检查指令后检测对应的分析组计算节点的计算结果是否获取完毕,是则返回数据获取完毕信息给智能合约,否则继续等待至数据获取结束后再返回数据获取完毕信息。

步骤s212:智能合约命令整合组计算节点对分析组得到的结果执行整合任务,并按时向智能合约发送心跳信息。具体地,智能合约在接收数据获取完毕信息后触发整合指令给整合组计算节点对计算结果进行整合。整合组计算节点根据数据切片得到的每个数据块的唯一的键值和算力需求方提供的用于整合的程序(即整合规则),将拆分处理后的数据块整合起来,变成需方要求的数据形式和结果。整合组计算节点的整合运算在整合组节点中、按照需方提供的包含整合规则的程序执行。整合组计算节点接收的用于数据整合的二进制可执行文件中还包括用于发送任务执行进度以及任务状态的心跳信息的程序,因此整合组计算节点在对计算结果进行整合时定时向智能合约发送心跳信息,报告任务执行进度以及任务状态。其中,整合组计算节点上的程序向智能合约发送心跳信息报告当前的任务状态应持续至整合组计算节点将全部整合后的计算结果传送至智能合约。

步骤s213:智能合约根据心跳信息判断整合组计算节点是否正常执行整合任务,是则转步骤s215,否则转步骤s214;如果心跳信息显示某个整合组计算节点的机器有问题或智能合约未收到某个整合组计算节点的心跳信息,则判定该整合组计算节点的机器故障,即不能正常执行整合任务。

步骤s214:修改智能合约中的映射表并转步骤s212将该整合组计算节点执行的整合任务分配至其他整合组计算节点重新执行。该步骤中优选将该故障的整合组计算节点执行的整合任务分配给整合组中其它已经完成整合任务的计算节点,或者等待其它整合组计算节点完成自己的任务后再执行故障机器的整合任务。具体地,将映射表中该故障的整合组计算节点对应的分析组计算节点的地址、数据存储路径与重新确定的整合组计算节点的地址之间进行对应。从而在更新智能合约后重新触发条件,使得重新确定的整合组计算节点执行该故障机器的整合任务。

步骤s215:整合组计算节点继续执行整合任务直至在心跳信息显示整合任务执行完毕;

步骤s216:智能合约接收整合组计算节点整合后的计算结果。本发明中整合组计算节点的数目由算力需求方数据的大小和用途决定,即由算力需求方制定智能合约时规定。如果整合组计算节点有多个,是否二次整合也需要根据算力需求方的数据决定。如果每个节点的数据互相独立,则不必二次整合;反之则需要。

优选地,该步骤中还根据智能合约,双方进行计算资源交易的结算,包括支付报酬、数字签名等部分。并在交易完成后,智能合约向区块链网络广播。

步骤s217:智能合约接收整合组计算节点整合后的计算结果后,需通知并将最终结果传回算力需求方。

步骤s218:流程结束。

实施例三

如图3所示,本发明实施例提供的区块链系统300,可以包括:互相通信的多个节点。所述多个节点中可以包括算力需求方301的节点和算力供应方的节点。这些算力供应方的节点又包括:分析组计算节点302和整合组计算节点303。每个计算节点可以是具有计算能力的计算机。

其中,算力需求方301将算力供应方的计算节点分成分析组和整合组,并将待处理数据切片成多个数据块后分别进行打包,每个数据包中还包含用于数据分析的二进制可执行文件,且数据包的数量与分析组中计算节点的数量相同。

算力需求方301创建智能合约并发送至区块链网络300中,所述智能合约中包含每个数据包与对应分析组计算节点302、以及每个分析组计算节点302与对应的整合组计算节点303的映射表。优选地,映射表包括:数据包与数据包对应的分析组计算节点的地址以及数据存储路径之间的对应;分析组计算节点的地址、数据存储路径与整合组计算节点的账户信息和地址之间的对应。

算力需求方301按照智能合约中映射表将数据包发送给对应的分析组计算节点302。

分析组计算节点302接收数据包并执行计算任务得到计算结果。

整合组计算节点303按照智能合约中映射表在各个分析组计算节点302的计算任务完成后将计算结果整合并发送给智能合约。

优选地,所述位于区块链网络中的算力需求方301将算力供应方的计算节点分成分析组和整合组时,分析组中计算节点的数量大于整合组中计算节点的数量。

优选地,所述用于数据分析的二进制可执行文件中包括用于发送任务执行进度以及任务状态的心跳信息的程序;所述智能合约中包括:和算力需求方的计算节点的心跳信号执行交互的程序。分析组计算节点302在执行计算任务时定时向智能合约发送心跳信息,报告任务执行进度以及任务状态。智能合约根据心跳信息判断分析组计算节点302是否正常执行计算任务,是则继续执行计算任务;否则修改智能合约中的映射表并将该分析组计算节点302执行的计算任务分配至其他分析组计算节点重新执行。

优选地,智能合约根据心跳信息判断分析组计算节点302执行任务完毕时,发送数据获取指令给该发送获取数据指令给完成任务的分析组计算节点302对应的整合组计算节点303。整合组计算节点303接收到数据获取指令后按照映射表从对应的分析组计算节点302中获取计算结果。

优选地,智能合约根据心跳信息判断全部分析组计算节点302执行任务完毕时,发送数据检查指令给整合组计算节点303。整合组计算节点303接收到数据检查指令后检测对应的分析组计算节点302的计算结果是否获取完毕,是则返回数据获取完毕信息给智能合约,否则等待数据获取完毕。智能合约在接收数据获取完毕信息后发送整合指令给整合组计算节点303对计算结果进行整合。

优选地,算力需求方301将用于数据整合的二进制可执行文件发送给整合组计算节点303,且所述用于数据整合的二进制可执行文件中包括用于发送任务执行进度以及任务状态的心跳信息的程序。整合组计算节点303在对计算结果进行整合时定时向智能合约发送心跳信息,报告任务执行进度以及任务状态。智能合约根据心跳信息判断整合组计算节点303是否正常执行整合任务,是则继续执行整合任务,否则修改智能合约中的映射表并将该整合组计算节点303执行的整合任务分配至其他整合组计算节点重新执行整合任务。

优选地,算力需求方和算力供应方根据智能合约进行计算资源交易的结算,并在交易完成后向区块链网络广播。

应该理解地是,本发明中的基于区块链技术的计算资源共享方法与区块链系统为同一个发明构思,因此对基于区块链技术的计算资源共享方法具体实施例的描述也适应于区块链系统。

本发明具有以下特点:

1、本发明通过区块链技术的匿名性、共识机制等特点保证供需双方的隐私和交易的安全,完成供需双方点对点交易,不涉及中间开发者,也去掉第三方交易所,降低租用计算资源的成本,高效可靠地满足计算资源需求者对低价计算资源的需求以及实现低产出或闲置的计算资源的利用。

2、本发明将分布式计算与区块链的去中心化结构结合在一起,先映射后规约,并将高级的智能合约替代分布式计算中的核心控制服务器,防止核心控制服务器崩溃造成计算的全盘停滞。

此外,本发明基于区块链,可以对区块链的底层技术加以改进,由于挖矿会大量的耗费电力能源,极其浪费资源,所以对于挖矿的算法可加以改进,如将算法改为对人工智能运算友好的算法,用挖矿反向影响硬件。这样做的效果是,在矿机淘汰不用于挖矿后,仍可以用于人工智能的运算,一定程度上可以提高资源的利用率。为方便本发明的实现,还可以使用某些信息展示和撮合机制,对于交易双方的信息予以展示和汇总,方便双方的交易。本发明中双方的交易以及对于数据计算的控制均要用到智能合约,本区块链的社区或开发者可以提供不同类型的高级智能合约的模板,对于不太了解区块链的用户更加的友好。本发明的区块链也可以作为一条侧链,更方便的用其他虚拟货币进行交易,进一步的方便用户。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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