本发明涉及区块链任务处理技术领域,特别涉及区块链任务分配技术领域。
背景技术:
目前区块链中各个分布式节点处理任务时,通常是将一系列任务分配到一个节点进行处理,或者是将各个任务分别分配到处理时间最短的节点进行处理。上述方法只考虑了每个节点处理任务的时间,而没有充分考虑每个节点的算力,因而不能合理的利用资源,任务处理效益不高。任务在某个节点的处理时间受节点算力、任务与节点的匹配度等因素的影响,例如某个节点处理一个匹配度不高的任务,由于该节点的算力很大,使得其处理该任务所花的时间最短,如果就这样将该任务分配到该节点进行处理,虽然处理时间最短,但是会占用过多算力,进而影响区块链中其他任务的处理,可以看出,按照现有方法分配时,处理任务的整体效益并不高。
技术实现要素:
本发明要解决区块链中现有的任务分配方法处理效益不高的问题,提出一种基于区块链节点算力的任务分配方法。
为解决上述技术问题,本发明采用的技术方案是:基于区块链节点算力的任务分配方法,设任务集t={t1,t2,…,tm},ti为任务集t中第i个任务,设节点集n={n1,n2,…,nn},nj为节点集n中第j个节点,设节点算力集f={f1,f2,…,fn},fj为节点集n中节点nj的算力,设节点算力权重集w={w1,w2,…,wn},wj为节点集n中节点nj的算力权重,设任务处理时间矩阵
将区块链中分配任务的节点称为主节点,任意一个主节点分配任务时,包括以下步骤:
步骤一、主节点收到任务集t后,获取区块链中能够用于任务处理的所有节点,得到节点集n,并获取节点集n中每个节点的算力,得到节点算力集f,然后根据节点算力集f计算得到节点算力权重集w;
步骤二、主节点获取任务集t中每个任务在节点集n中每个节点的处理时间,得到任务处理时间矩阵p;
步骤三、主节点根据任务处理时间矩阵p和节点算力权重集w,计算任务集t中每个任务在节点集n中每个节点的处理效益,得到效益矩阵,其中任务ti在节点nj的处理效益
步骤四、主节点将任务ti分配到最大eij值对应的节点nj进行处理。
作为进一步优化,所述步骤一中,节点算力权重集w中节点nj的算力权重
有益效果是:本发明将每个节点处理任务的时间和节点算力相结合,计算出每个节点分别处理每个任务的处理效益,得到效益矩阵,从而根据效益矩阵的数据将任务分配到最优的节点进行处理,既能节约任务处理时间,又能合理利用算力资源。本发明特别适用于区块链中的任务分配。
具体实施方式
下面结合实施例,进一步说明本发明的技术方案。
本发明的技术方案是:基于区块链节点算力的任务分配方法,设任务集t={t1,t2,…,tm},ti为任务集t中第i个任务,设节点集n={n1,n2,…,nn},nj为节点集n中第j个节点,设节点算力集f={f1,f2,…,fn},fj为节点集n中节点nj的算力,设节点算力权重集w={w1,w2,…,wn},wj为节点集n中节点nj的算力权重,设任务处理时间矩阵
将区块链中分配任务的节点称为主节点,任意一个主节点分配任务时,包括以下步骤:
步骤一、主节点收到任务集t后,获取区块链中能够用于任务处理的所有节点,得到节点集n,并获取节点集n中每个节点的算力,得到节点算力集f,然后根据节点算力集f计算得到节点算力权重集w;
步骤二、主节点获取任务集t中每个任务在节点集n中每个节点的处理时间,得到任务处理时间矩阵p;
步骤三、主节点根据任务处理时间矩阵p和节点算力权重集w,计算任务集t中每个任务在节点集n中每个节点的处理效益,得到效益矩阵,其中任务ti在节点nj的处理效益
步骤四、主节点将任务ti分配到最大eij值对应的节点nj进行处理。
本发明通过节点处理任务的时间和该节点的算力权重来计算处理效益,节点处理任务时间越短,效益就越大,节点算力越小,节点算力权重就越小,效益就越大,将节点处理任务时间和节点算力综合计算得到效益值,由效益值最大的节点来处理任务,既能保证处理时间相对较短,又不会占用过多的算力资源。
对上述各个步骤进行优化,其中步骤一计算权重时,节点算力权重集w中节点nj的算力权重可以是
实施例
下面具体举例说明本发明如何进行任务分配。
设有任务集t={t1,t2,t3},ti为任务集t中第i个任务,节点集n={n1,n2,n3},nj为节点集n中第j个节点,节点算力集f={f1,f2,f3},fj为节点集n中节点nj的算力,节点算力权重集w={w1,w2,w3},wj为节点集n中节点nj的算力权重,任务处理时间矩阵
本例将区块链中分配任务的节点称为主节点,任意一个主节点分配任务时包括以下步骤,例如节点n1为主节点进行任务分配时:
节点n1收到任务集{t1,t2,t3}后,获取区块链中能够用于任务处理的所有节点,得到节点集{n1,n2,n3},并获取节点集{n1,n2,n3}中每个节点的算力,得到节点算力集{f1,f2,f3},然后根据节点算力集{f1,f2,f3}计算得到节点算力权重集{w1,w2,w3},其中
节点n1获取:任务t1分别在节点n1,n2和n3中的处理时间,任务t2分别在节点n1,n2和n3中的处理时间,任务t3分别在节点n1,n2和n3中的处理时间,进而得到任务处理时间矩阵
节点n1根据任务处理时间矩阵
最后节点n1根据效益矩阵