CN110969527B - 一种区块链的数据处理方法及相关设备 - Google Patents
一种区块链的数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN110969527B CN110969527B CN201811150439.7A CN201811150439A CN110969527B CN 110969527 B CN110969527 B CN 110969527B CN 201811150439 A CN201811150439 A CN 201811150439A CN 110969527 B CN110969527 B CN 110969527B
- Authority
- CN
- China
- Prior art keywords
- calculation
- shared
- consensus
- input parameters
- algorithm
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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
Abstract
本发明实施例提供了一种区块链的数据处理方法及相关设备,方法应用在区块链的任务处理设备中,任务处理设备包括共识服务器与共识计算器,共识计算器包括一个共享计算内核和另外n个计算内核,共识服务器从区块链的任务发布设备获取输入参数并将输入参数发送至共识计算器;共识计算器根据核心算法blake2bR12算法确定出一组共享输入参数和一组非共享输入参数,并通过共享计算内核确定出共享输入参数的共享结果。根据共享结果和非共享输入参数确定n组计算数据;将n组计算数据对应赋值到n个其他计算内核。共识计算器的各其他计算内核在共享结果的基础上,分别进行数据计算,不再进行重复计算,降低了设计成本以及整机功耗。
Description
技术领域
本发明涉及区块链的技术领域,特别是涉及一种区块链的数据处理方法及相关设备。
背景技术
近年来,区块链得到越来越多的应用,在区块链中,任务发布设备发布区块链任务,此设备称之为“矿池”,任务处理设备处理区块链任务,此设备称之为“矿机”。随着区块链技术的不断发展,区块链中的计算任务成指数增长,在区块链中负责计算任务的是共识计算器。
现有技术中,一个共识计算器有数个(例如x个,x为自然数)计算芯片,每个芯片又有数个计算内核(例如y个,y为自然数),每个计算内核都在进行相同的计算算法blake2b_R12,区别在于每个计算内核的输入参数有一个值不同。也就是说整个共识计算器有n=x*y个计算内核,它们同时在做一个相同的算法计算,区别只是这n个同时进行的算法的某个输入参数不同,例如一共有16个输入参数,但是每个内核计算的时候除了第5个参数互相之间都不雷同,其他15个参数完全一致。
发明人发现现有技术中存在如下问题,整个共识计算器有n个计算内核,计算算法一致,在16个输入参数中,只是第5个参数值不同,每个计算内核使用的该第5个参考值是两两互不相同的值,但是其余15个参数是一致的,所以,这n个内核的计算工作量,有一部分工作使用了相同值进行计算所以是重复的工作,增加了设计成本以及整机功耗。
发明内容
本发明实施例提出了一种区块链的数据处理方法及相关设备,以解决共识计算器中存在重复计算工作,导致设计成本以及整机功耗较大的问题。
依据本发明的一个方面,提供了一种区块链的任务处理方法,应用在区块链的任务处理设备中,所述任务处理设备包括共识服务器与共识计算器,所述共识计算器包括共享计算内核和n个其他计算内核,n为自然数,所述方法包括:
共识服务器从区块链的任务发布设备获取输入参数;
共识服务器将所述输入参数发送至共识计算器;
共识计算器确定出共享输入参数和非共享输入参数;
共识计算器将所述共享输入参数设置到所述共享计算内核;
共识计算器通过所述共享计算内核确定出所述共享输入参数的共享结果;
共识计算器将所述共享结果共享至共识计算器的所述其他计算内核;
共识计算器根据所述非共享输入参数和所述共享结果确定n组计算数据;
共识计算器的所述n个其他计算内核根据所述n组计算数据,分别进行数据计算;
其中,所述共识计算器的核心算法为blake2bR12算法;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
根据本发明的另一方面,提供了一种区块链的数据处理设备,应用在区块链的任务处理设备中,所述任务处理设备包括共识服务器与共识计算器,所述共识计算器包括共享计算内核和n个其他计算内核,n为自然数;
所述共识服务器用于:
从区块链的任务发布设备获取输入参数;
将所述输入参数发送至共识计算器;
所述共识计算器用于:
确定出共享输入参数和非共享输入参数;
将所述共享输入参数设置到所述共享计算内核;
通过所述共享计算内核确定出所述共享输入参数的共享结果;
将所述共享结果共享至共识计算器的所述其他计算内核;
根据所述非共享输入参数和所述共享结果确定n组计算数据;
通过所述n个其他计算内核根据所述n组计算数据,分别进行数据计算;
其中,所述共识计算器的核心算法为blake2bR12算法;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
根据本发明的另一方面,提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述的区块链的数据处理方法的步骤。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现所述的区块链的数据处理方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,任务处理设备包括共识服务器与共识计算器,共识计算器包括共享计算内核和n个其他计算内核,共识服务器从区块链的任务发布设备获取输入参数,将输入参数发送至共识计算器,共识计算器确定出共享输入参数和非共享输入参数;共识计算器将共享输入参数设置到共享计算内核;共识计算器通过共享计算内核确定出共享输入参数的共享结果;共识计算器将共享结果共享至共识计算器的其他计算内核;共识计算器根据非共享输入参数和共享结果确定n组计算数据;共识计算器的n个其他计算内核根据n组计算数据,分别进行数据计算,具体的,共识计算器的核心算法为blake2bR12;共享计算内核以及各其他计算内核共同完成blake2bR12算法。本发明实施例中,设置了共享计算内核,通过共享计算内核计算出共享输入参数的共享结果,在共享结果的基础上,其他计算内核不需要再对共享输入参数进行计算,只需要分别进行其他非共享输入参数的计算,因此,共识计算器中各计算内核不再进行重复计算,降低了设计成本以及整机功耗。
附图说明
图1是本发明一个实施例的一种区块链的数据处理方法的步骤流程图;
图2是本发明一个实施例的另一种区块链的数据处理方法的步骤流程图;
图3是本发明一个实施例的一种区块链的数据处理装置的结构框图;
图4是本发明实施例中电子设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一个实施例的一种区块链的数据处理方法的步骤流程图,应用在区块链的任务处理设备中,任务处理设备包括共识服务器与共识计算器,所述共识计算器包括共享计算内核和n个其他计算内核,n为自然数,所述方法具体可以包括如下步骤:
步骤101,共识服务器从区块链的任务发布设备获取输入参数。
共识服务器从区块链的任务发布设备获取输入参数。
在本发明实施例中,任务处理设备的共识服务器负责与任务发布设备进行通信。
任务处理设备的共识服务器在任务发布设备中注册为合法的身份,从而可以从任务发布设备获取输入参数。
需要说明的是,任务处理设备与任务发布设备之间的协议较多,例如,stratum、GBT(getblocktemplate)、getwork、getwork with rollntime extension,等等,本发明实施例对此不加以限制。
步骤102,共识服务器将所述输入参数发送至共识计算器。
在本发明实施例中,共识计算器负责处理计算任务。
共识服务器可以通过串口将共识任务下发至共识计算器。
步骤103,共识计算器确定出共享输入参数和非共享输入参数。
本发明实施例中,共识计算器包括共享计算内核和n个其他计算内核。共享计算内核用共享输入参数计算得到的共享结果,并共享给n个其他计算内核,使得n个其他计算内核不需要重复进行共享输入参数的计算;n个其他计算内核用共享结果和非共享输入参数进行计算。
具体应用中,共识计算器可以将输入参数中,在n个计算内核中输入一致的参数作为共享输入参数,在n个计算内核中输入不一致的参数作为非共享输入参数。
本发明实施例中,考虑到输入参数中,有部分输入参数在各个计算内核的值是一致的,所以各计算内核计算得到的计算结果也是一致的,如果每个计算内核都对该部分计算结果一致的输入参数进行计算,则会造成大量的重复计算,造成较大的功耗和资源浪费。
因此,可以根据将计算后得到一致计算结果的赋值参数确定为共享输入参数,将通过共享输入参数计算得到的结果作为共享结果,n个其他计算内核可以共享该共享结果,不需要重复计算。
步骤104,共识计算器将所述共享输入参数设置到所述共享计算内核。
本发明实施例中,共识计算器在确定出共享输入参数后,可以将共享输入参数安排给共享计算内核,由计算内核首先对共享输入参数进行计算。
步骤105,共识计算器通过所述共享计算内核确定出所述共享输入参数的共享结果。
本发明实施例中,共识计算器内核中预先设置有算法模型,可以通过算法模型计算得到共享输入参数的共享结果。
步骤106,共识计算器将所述共享结果共享至共识计算器的所述其他计算内核。
本发明实施中,共识计算器可以将共识结果共享给其他计算内核,使得其他计算内核不需要计算,就可以得到共享结果,减少了其他计算内核的计算量。
步骤107,共识计算器根据所述非共享输入参数和所述共享结果确定n组计算数据。
本发明实施例中,非共享输入参数可以包括有多组,例如可以包括n组,每个其他计算内核需要用其中一组进行计算;共识计算器器可以将共享结果与一组非共享输入参数组合后确定为其他计算内核的计算数据;则可以根据非共享输入参数和共享结果确定n组计算数据,使得各其他计算内核可以分配到其中一组计算数据。
步骤108,共识计算器的所述n个其他计算内核根据所述n组计算数据,分别进行数据计算;其中,所述共识计算器的核心算法为blake2bR12算法;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
本发明实施例中,每个其他计算内核可以独立计算一组计算数据,且因为该计算数据是在共享结果的基础上进行优化的计算数据,使得计算内核之间没有重复计算。
具体应用中,共识计算器的核心算法为blake2bR12算法,通过上述步骤共享计算内核以及各其他计算内核共同完成blake2bR12算法。
综上所述,在本发明实施例中,任务处理设备包括共识服务器与共识计算器,共识计算器包括共享计算内核和n个其他计算内核,共识服务器从区块链的任务发布设备获取输入参数,将输入参数发送至共识计算器,共识计算器确定出共享输入参数和非共享输入参数;共识计算器将共享输入参数设置到共享计算内核;共识计算器通过共享计算内核确定出共享输入参数的共享结果;共识计算器将共享结果共享至共识计算器的其他计算内核;共识计算器根据非共享输入参数和共享结果确定n组计算数据;共识计算器的n个其他计算内核根据n组计算数据,分别进行数据计算。本发明实施例中,设置了共享计算内核,通过共享计算内核计算出共享输入参数的共享结果,在共享结果的基础上,其他计算内核不需要再对共享输入参数进行计算,只需要分别用共享结果和其他非共享输入参数进行计算,因此,共识计算器中各计算内核不再进行重复计算,降低了设计成本以及整机功耗。
参照图2,示出了本发明一个实施例的另一种区块链的数据处理方法的具体步骤流程图,应用在区块链的任务处理设备中,任务处理设备包括共识服务器与共识计算器,共识计算器包括共享计算内核和n个其他计算内核,n为自然数,该方法具体可以包括如下步骤:
步骤201,共识服务器从区块链的任务发布设备获取输入参数。
步骤202,共识服务器将所述输入参数发送至共识计算器;其中,所述共识计算器的核心算法为blake2bR12;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
本发明实施例中,共识计算器的核心算法是blake2bR12,也可以称为blake2b十二轮算法。每一轮算法做了8次G_BLOCK算法。
考虑到在常规的数据计算中,核心算法需要12*8=96单元的硬件资源。每个G_BLOCK算法需要的资源为:6个输入参数的加法器一个,4个输入参数的加法器一个,保存中间结果的32位寄存器八个,32位的双变量异或处理器四个,32位的变量与常数的异或处理器两个。所以,本发明实施例通过下述步骤能减少n个计算内核第一轮算法的G_BLOCK算法的次数,就能节省硬件资源的需求,从而减少成本降低功耗。
步骤203,共识计算器确定出共享输入参数和非共享输入参数;所述blake2bR12算法为12轮blake2b运算,每轮所述blake2b运算进行8次G_BLOCK计算,每次所述G_BLOCK计算中,所述G_BLOCK的算法模型采用6个输入参数:R,j,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(R,j,a,b,c,d),其中所述R和所述j表示所述G_BLOCK计算为R轮blake2b运算的第j次G_BLOCK计算,其中,所述R为0至11的整数;所述j为0至7的整数。
本发明实施例中,整个blake2bR12算法,共识服务器可以向共识计算器发送16个输入参数,16个输入参数里只有一个参数不同,其他15个参数相同。根据blake2bR12的16个输入参数、以及blake2bR12算法白皮书定义的常数数据表格,共识计算器可以得到32个数值,其中16个数值包括了共享输入参数和非共享输入参数,用Mi表示,i为0至15的整数,具体表示为:“M0-MF”16个数值,另外还有“V0-VF”16个数值,共同构成32个数值,其中n个其他计算内核之间只有M4的值不一致,其他数值完全一致。
作为本发明实施例的一种优选方案,所述a、b、c和d对应于V0至VF16个数值中的其中4个,V0至VF的初始值为blake2bR12算法白皮书中定义的值,每次所述G_BLOCK计算,通过下述计算模型进行运算后,得到下一次G_BLOCK计算对应的新的a、b、c、d值:
Gj(R,j,a,b,c,d):
a←a+b+M[blake2bsigma[R][2*j]];
c←c+d;
a←a+b+M[blake2bsigma[R][2*j+1]];
c←c+d;
其中,上述公式中:
a←a+b+M[blake2bsigma[R][2*j]]
该公式表示,a为本次计算赋值中,下述三个值的和:a、b、以及M[blake2bsigma[R][2*j]]。
该公式表示:d为本次计算赋值中,d异或a后完成func函数计算。
c←c+d;
该公式表示:c为本次计算赋值中,c与d的和。
该公式表示:b为本次计算赋值中,b异或c后完成func函数计算。
func函数为blake2bR12算法白皮书中定义的一些移位操作计算
a←a+b+M[blake2bsigma[R][2*j+1]];
c←c+d;
该四个模型与上述模型原理相似,在此不再赘述。
较佳地,本发明实施例中,所述i与所述R,j具有对应关系;所述对应关系根据blake2bR12算法白皮书中定义的blake2b_sigma[R][2j]确定。
具体应用中,blake2b_sigma[R][2j]可以为下述的二维数组:
根据R,j可以从上述blake2b_sigma[R][2j]中查到对应的i值,从而得到对应于M0至MF16个数值的其中一个。
本发明实施例中,在n个所述其他计算内核中,只有M4的值不一致;所以,本发明实施例的算法能优化的是第一轮blake2b运算中没用到M4的G_BLOCK计算部分。
具体应用中,共识计算器中,8次G_BLOCK的算法模型具体可以表示为:
G0(R,0,V0,V4,V8,VC);
G1(R,1,V1,V5,V9,VD);
G2(R,2,V2,V6,VA,VE);
G3(R,3,V3,V7,VB,VF);
G4(R,4,V0,V5,VA,VF);
G5(R,5,V1,V6,VB,VC);
G6(R,6,V2,V7,V8,VD);
G7(R,7,V3,V4,V9,VE)。
在本发明实施例中,因为在n个其他计算内核中,只有M4的值不一致,也就是i=4,而blake2b_sigma[0][2*2]=4,所以R=0,j=2时对应的计算参数为M4,即,G2(0,2,V2,V6,VA,VE)通过R=0,j=2查找对应的M4不同,那么计算得到的V2、V6,VA,VE的值在n个计算内核中也不一致,因此,不包括V2、V6,VA,VE的G_BLOCK计算结果是一致的,可以得出,第一轮blake2b计算的下述3个G_BLOCK的输入参数经过计算,结果是一致的,所以它们的输入参数可以作为共享输入参数,计算可以由共享计算内核完成,具体为:
G0(0,0,V0,V4,V8,VC);
G1(0,1,V1,V5,V9,VD);
G3(0,3,V3,V7,VB,VF);这3次G_BLOCK计算在共享计算内核里完成。
相应的,因为在n个其他计算内核中,只有M4的值不一致,所以,G2(0,2,V2,V6,VA,VE)通过R=0,j=2查找对应的M4不同,那么计算得到的V2、V6,VA,VE的值在n个计算内核中也不一致,因而造成使用到V2,V6,VA,VE的G_BLOCK计算结果不一致,所以它们的输入参数可以作为非共享输入参数,计算可以由非共享计算内核完成,具体为:
G4(R,4,V0,V5,VA,VF);
G5(R,5,V1,V6,VB,VC);
G6(R,6,V2,V7,V8,VD);
G7(R,7,V3,V4,V9,VE)。
上述5次G_BLOCK计算在非共享计算内核里完成。
步骤204,共识计算器将所述共享输入参数设置到所述共享计算内核。
步骤205,共识计算器通过所述共享计算内核确定出所述共享输入参数的共享结果。
步骤206,共识计算器将所述共享结果共享至共识计算器的所述其他计算内核。
步骤207,共识计算器根据所述非共享输入参数和所述共享结果确定n组计算数据。
步骤208,共识计算器的所述n个其他计算内核根据所述n组计算数据,分别进行数据计算。
本发明实施例中,以步骤203中的赋值情况为例,一共8个G_BLOCK运算里,可以有3个运算是可以共享结果不用重复运算的。
可以得出,按常规一个内核需要做12*8=96个G_BLOCK运算,每个芯片有y个内核,原本需要96*y的计算资源,按照本发明实施例的上述方案,优化计算资源后只需要((96-3)*y+3)个G_BLOCK运算。假如一个芯片有100个内核,可以节约资源(3*100-3)/(96*100)=3.09%。
在本发明实施例中,任务处理设备包括共识服务器与共识计算器,共识计算器包括共享计算内核和n个其他计算内核,共识服务器从区块链的任务发布设备获取输入参数,将输入参数发送至共识计算器,共识计算器确定出共享输入参数和非共享输入参数;共识计算器将共享输入参数设置到共享计算内核;共识计算器通过共享计算内核确定出共享输入参数的共享结果;共识计算器将共享结果共享至共识计算器的其他计算内核;共识计算器根据非共享输入参数和共享结果确定n组计算数据;共识计算器的n个其他计算内核根据n组计算数据,分别进行数据计算。本发明实施例中,设置了共享计算内核,通过共享计算内核计算出共享输入参数的共享结果,在共享结果的基础上,其他计算内核不需要再对共享输入参数进行计算,只需要分别进行其他非共享输入参数的计算,因此,共识计算器中各计算内核不再进行重复计算,降低了设计成本以及整机功耗。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明一个实施例的一种区块链的数据处理设备的结构框图,应用在区块链的任务处理设备中,所述任务处理设备包括共识服务器310与共识计算器320;所述共识计算器包括共享计算内核和n个其他计算内核,n为自然数;
所述共识服务器310用于:
从区块链的任务发布设备获取输入参数;
将所述输入参数发送至共识计算器;
所述共识计算器320用于:
确定出共享输入参数和非共享输入参数;
将所述共享输入参数设置到所述共享计算内核;
通过所述共享计算内核确定出所述共享输入参数的共享结果;
将所述共享结果共享至共识计算器的所述其他计算内核;
根据所述非共享输入参数和所述共享结果确定n组计算数据;
通过所述n个其他计算内核根据所述n组计算数据,分别进行数据计算;其中,所述共识计算器的核心算法为blake2bR12算法;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
优选地,所述blake2bR12算法为12轮blake2b运算,每轮所述blake2b运算进行8次G_BLOCK计算,每次所述G_BLOCK计算中,所述G_BLOCK的算法模型采用6个输入参数:R,j,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(R,j,a,b,c,d),其中所述R和所述j表示所述G_BLOCK计算为R轮blake2b运算的第j次G_BLOCK计算,其中,所述R为0至11的整数;所述j为0至7的整数。
优选地,所述共享输入参数和所述非共享输入参数用Mi表示,i为0至15的整数;在n个所述其他计算内核的计算数据中,只有M4的值不一致;所述共识计算器确定出共享输入参数和非共享输入参数,包括:
所述共识计算器确定出所述共享输入参数包括:M0,M1,M2,M3,M5,M6,M7,M8,M9,MA,MB,MC,MD,ME,MF;
所述非共享输入参数为:M4;
所述a、b、c和d对应于V0至VF16个数值中的其中4个,V0至VF的初始值为blake2bR12算法白皮书中定义的值,每次所述G_BLOCK计算,通过下述计算模型进行运算后,得到下一次G_BLOCK计算对应的新的a、b、c、d值:
Gj(R,j,a,b,c,d):
a←a+b+M[blake2bsigma[R][2*j]];
c←c+d;
a←a+b+M[blake2bsigma[R][2*j+i]];
c←c+d;
所述i与所述R,j具有对应关系;所述对应关系根据blake2bR12算法白皮书中定义的blake2b_sigma[R][2j]确定。
对于设备实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本发明实施例中,任务处理设备包括共识服务器与共识计算器,共识计算器包括共享计算内核和n个其他计算内核,共识服务器从区块链的任务发布设备获取输入参数,将输入参数发送至共识计算器,共识计算器确定出共享输入参数和非共享输入参数;共识计算器将共享输入参数设置到共享计算内核;共识计算器通过共享计算内核确定出共享输入参数的共享结果;共识计算器将共享结果共享至共识计算器的其他计算内核;共识计算器根据非共享输入参数和共享结果确定n组计算数据;共识计算器的n个其他计算内核根据n组计算数据,分别进行数据计算。本发明实施例中,设置了共享计算内核,通过共享计算内核计算出共享输入参数的共享结果,在共享结果的基础上,其他计算内核不需要再对共享输入参数进行计算,只需要分别进行其他非共享输入参数的计算,因此,共识计算器中各计算内核不再进行重复计算,降低了设计成本以及整机功耗。
图4是本发明实施例中电子设备的结构示意图。该电子设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在电子设备400上执行存储介质430中的一系列指令操作。
电子设备400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述区块链的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述区块链的数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种区块链的数据处理方法及相关设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种区块链的数据处理方法,其特征在于,应用在区块链的任务处理设备中,所述任务处理设备包括共识服务器与共识计算器,所述共识计算器包括共享计算内核和n个其他计算内核,n为自然数,所述方法包括:
共识服务器从区块链的任务发布设备获取输入参数;
共识服务器将所述输入参数发送至共识计算器;
共识计算器确定出共享输入参数和非共享输入参数;
共识计算器将所述共享输入参数设置到所述共享计算内核;
共识计算器通过所述共享计算内核确定出所述共享输入参数的共享结果;
共识计算器将所述共享结果共享至共识计算器的所述其他计算内核;
共识计算器根据所述非共享输入参数和所述共享结果确定n组计算数据;
共识计算器的所述n个其他计算内核根据所述n组计算数据,分别进行数据计算;
其中,所述共识计算器的核心算法为blake2bR12算法;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
2.根据权利要求1所述的方法,其特征在于,所述blake2bR12算法为12轮blake2b运算,每轮所述blake2b运算进行8次G_BLOCK计算,每次所述G_BLOCK计算中,所述G_BLOCK的算法模型采用6个输入参数:R,j,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(R,j,a,b,c,d),其中所述R和所述j表示所述G_BLOCK计算为R轮blake2b运算的第j次G_BLOCK计算,其中,所述R为0至11的整数;所述j为0至7的整数;所述a、b、c和d分别对应于V0-V3、V4-V7、V8-VB和VC-VF,V0至VF的初始值为blake2bR12算法白皮书中定义的值。
3.根据权利要求2所述的方法,其特征在于,所述共享输入参数和所述非共享输入参数用Mi表示,i为0至15的整数;在n个所述其他计算内核的计算数据中,只有M4的值不一致;所述共识计算器确定出共享输入参数和非共享输入参数,包括:
所述共识计算器确定出所述共享输入参数包括:M0,M1,M2,M3,M5,M6,M7,M8,M9,MA,MB,MC,MD,ME,MF;所述A、B、C、D、E、F分别为10、11、12、13、14、15;
所述非共享输入参数为:M4。
5.根据权利要求3或4所述的方法,其特征在于,所述i与所述R,j具有对应关系;所述对应关系根据blake2bR12算法白皮书中定义的blake2b_sigma[R][2j]确定。
6.一种区块链的数据处理设备,其特征在于,应用在区块链的任务处理设备中,所述任务处理设备包括共识服务器与共识计算器,所述共识计算器包括共享计算内核和n个其他计算内核,n为自然数;
所述共识服务器用于:
从区块链的任务发布设备获取输入参数;
将所述输入参数发送至共识计算器;
所述共识计算器用于:
确定出共享输入参数和非共享输入参数;
将所述共享输入参数设置到所述共享计算内核;
通过所述共享计算内核确定出所述共享输入参数的共享结果;
将所述共享结果共享至共识计算器的所述其他计算内核;
根据所述非共享输入参数和所述共享结果确定n组计算数据;
通过所述n个其他计算内核根据所述n组计算数据,分别进行数据计算;
其中,所述共识计算器的核心算法为blake2bR12算法;所述共享计算内核以及各所述其他计算内核共同完成所述blake2bR12算法。
7.根据权利要求6所述的数据处理设备,其特征在于,所述blake2bR12算法为12轮blake2b运算,每轮所述blake2b运算进行8次G_BLOCK计算,每次所述G_BLOCK计算中,所述G_BLOCK的算法模型采用6个输入参数:R,j,a,b,c,d,所述G_BLOCK的算法模型表示为Gj(R,j,a,b,c,d),其中所述R和所述j表示所述G_BLOCK计算为R轮blake2b运算的第j次G_BLOCK计算,其中,所述R为0至11的整数;所述j为0至7的整数;所述a、b、c和d分别对应于V0-V3、V4-V7、V8-VB和VC-VF,V0至VF的初始值为blake2bR12算法白皮书中定义的值。
8.根据权利要求7所述的数据处理设备,其特征在于,所述共享输入参数和所述非共享输入参数用Mi表示,i为0至15的整数;在n个所述其他计算内核的计算数据中,只有M4的值不一致;所述共识计算器确定出共享输入参数和非共享输入参数,包括:
所述共识计算器确定出所述共享输入参数包括:M0,M1,M2,M3,M5,M6,M7,M8,M9,MA,MB,MC,MD,ME,MF;所述A、B、C、D、E、F分别为10、11、12、13、14、15;
所述非共享输入参数为:M4;
每次所述G_BLOCK计算,通过下述计算模型进行运算后,得到下一次G_BLOCK计算对应的新的a、b、c、d值:
Gj(R,j,a,b,c,d):
a←a+b+M[blake2bsigma[R][2*j]];
c←c+d;
a←a+b+M[blake2bsigma[R][2*j+1]];
c←c+d;
所述i与所述R,j具有对应关系;所述对应关系根据blake2bR12算法白皮书中定义的blake2b_sigma[R][2j]确定;
所述M[blake2bsigma[R][2*j+1]]表示基于R,j从所述blake2bsigma[R][2*j+1]中查找到的i值对应的所述共享输入参数或所述非共享输入参数。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的区块链的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的区块链的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811150439.7A CN110969527B (zh) | 2018-09-29 | 2018-09-29 | 一种区块链的数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811150439.7A CN110969527B (zh) | 2018-09-29 | 2018-09-29 | 一种区块链的数据处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110969527A CN110969527A (zh) | 2020-04-07 |
CN110969527B true CN110969527B (zh) | 2023-02-24 |
Family
ID=70027365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811150439.7A Active CN110969527B (zh) | 2018-09-29 | 2018-09-29 | 一种区块链的数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110969527B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682907A (zh) * | 2016-12-10 | 2017-05-17 | 江苏恒为信息科技有限公司 | 区块链数据对比及共识方法 |
CN107368507A (zh) * | 2017-03-28 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种基于区块链的共识方法及装置 |
CN107590738A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 选择共识节点的处理方法、装置及服务器 |
KR101849917B1 (ko) * | 2016-10-13 | 2018-05-31 | 주식회사 코인플러그 | 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버 |
CN108322451A (zh) * | 2018-01-12 | 2018-07-24 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN108537063A (zh) * | 2018-02-26 | 2018-09-14 | 阿里巴巴集团控股有限公司 | 一种数据存储的方法、装置及设备 |
-
2018
- 2018-09-29 CN CN201811150439.7A patent/CN110969527B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101849917B1 (ko) * | 2016-10-13 | 2018-05-31 | 주식회사 코인플러그 | 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버 |
CN106682907A (zh) * | 2016-12-10 | 2017-05-17 | 江苏恒为信息科技有限公司 | 区块链数据对比及共识方法 |
CN107368507A (zh) * | 2017-03-28 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种基于区块链的共识方法及装置 |
CN107590738A (zh) * | 2017-08-24 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 选择共识节点的处理方法、装置及服务器 |
CN108322451A (zh) * | 2018-01-12 | 2018-07-24 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN108537063A (zh) * | 2018-02-26 | 2018-09-14 | 阿里巴巴集团控股有限公司 | 一种数据存储的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110969527A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107437110B (zh) | 卷积神经网络的分块卷积优化方法及装置 | |
CN107145939B (zh) | 一种低计算能力处理设备的计算机视觉处理方法及装置 | |
CN109871936B (zh) | 用于处理神经网络中的卷积运算的方法和装置 | |
CN1150847A (zh) | 使用神经网络的计算机和使用该神经网络的方法 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
CN106156159A (zh) | 一种表连接处理方法、装置和云计算系统 | |
CN110020616B (zh) | 一种目标识别方法及设备 | |
CN103309893A (zh) | 一种字符串的比较方法及装置 | |
CN110795227B (zh) | 一种区块链的数据处理方法及相关设备 | |
WO2022001301A1 (zh) | 神经网络运算方法及相关设备 | |
CN111082922B (zh) | 一种区块链的数据处理方法及相关设备 | |
CN106933777B (zh) | 基于国产申威26010处理器的基2一维fft的高性能实现方法 | |
CN110969527B (zh) | 一种区块链的数据处理方法及相关设备 | |
CN108595149B (zh) | 可重构乘加运算装置 | |
CN109800078B (zh) | 一种任务处理方法、任务分发终端及任务执行终端 | |
CN107220702B (zh) | 一种低计算能力处理设备的计算机视觉处理方法及装置 | |
CN104572588A (zh) | 矩阵求逆处理方法和装置 | |
CN110505276B (zh) | 对象匹配方法、装置及系统、电子设备及存储介质 | |
CN116560968A (zh) | 一种基于机器学习的仿真计算时间预测方法、系统及设备 | |
JP7137067B2 (ja) | 演算処理装置、学習プログラム及び学習方法 | |
Sze | The two quadrillionth bit of pi is 0! distributed computation of pi with Apache Hadoop | |
CN109388428B (zh) | 图层遍历方法、控制装置及数据处理系统 | |
CN112464157B (zh) | 向量排序方法与排序系统 | |
CN210924321U (zh) | 一种处理器系统、主板及计算机设备 | |
WO2024055168A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |