ASIC阵列、数据处理板以及区块挖掘方法和设备技术

技术编号:22330008 阅读:17 留言:0更新日期:2019-10-19 12:15
本发明专利技术涉及一种ASIC阵列,用于进行区块挖掘,该ASIC阵列包括:设置于PCB电路板上的多个ASIC芯片,该ASIC芯片包括多个裸片,该裸片包括片上网络,其中该片上网络包括多个计算节点,该计算节点包括内存,该内存用于分布存储区块挖掘中的随机数据集的子集。本发明专利技术的ASIC阵列,将内存分配到计算节点上,通过计算节点‑片上网络‑ASIC芯片‑ASIC阵列的层级结构,使ASIC阵列可以存储区块挖掘中所需的随机数据集,即通过将子集分配到每个计算节点内存的方式,有效降低进行区块挖掘的散列计算过程中,随机数据集对大容量内存的需求。

ASIC array, data processing board and block mining method and equipment

【技术实现步骤摘要】
ASIC阵列、数据处理板以及区块挖掘方法和设备
本专利技术涉及区块链
,特别是涉及一种用于区块挖掘的方法和设备,以及采用区块挖掘的方法的ASIC阵列和数据处理板。
技术介绍
以太坊(Ethereum)是一个全新的开方的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。以太坊的核心是一个点对点(P2P)网络,以太坊区块链数据库是由众多连接到网络的节点来维护和更新的。图1是现有技术的以太坊区块挖掘示意图。如图1所示,交易费用由节点收集,用户(Miner)12就是以太坊网络10中收集、传播、确认和执行交易的节点。用户们将交易打包为区块,并互相竞争,以使他们的区块可以添加到下一个区块链上,这个过程称之为挖矿。矿池服务器11(Poolserver)在新的区块上将挖矿业务分包给矿池(Miningpool)里的用户,每一个挖矿工作的参数包括区块字头散列值、用户期望搜寻到的随机数值范围和难易度。和区块链网络一样,用户们通过解决复杂数学问题的任务以便成功地“挖”到区块,这被称为“工作量证明”。一个运算问题,如果在算法上解决,比验证解决方法需要更多数量级的资源,那么它就是工作量证明的极佳选择。为防止区块链网络中已经发生的专门硬件(例如特定用途集成电路)造成的中心化现象,以太坊选择了侧重于消耗更多内存的运算问题。如果问题需要内存和CPU,那么理想的硬件就是普通电脑。这就使以太坊的工作量证明具有抗特定用途集成电路的特性,和由专门硬件控制区块挖掘的区块链相比,以太坊能够带来更加去中心化的安全分布。解决复杂数学问题的过程与区块挖掘设备的CPU性能零相关,与区块挖掘设备的内存大小及内存带宽正相关,这意味着那些通过共享内存的方式大规模部署的区块挖掘设备,在挖矿效率上并不能产生线性或者超线性(super-linear)的增长。中国专利申请“一种FPGA并行阵列模块及其计算方法”,公开号CN106843080A,公开了一种FPGA并行阵列模块,其连接至上位机,其包括依次设置的对外通信层、任务切分层和计算层;对外通信层、任务切分层、计算层均设有电源模块和散热模块;对外通信层用于与上位机进行通讯,对外通信层设有ARM主控模块,ARM主控模块用于实现软件自定义功能调用;ARM主控模块用于实现Linux软件流程,其设有接口模块,对外通信层通过接口模块连接至上位机,且ARM主控模块与接口模块之间设有破解模块;破解模块用于封装组织FPGA阵列,调度FPGA资源进行密钥计算,计算出正确的密钥;任务切分层用于对任务进行切分并均衡调度,任务均分层设有多个FPGA二级主控模块,FPGA二级主控模块用于进行复杂计算;计算层设有多个ASIC模块,ASIC模块用于进行简单计算;每个FPGA二级主控模块连接至多个ASIC模块。但目前以太坊的区块挖掘中,存在大容量内存的需求,如何在降低区块挖掘设备成本的前提下,减小对区块挖掘设备内存的需求,是目前业界重点研究的问题。
技术实现思路
为解决以太坊区块挖掘中对大容量内存的运算需求问题,本专利技术公开了一种ASIC阵列,使用该ASIC阵列的数据处理板,以及使用该数据处理板区块挖掘设备,和对应的区块挖掘方法。具体来说,本专利技术公开了一种ASIC阵列,用于进行区块挖掘,该ASIC阵列包括:设置于PCB电路板上的多个ASIC芯片,该ASIC芯片包括多个裸片,该裸片包括片上网络、通信模块和功能模块,其中该片上网络包括多个计算节点,该计算节点包括内存,该内存用于分布存储区块挖掘中的随机数据集的子集。进一步的,该计算节点以M×N阵列的形式分布设置,其中,M、N为正整数,且M≥2,N≥2;该ASIC芯片包括2个裸片,该PCB电路板的一面设置4×4个该ASIC芯片,该PCB电路板的另一面设置4×4个该ASIC芯片。优选地,该计算节点以6×12阵列的形式分布设置。本专利技术还公开了一种区块挖掘方法,采用上述的ASIC阵列进行区块挖掘,其特征在于,包括:步骤1,获取用于对当前区块进行挖掘的随机数据集;步骤2,将该随机数据集划分为多个子集并分布存储于该ASIC阵列的该计算节点;步骤3,任意选取某一计算节点所保存的子集中的某一随机数,进行第一轮地址运算以获取目标地址;获取该目标地址对应计算节点所保存的子集中的对应随机数,作为下一轮地址运算的输入;以经过预设轮数的地址运算后获得的随机数为目标随机数;步骤4,对该目标随机数进行散列计算以获得目标值,若该目标值小于或等于难度阈值,则以该目标随机数为当前区块的区块随机数,以该目标值为当前区块的区块散列值;反之则丢弃该目标随机数,并重新执行步骤3;步骤5,将该区块随机数和该区块散列值写入该当前区块,并将该当前区块广播至区块链网络;步骤6,当验证者接收到广播的该当前区块时,验证该当前区块的合法性,并将验证合法的当前区块链入区块链。进一步的,该当前区块包括:当前区块头和当前区块体,其中该当前区块头包括前一区块的区块散列值、当前区块随机数、当前区块散列值和该难度阈值。优选地,以该随机数所在计算节点的混算器,进行当前轮地址运算。本专利技术还公开了一种用于区块挖掘的数据处理板,包括上述的ASIC阵列,还包括:与该ASIC阵列连接的控制器单元,用于监视该ASIC阵列操作,向该ASIC阵列输入数据并输出该ASIC阵列获取的结果;温度管理单元,包括散热器和温度传感器,其中该温度传感器用于检测该数据处理板的温度并传送至该控制器单元和/或该散热器,或控制该电源的工作状态;该散热器用于为该数据处理板降温;引导单元,与该控制器单元连接,用于对该控制器单元的启动引导;调试单元,与该控制器单元连接,用于对该控制器单元进行调试并提供调试参数。进一步的,该控制器单元为现场可编程门阵列。本专利技术还公开了一种用于区块挖掘的设备,包括至少一个上述的数据处理板,还包括:网络通信模块,用于连接网络以进行数据接收和发送;任务分配模块,用于将从该网络获取的数据分发给该数据处理板,并将该数据处理板得到的结果通过该网络通信模块发送至该网络。本专利技术的ASIC阵列,将内存分配到计算节点上,通过计算节点-片上网络-ASIC芯片-ASIC阵列的层级结构,使ASIC阵列可以存储区块挖掘中所需的随机数据集,即通过将子集分配到每个计算节点内存的方式,有效降低进行区块挖掘的散列计算过程中,随机数据集对大容量内存的需求。附图说明图1是现有技术的以太坊区块挖掘示意图。图2是现有技术的以太坊区块结构示意图。图3是本专利技术的区块挖掘方法流程图。图4是本专利技术第一实施例的ASIC阵列结构示意图。图5是本专利技术第一实施例的片上网络二维度环形拓扑结构示意图。图6是本专利技术第一实施例的计算节点之间的片上通道方向示意图。图7是本专利技术第一实施例的裸片之间片间通道示意图。图8是本专利技术第一实施例的ASIC芯片之间的片间通道示意图。图9是本专利技术第二实施例的基于ASIC阵列的数据处理板的结构示意图。图10是本专利技术第三实施例的区块挖掘设备结构示意图。其中,附图标记为:10:以太坊11:矿池服务器12:用户100:ASIC阵列110:ASIC芯片120:裸片130:片上网络140:节点140-1:计算节点140-2:功能节点141:内存142:混算器143:节点通信模块144:片上通道15本文档来自技高网
...

【技术保护点】
1.一种ASIC阵列,用于进行区块挖掘,其特征在于,该ASIC阵列包括:设置于PCB电路板上的多个ASIC芯片,该ASIC芯片包括多个裸片,该裸片包括片上网络,其中该片上网络包括多个计算节点,该计算节点包括内存,该内存用于分布存储区块挖掘中的随机数据集的子集。

【技术特征摘要】
2018.04.08 CN 20181030631761.一种ASIC阵列,用于进行区块挖掘,其特征在于,该ASIC阵列包括:设置于PCB电路板上的多个ASIC芯片,该ASIC芯片包括多个裸片,该裸片包括片上网络,其中该片上网络包括多个计算节点,该计算节点包括内存,该内存用于分布存储区块挖掘中的随机数据集的子集。2.如权利要求1所述的ASIC阵列,其特征在于,该计算节点以M×N阵列的形式分布设置;其中,M、N为正整数,且M≥2,N≥2。3.如权利要求2所述的ASIC阵列,其特征在于,该计算节点以6×12阵列的形式分布设置。4.如权利要求1所述的ASIC阵列,其特征在于,该ASIC芯片包括2个裸片。5.如权利要求1所述的ASIC阵列,其特征在于,该PCB电路板的一面设置4×4个该ASIC芯片,该PCB电路板的另一面设置4×4个该ASIC芯片。6.一种区块挖掘方法,采用如权利要求1~5任一项所述的ASIC阵列进行区块挖掘,其特征在于,包括:步骤1,获取用于对当前区块进行挖掘的随机数据集;步骤2,将该随机数据集划分为多个子集并分布存储于该ASIC阵列的计算节点;步骤3,任意选取某一计算节点所保存的子集中的某一随机数,进行第一轮地址运算以获取目标地址;获取该目标地址对应计算节点所保存的子集中的对应随机数,作为下一轮地址运算的输入;以经过预设轮数的地址运算后获得的随机数为目标随机数;步骤4,对该目标随机数进行散列计算以获得目标值,若该目标值小于或等于难度阈值,则以该目标随机数为当前区块的区块随机数,以该目标值为当前区块的区块散列值;反之则丢弃该目标随机数,并重新执行步骤3;步骤5,将该...

【专利技术属性】
技术研发人员:张楠赓徐英韬
申请(专利权)人:北京嘉楠捷思信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1