CN110633142B - 区块链的共识方法、管理节点、电子设备以及存储介质 - Google Patents
区块链的共识方法、管理节点、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN110633142B CN110633142B CN201910692333.8A CN201910692333A CN110633142B CN 110633142 B CN110633142 B CN 110633142B CN 201910692333 A CN201910692333 A CN 201910692333A CN 110633142 B CN110633142 B CN 110633142B
- Authority
- CN
- China
- Prior art keywords
- task
- node
- nodes
- execution result
- execution
- 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 abstract description 60
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims description 4
- 238000003379 elimination reaction Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 42
- 230000007246 mechanism Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000002699 waste material Substances 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链的共识方法、管理节点、电子设备以及存储介质,共识方法包括以下步骤:根据发布节点发布的任务,将任务初始分配给初始的任务节点执行;接收初始的任务节点的执行结果,并且接收发布节点基于执行结果的判断;若发布节点判断执行结果错误,则将任务重新分配给其他的任务节点,由其他的任务节点执行;根据初始的任务节点的执行结果和其他的任务节点的执行结果确定最终的执行结果。通过上述方式,能够在保证任务完成的同时降低成本。
Description
技术领域
本发明涉及区块链技术领域,尤其是涉及一种区块链的共识方法、管理节点、电子设备以及存储介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链在本质上是一个去中心化的数据库。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次区块链网络交易的信息,用于验证其信息的有效性和生成下一个区块。
目前区块链中常用的共识机制为:每次共识都需要大量的任务节点执行任务,并且在超过半数的任务节点对结果投票同意才能通过。现有的共识方法需要多个任务节点对同一个任务进行计算,导致较大的资源浪费,提高了计算成本,并且在一些具体应用中,用户可以自己判断结果是否正确,此种情况下,现有的共识机制不适用。
发明内容
本发明主要解决的技术问题是提供一种区块链的共识方法、管理节点、电子设备以及存储介质,能够在保证任务完成的同时降低成本。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种区块链的共识方法,区块链系统包括管理节点、至少一个发布节点以及多个任务节点,所述共识方法由所述管理节点执行,所述共识方法包括:
根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行;
接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断;
若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行;
根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果。
可选的,将所述任务分配给初始的任务节点执行包括:
向所述发布节点发送任务分配指令,并向所述初始的任务节点发送任务执行指令,以指示所述发布节点将所述任务分配给所述初始的任务节点。
可选的,在将所述任务分配给初始的任务节点执行之前,包括:
获取所有所述任务节点的信用值,所述信用值与所述任务节点成功执行任务次数关联。其中,成功执行任务的次数越高,信用值就越高,所述成功执行任务次数包括成功执行初始分配的任务的次数以及成功执行重新分配的任务的次数,成功执行任务为执行结果被判断为最终结果的情况;
将所述信用值按照从高到低的顺序进行排序,选取排序在前的N个信用值对应的任务节点作为候选的第一任务节点,N为正整数;
从所述候选的第一任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述初始的任务节点。
可选的,在所述将所述任务重新分配给其他的任务节点之前,包括:
选取排序在前的M个信用值,并从所述M个信用值中剔除所述N个信用值,将剔除后剩下的信用值对应的任务节点作为所述候选的第二任务节点,M为正整数,且M大于N;
从所述候选的第二任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述其他的任务节点。
可选的,所述根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果还包括:
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果中存在相同的数量大于或等于预设的阈值,则将数量大于或等于预设的阈值的执行结果确定为最终的执行结果;
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果互不相同,则以所述初始的任务节点的执行结果为最终的执行结果。
可选的,所述方法还包括:在所述发布节点发布任务时,向所述发布节点收取所述任务执行所需的酬金,并在所述任务节点成功完成所述任务时,向所述任务节点给与对应的酬金。
可选的,所述在所述发布节点发布任务时,向所述发布节点收取所述任务执行所需的酬金,并在所述任务节点成功完成所述任务时,向所述任务节点给与对应的酬金,还包括:
在所述任务初始分配和重新分配时,均向所述发布节点收取所述任务执行所需的酬金;
在所述任务节点的执行结果被确定为最终的执行结果时,均向所述任务节点给与对应的酬金。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种区块链系统的管理节点,区块链系统还包括至少一个发布节点以及多个任务节点,所述管理节点包括:
第一任务分配模块,用于根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行;
接收模块,用于接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断;
第二任务分配模块,用于若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行;
确定模块,用于根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序用于所述处理器执行前文所述的方法。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序用于处理器执行前文所述的方法。
本发明的有益效果是:区别于现有技术的情况,本发明提供一种区块链的共识方法、管理节点、电子设备以及存储介质,其中,该区块链系统包括管理节点、至少一个发布节点以及多个任务节点,该共识方法由管理节点执行,共识方法包括:根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行;接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断;若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行;根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果。
因此,本发明的共识方法通过将任务初始分配给初始分配节点,然后进行一次判断,若结果错误后再将任务重新分配给其他节点,再结合两次任务执行情况来得到执行结果,该种共识方法能够在初始分配的时候选择较少的任务节点执行任务,从而减少执行任务的任务节点的数量,从而可在保证任务完成的同时降低成本。
附图说明
图1是本发明实施例提供的一种区块链系统的结构示意图;
图2是本发明实施例提供的一种区块链的共识方法的一流程示意图;
图3是本发明实施例提供的一种区块链的共识方法的另一流程示意图;
图4是本发明实施例提供的一种区块链的共识方法的又一流程示意图;
图5是本发明实施例提供的一种区块链的共识方法的又一流程示意图;
图6是本发明实施例提供的一种管理节点的结构示意图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
从功能上定义,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。
其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。
另一方面,区块链可由执行对象定义,请参阅图1,图1是本发明实施例提供的一种区块链系统的结构示意图。如图1所示,本发明实施例的区块链系统10包括管理节点11、多个发布节点12以及多个任务节点13。管理节点11、发布节点12以及任务节点13相互之间均可进行通信。在其他实施例中,发布节点12以及多个任务节点13的数量至少为一个,具体数量可根据具体情况进行确定。
发布节点12为发布任务的节点,任务节点13为执行任务的节点。发布节点12和任务节点13仅是根据应用时其所执行的功能进行定义。换而言之,在不同的应用中,发布节点12和任务节点13身份可互通。
发布节点12和任务节点13均在管理节点11上进行注册,由管理节点11进行统一管理。
以下将以图1所示的区块链系统为基础,介绍区块链的共识方法。
具体请参阅图2,图2是本发明实施例提供的一种区块链的共识方法的流程示意图。如图2所示的共识方法的执行主体为管理节点,其包括以下步骤:
步骤S1:根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行。
步骤S2:接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断。
步骤S3:若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行。
步骤S4:根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果。
步骤S5:若所述发布节点判断所述执行结果正确,将初始任务节点的执行结果判断为最终的执行结果。
由此,本发明实施例在任务执行时首先将任务分配给部分任务节点,即初始的任务节点,由该些任务节点去执行,若最后判断执行的结果正确,则将该些任务节点执行的结果作为最终结果,由此可以大大降低执行任务的任务节点数量,从而节省资源,降低成本。
若该些任务节点执行的结果为错误,则重新分配其他的任务节点执行该任务,从而也可以保证任务可以完成。
本实施例中,在步骤S1之前,发布节点和任务节点均在管理节点上进行注册,完成区块链的节点接入。具体注册方法可包括现有技术中任一方法。
在注册完成后,管理节点会根据区块链上各节点的功能分配对应的初始的信用值。例如,发布节点在注册完成后自动获得发布任务用的初始的信用值,该信用值可用于发布节点在发布任务时提供给管理平台。又例如,任务节点在注册完成后自动获得初始的信用值,该信用值可与后续成功执行任务后得到的信用值累加。
在步骤S1中,具体过程可如下:发布节点可首先向管理节点发起任务发布的请求。管理节点接收到该请求后,向所述发布节点发送任务分配指令,并向所述初始的任务节点发送任务执行指令,以指示所述发布节点将所述任务传送给所述初始的任务节点。也就是说,发布节点和任务节点分别接收到管理节点发送的分配指令和任务执行指令后相互建立通信连接,以进行任务文件信息的传输,其中,任务文件信息包括发布节点发送给任务节点执行的任务信息和任务节点执行完任务后产生的执行结果信息。
可选的,在其他实施例中,发布节点仅仅是发起任务发布的请求,管理节点接收到发布节点的请求后,还可以向发布节点发送任务获取指令,以指示发布节点将任务传送给管理节点,由管理节点将任务信息传送到对应的任务节点。
综上所述,在任务分配中,包括两种方案:一种是发布节点发送请求后,在管理节点的控制下,任务信息由发布节点直接传送给任务节点;另外一种是在发布节点发送请求后,任务信息由管理节点传送给任务节点。
可选的,在步骤S1中发布节点发布任务时,管理节点向发布节点收取任务执行所需的酬金和信用分值。并且还向发布节点收取的管理手续费。
值得注意的是,发布节点的酬金和信用分值是按照任务的分配次数进行收取的。即,初始分配任务时发布节点需要收取一份酬金和信用分值,在重新分配任务时,也需要收取一份酬金和信用分值。收取的酬金和信用分值次数与任务的执行次数相同,以对保证任务节点成功执行任务时能够获取对应的酬金和信用分值。
可选的,将所述任务分配给初始的任务节点执行之前,管理节点向任务节点收取押金,有利于保证任务节点对任务执行的品质。此外,在任务节点完成任务的执行后,若执行结果被判断为最终的执行结果,则该押金退还给任务节点,并且向该任务节点发送对应的酬金和信用分值。若任务节点完成任务的执行后,其执行结果被判断为错误,则扣除押金和信用分值。
可选的,请参阅图3,在步骤S1中将所述任务分配给初始的任务节点执行之前,包括以下步骤:
步骤S10:获取所有所述任务节点的信用值,所述信用值与所述任务节点成功执行任务次数关联。其中,成功执行任务的次数越高,信用值就越高。
所述成功执行任务次数包括成功执行初始分配的任务的次数以及成功执行重新分配的任务的次数。成功执行任务具体指执行结果被判断为最终结果的情况。
步骤S11:将所述信用值按照从高到低的顺序进行排序,选取排序在前的N个信用值对应的任务节点作为候选的第一任务节点,N为正整数。
步骤S12:从所述候选的第一任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述初始的任务节点。
在一实施例中,若N的取值为1,则可步骤S12选取的初始的任务节点即为候选的第一任务节点。如N的取值大于1,则步骤S11选取的候选的第一任务节点最少为2个,则在该些候选的第一任务节点中筛选出其配置最合适的任务节点作为初始的任务节点。
具体而言,可根据任务的要求进行筛选,例如,若任务对处理速度要求严格,则考虑该些候选的第一任务节点的CPU处理速度和当前任务量,若CPU处理速度越快配置分值越高,若当前任务量越少,其配置分值越高,综合计算后选择配置分值最高的候选的第一任务节点作为初始的任务节点。
步骤S2中,任务节点完成任务的执行后可将执行结果发送给管理节点和发布节点。其中,发送给管理节点和发布节点的执行结果,其形式可相同,也可不相同。例如,将执行结果直接发送给发布节点,而发送给管理节点的是对执行结果进行哈希运算后的哈希值。
在步骤S3中,若发布节点判断执行结果错误,则需要对任务进行重新分配,由其他的任务节点执行。其中,执行结果的判断可根据具体应用场景具体定义。例如在影视作品的渲染的应用中,执行结果错误可包括:渲染时出现跳帧异常导致的执行结果错误、回传文件错误导致的执行结果错误、其他项目拼接异常导致的执行结果错误等等。
请参阅图4,在步骤S3的将所述任务重新分配给其他的任务节点之前,包括以下步骤:
步骤S20:选取排序在前的M个信用值,并从所述M个信用值中剔除所述N个信用值,将剔除后剩下的信用值对应的任务节点作为所述候选的第二任务节点,M为正整数,且M大于N。
也就是说,排序在前的N-1到M的信用值。
步骤S21:从所述候选的第二任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述其他的任务节点。该步骤与前文的步骤S12相同,在此不再赘述。
步骤S4中,若初始的任务节点的执行结果被判断为最终的执行结果,则管理节点向初始的任务节点发放对应的酬金和信用值,并且返还押金。管理节点进一步向发布节点发送信用值。
请参阅图5,步骤S5还包括以下步骤:
步骤S30:若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果中存在相同的数量大于或等于预设的阈值,则将数量大于或等于预设的阈值的执行结果确定为最终的执行结果。
步骤S30的酬金和信用值分配如下:确定为最终执行结果对应的任务节点中,若包含初始的任务节点,则确定为最终执行结果对应的任务节点平分发布节点的两份酬金和执行结果未被判断为最终的执行结果对应的任务节点的押金,并获取对应的信用值。发布节点扣除两份酬金和平台手续费,并扣除信用值。执行结果未被判断为最终的执行结果对应的任务节点扣除押金和信用值。
若确定为最终执行结果对应的任务节点中,没有包含初始的任务节点,则确定为最终执行结果对应的任务节点平分发布节点的一份酬金和其他未被判断为最终的执行结果对应的任务节点的押金,并获取对应的信用值。发布节点扣除一份酬金和平台手续费,并获得信用值。执行结果未被判断为最终的执行结果对应的任务节点扣除押金和信用值。
步骤S31:若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果互不相同,则以所述初始的任务节点的执行结果为最终的执行结果。
步骤S30的酬金和信用值分配如下:初始的任务节点平分发布节点的一份酬金,并获得信用值,其他的任务节点平分发布节点的一份酬金,并获得信用值,发布节点需扣除两份酬金和平台手续费,并且扣除信用分值。
也就是说,在所述发布节点发布任务时,管理节点向所述发布节点收取所述任务执行所需的酬金,并在所述任务节点成功完成所述任务时,向所述任务节点给与对应的酬金。
具体的,在所述任务初始分配和重新分配时,均向所述发布节点收取所述任务对应的酬金,在所述任务节点的执行结果被确定为最终的执行结果时,均向所述任务节点给与对应的酬金。
以下以影视作品渲染为实际应用场景来介绍本方案的共识方法,其中,以初始的任务节点为1个,重新分配的任务节点为2个为例子进行介绍。具体如下:
管理节点根据发布节点发布的任务,将任务初始分配给初始的任务节点W1执行。在任务节点W1完成任务后,发布节点判断任务节点W1的执行结果,若判断任务节点W1的执行结果符合要求,则管理节点将任务节点W1的执行作为最终的执行结果进行保存。
若判断任务节点W1的执行结果不符合要求,即错误时,管理节点重新分配任务给任务节点W2和任务节点W3,由任务节点W2和任务节点W3进行重新执行。在任务节点W2和任务节点W3完成任务的执行后,将3个任务节点W1、任务节点W2和任务节点W3的结果进行比对,任意两个结果相同的则为最终的执行结果,如3个任务节点的执行结果互不相同,则推定任务节点W1的执行结果为最终的执行结果。
其中,对应的酬金和信用值分配如下:
发布节点收到任务节点W1反馈的执行结果后判断为正确的,管理节点向任务节点W1发放任务酬金及信用值,并返还押金,管理节点向发布节点发放信用分奖励。
发布节点收到任务节点W1反馈的执行结果后判断为错误的,需向管理节点增加一份酬金,以将任务重新分配给任务节点W2和任务节点W3,进行二次共识。
若二次共识结果为任务节点W1、任务节点W2、任务节点W3的执行结果均正确,则任务节点W1获得一份酬金及信用值,任务节点W2和任务节点W3平分一份酬金并分别获得信用值,发布节点需扣除双倍酬金和平台手续费,并扣除信用值。
若二次共识结果为任务节点W1和任务节点W2的执行结果正确、任务节点W3的执行结果错误,则任务节点W1、任务节点W2分别获得一份酬金及信用值,并平分任务节点W3的押金,任务节点W3扣除押金及信用值,发布节点需扣除双倍酬金和平台手续费,并扣除信用值;同理任务节点W1和任务节点W3的执行结果正确、任务节点W2的执行结果错误时按相同方法分配。
二次共识结果为任务节点W1、任务节点W2、任务节点W3的执行结果均不相同,推定任务节点W1为正确结果,则任务节点W1获得一份酬金及信用值,任务节点W2和任务节点W3平分一份酬金并分别获得信用值,发布节点扣除双倍酬金和平台手续费,并扣除信用值。
二次共识结果为任务节点W1的执行结果错误、任务节点W2和任务节点W3的执行结果正确,则任务节点W1扣除押金和信用值,任务节点W2和任务节点W3平分一份酬金及任务节点W1的押金,并分别获得信用值,发布节点需扣除一份酬金和平台手续费,并获得信用值。
以上介绍的是区块链的共识方法。以下将对应介绍执行该方法的节点。
请参阅图6,图6是本发明实施例提供的一种管理节点的结构示意图。如图6所示,管理节点60包括:
第一任务分配模块61,用于根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行;
接收模块62,用于接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断;
第二任务分配模块63,用于若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行;
确定模块64,用于根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果。
可选的,第一任务分配模块61向所述发布节点发送任务分配指令,并向所述初始的任务节点发送任务执行指令,以指示所述发布节点将所述任务分配给所述初始的任务节点。
可选的,第一任务分配模块61获取所有所述任务节点的信用值,所述信用值与所述任务节点成功执行任务次数关联。其中,成功执行任务的次数越高,信用值就越高,所述成功执行任务次数包括成功执行初始分配的任务的次数以及成功执行重新分配的任务的次数,成功执行任务为执行结果被判断为最终结果的情况;
将所述信用值按照从高到低的顺序进行排序,选取排序在前的N个信用值对应的任务节点作为候选的第一任务节点,N为正整数;
从所述候选的第一任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述初始的任务节点。
可选的,第二任务分配模块63选取排序在前的M个信用值,并从所述M个信用值中剔除所述N个信用值,将剔除后剩下的信用值对应的任务节点作为所述候选的第二任务节点,M为正整数,且M大于N;
从所述候选的第二任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述其他的任务节点。
可选的,若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果中存在相同的数量大于或等于预设的阈值,则确定模块64将数量大于或等于预设的阈值的执行结果确定为最终的执行结果;
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果互不相同,则确定模块64以所述初始的任务节点的执行结果为最终的执行结果。
可选的,接收模块62在所述发布节点发布任务时,向所述发布节点收取所述任务执行所需的酬金,并在所述任务节点成功完成所述任务时,向所述任务节点给与对应的酬金。
可选的,接收模块62在所述任务初始分配和重新分配时,均向所述发布节点收取所述任务执行所需的酬金;
在所述任务节点的执行结果被确定为最终的执行结果时,均向所述任务节点给与对应的酬金。
下面参考图7来描述根据本发明的这种实施例的电子设备800。图7显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。例如,所述处理单元810可以执行如图2中所示的步骤S1:根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行。步骤S2:接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断。步骤S3:若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行。步骤S4:根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果。步骤S5:若所述发布节点判断所述执行结果正确,将初始任务节点的执行结果判断为最终的执行结果。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)821和/或高速缓存存储单元822,还可以进一步包括只读存储单元(ROM)823。
存储单元820还可以包括具有一组(至少一个)程序模块825的程序/实用工具824,这样的程序模块825包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备870(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施例的方法。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其他实施例。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限。
Claims (9)
1.一种区块链的共识方法,其特征在于,区块链系统包括管理节点、至少一个发布节点以及多个任务节点,所述共识方法由所述管理节点执行,所述共识方法包括:
根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行;
接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断;
若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行;
根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果:
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果中存在相同的数量大于或等于预设的阈值,则将数量大于或等于预设的阈值的执行结果确定为最终的执行结果;
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果互不相同,则以所述初始的任务节点的执行结果为最终的执行结果。
2.根据权利要求1所述的方法,其特征在于,将所述任务分配给初始的任务节点执行包括:
向所述发布节点发送任务分配指令,并向所述初始的任务节点发送任务执行指令,以指示所述发布节点将所述任务分配给所述初始的任务节点。
3.根据权利要求1所述的方法,其特征在于,在将所述任务分配给初始的任务节点执行之前,包括:
获取所有所述任务节点的信用值,所述信用值与所述任务节点成功执行任务次数关联,其中,成功执行任务的次数越高,信用值就越高,所述成功执行任务次数包括成功执行初始分配的任务的次数以及成功执行重新分配的任务的次数,成功执行任务为执行结果被判断为最终的执行结果的情况;
将所述信用值按照从高到低的顺序进行排序,选取排序在前的N个信用值对应的任务节点作为候选的第一任务节点,N为正整数;
从所述候选的第一任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述初始的任务节点。
4.根据权利要求3所述的方法,其特征在于,在所述将所述任务重新分配给其他的任务节点之前,包括:
选取排序在前的M个信用值,并从所述M个信用值中剔除所述N个信用值,将剔除后剩下的信用值对应的任务节点作为所述候选的第二任务节点,M为正整数,且M大于N;
从所述候选的第二任务节点中选择配置与所述任务的处理要求匹配的任务节点作为所述其他的任务节点。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述发布节点发布任务时,向所述发布节点收取所述任务执行所需的酬金,并在所述任务节点成功完成所述任务时,向所述任务节点给与对应的酬金。
6.根据权利要求5所述的方法,其特征在于,所述在所述发布节点发布任务时,向所述发布节点收取所述任务执行所需的酬金,并在所述任务节点成功完成所述任务时,向所述任务节点给与对应的酬金,还包括:
在所述任务初始分配和重新分配时,均向所述发布节点收取所述任务执行所需对应的酬金;
在所述任务节点的执行结果被确定为最终的执行结果时,均向所述任务节点给与对应的酬金。
7.一种区块链系统的管理节点,其特征在于,区块链系统还包括至少一个发布节点以及多个任务节点,所述管理节点包括:
第一任务分配模块,用于根据所述发布节点发布的任务,将所述任务初始分配给初始的任务节点执行;
接收模块,用于接收所述初始的任务节点的执行结果,并且接收所述发布节点基于所述执行结果的判断;
第二任务分配模块,用于若所述发布节点判断所述执行结果错误,则将所述任务重新分配给其他的任务节点,由所述其他的任务节点执行;
确定模块,用于根据所述初始的任务节点的执行结果和所述其他的任务节点的执行结果确定最终的执行结果:
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果中存在相同的数量大于或等于预设的阈值,则将数量大于或等于预设的阈值的执行结果确定为最终的执行结果;
若所述初始的任务节点的执行结果和所述其他的任务节点的执行结果互不相同,则以所述初始的任务节点的执行结果为最终的执行结果。
8.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序用于所述处理器执行所述1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序用于处理器执行所述1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910692333.8A CN110633142B (zh) | 2019-07-30 | 2019-07-30 | 区块链的共识方法、管理节点、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910692333.8A CN110633142B (zh) | 2019-07-30 | 2019-07-30 | 区块链的共识方法、管理节点、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110633142A CN110633142A (zh) | 2019-12-31 |
CN110633142B true CN110633142B (zh) | 2022-04-15 |
Family
ID=68969047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910692333.8A Active CN110633142B (zh) | 2019-07-30 | 2019-07-30 | 区块链的共识方法、管理节点、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633142B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111741061B (zh) * | 2020-05-12 | 2023-03-28 | 深圳市正能信息技术有限公司 | 一种基于区块链技术的电子设备广域管理系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182851B2 (en) * | 2016-10-20 | 2021-11-23 | International Business Machines Corporation | Inter-ledger messaging in a blockchain |
US10291413B2 (en) * | 2017-02-17 | 2019-05-14 | Accenture Global Solutions Limited | Hardware blockchain corrective consensus operating procedure enforcement |
CN108111604B (zh) * | 2017-12-21 | 2020-08-14 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
CN109039648B (zh) * | 2018-08-03 | 2021-09-03 | 克洛斯比尔有限公司 | 一种区块链的创建方法、设备及可读存储介质 |
CN109242484A (zh) * | 2018-08-09 | 2019-01-18 | 玄章技术有限公司 | 一种区块链的共识激励方法 |
-
2019
- 2019-07-30 CN CN201910692333.8A patent/CN110633142B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110633142A (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US8434088B2 (en) | Optimized capacity planning | |
US8209695B1 (en) | Reserving resources in a resource-on-demand system for user desktop utility demand | |
CN108052615B (zh) | 访问请求的处理方法、装置、介质及电子设备 | |
US7013344B2 (en) | Massively computational parallizable optimization management system and method | |
CN100487659C (zh) | 用于优化分段资源分配的方法和设备 | |
US8458334B2 (en) | Optimized capacity planning | |
US20090313635A1 (en) | System and/or method for balancing allocation of data among reduce processes by reallocation | |
US10886743B2 (en) | Providing energy elasticity services via distributed virtual batteries | |
Zhao et al. | Microservice based computational offloading framework and cost efficient task scheduling algorithm in heterogeneous fog cloud network | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN103544064A (zh) | 云计算方法、云管理平台和客户端 | |
US20120005345A1 (en) | Optimized resource management for map/reduce computing | |
CN104252391A (zh) | 用于在分布式计算系统中管理多个作业的方法和装置 | |
US9471391B1 (en) | Aggregating resource requests | |
Li et al. | MapReduce delay scheduling with deadline constraint | |
CN115202876A (zh) | 一种基于etl服务器的任务处理方法、系统和电子设备 | |
CN110633142B (zh) | 区块链的共识方法、管理节点、电子设备以及存储介质 | |
CN114327852A (zh) | 基于性能和成本来平衡大型机和分布式工作负载 | |
CN109347982A (zh) | 一种数据中心的调度方法及装置 | |
CN112631783A (zh) | 虚拟资源分配方法、装置、电子设备及存储介质 | |
CN109842665B (zh) | 用于任务分配服务器的任务处理方法和装置 | |
Shameem et al. | An effective resource management in cloud computing | |
CN114780232A (zh) | 云应用调度方法、装置、电子设备及存储介质 | |
JP2018181123A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200513 Address after: 210094 Xuanwu District, Jiangsu, Xiaolingwei 200, Nanjing Applicant after: Wei Songjie Address before: 518000 Tailing Building 903, 5022 Fifth Avenue, Bantian Street, Longgang District, Shenzhen City, Guangdong Province Applicant before: SILICTEC (SHENZHEN) ELECTRONIC TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |