比特币矿机挖矿计算方法及相关产品与流程

文档序号:16510553发布日期:2019-01-05 09:18阅读:552来源:国知局
比特币矿机挖矿计算方法及相关产品与流程

本发明涉及计算机及软件技术领域,具体涉及一种比特币矿机挖矿计算方法及相关产品。



背景技术:

根据getblocktemplate协议和stratum协议,在计算区块hash值时的搜索空间包括4字节的nnonce、4字节的ntime字段以及coinbase字段,这个搜索空间是无限的。但是对于asic矿机来说,由asic芯片来搜索所有的空间值是不现实的,随着比特币的发展,对于区块hash值的计算,asic芯片只搜索nnonce字段,空间不够,所以现有的比特币矿机计算难度大,挖矿速度慢。



技术实现要素:

本发明实施例提供了一种比特币矿机挖矿计算方法及相关产品,可以减低比特币矿机的计算难度,提高挖矿速度。

第一方面,本发明实施例提供一种比特币矿机挖矿计算方法,所述方法应用于比特币矿机,所述矿机包括:主控和多个asci芯片;所述方法包括如下步骤:

矿机获取矿池的任务后,执行前序部分计算后,构造区块头数据得到区块hash值的计算任务;主控将区块hash值的计算任务分解成多个计算子任务,将多个子任务分发给多个asci芯片;

asci芯片执行该计算子任务得到子结果,将该子结果返回给主控得到区块hash值。

可选的,所述方法还包括:

矿机根据区块hash值确定计算结果,如该计算结果具有与ntime字段对应的nnonce且nnonce符合难度要求,矿机构造区块头并提交share到矿池。

可选的,所述asci芯片执行该该计算子任务得到子结果具体包括:

asic芯片对nnonce进行搜索,计算hash得到子结果。

可选的,所述矿机构造区块头并提交share到矿池具体包括:

获取符合难度要求的ntime和与之匹配的nnonce,构造stratum格式的信息,将所述stratum格式的信息提交给矿池。

第二方面,提供一种比特币矿机,所述矿机包括:主控和多个asci芯片;

所述主控,用于获取矿池的任务后,执行前序部分计算后,构造区块头数据得到区块hash值的计算任务;将区块hash值的计算任务分解成多个计算子任务,将多个子任务分发给多个asci芯片;

asci芯片,用于执行该该计算子任务得到子结果,将该子结果返回给主控得到区块hash值。

可选的,所述主控,具体还用于根据区块hash值确定计算结果,如该计算结果具有与ntime字段对应的nnonce且nnonce符合难度要求,构造区块头并提交share到矿池。

可选的,所述asic芯片,具体用于对nnonce进行搜索,计算hash得到子结果。

可选的,所述主控,具体用于获取符合难度要求的ntime和与之匹配的nnonce,构造stratum格式的信息,将所述stratum格式的信息提交给矿池。

第三方面,提供一种计算机可读存储介质,其存储用于电子数据交换的程序,其中,所述程序使得终端执行第一方面提供的方法。

实施本发明实施例,具有如下有益效果:

可以看出,通过本发明实施例把区块hash值的计算任务分解为多个计算规模更小的任务,并由主控进行任务调度,可以降低asic芯片计算的复杂度;由主控来进行计算任务的分解及搜索空间的划分,对于生成区块hash值的调度更为灵活。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是一种比特币矿机挖矿计算方法的流程示意图。

图2是本申请提供的一种比特币矿机的结构图。

图3是本申请提供的一种比特币矿机的结构图。

具体实施方式

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

本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

参阅图1,本发明实施例提供一种比特币矿机挖矿计算方法,所述方法应用于比特币矿机,所述矿机包括:主控和多个asci芯片;所述方法包括如下步骤:

步骤s101、矿机获取矿池的任务后,执行前序部分计算后,构造区块头数据得到区块hash值的计算任务;

步骤s102、主控将区块hash值的计算任务分解成多个计算子任务,将多个子任务分发给多个asci芯片;

步骤s103、asci芯片执行该计算子任务得到子结果,将该子结果返回给主控得到区块hash值。

可选的,所述方法还包括:

矿机根据区块hash值确定计算结果,如该计算结果具有与ntime字段对应的nnonce且nnonce符合难度要求,矿机构造区块头并提交share到矿池。

可选的,所述asci芯片执行该该计算子任务得到子结果具体包括:

asic芯片对nnonce进行搜索,计算hash得到子结果。

可选的,所述矿机构造区块头并提交share到矿池具体包括:

获取符合难度要求的ntime和与之匹配的nnonce,构造stratum格式的信息,将所述stratum格式的信息提交给矿池。

参阅图2,图2提供一种比特币矿机,所述矿机包括:主控和多个asci芯片;

所述主控,用于获取矿池的任务后,执行前序部分计算后,构造区块头数据得到区块hash值的计算任务;将区块hash值的计算任务分解成多个计算子任务,将多个子任务分发给多个asci芯片;

asci芯片,用于执行该该计算子任务得到子结果,将该子结果返回给主控得到区块hash值。

可选的,所述主控,具体还用于根据区块hash值确定计算结果,如该计算结果具有与ntime字段对应的nnonce且nnonce符合难度要求,构造区块头并提交share到矿池。

可选的,所述asic芯片,具体用于对nnonce进行搜索,计算hash得到子结果。

可选的,所述主控,具体用于获取符合难度要求的ntime和与之匹配的nnonce,构造stratum格式的信息,将所述stratum格式的信息提交给矿池。

本申请提出一种扩大搜索空间时的任务调度与hash计算的控制方法,该方法是:当矿机软件从矿池接收到任务后,在完成前面部分的计算后,构造区块头数据,并把此部分数据发送给asic芯片,由asic芯片来搜索nnonce字段进行hash值的计算。同时,矿机软件调整ntime字段,重新构造区块头数据并下发到asic芯片,asic芯片流水处理矿机软件下发的任务,计算完成后返回计算结果,矿机软件根据计算结果做对应的处理,如果有与ntime字段对应的nnonce则且符合难度要求,则矿机软件可以构造区块头并提交share到矿池。

该方法采用矿机软件和asic配合的方式来计算有效hash值,在不改变asic芯片的情况下可以充分利用矿机主控与asic芯片的计算能力。

参阅图3,图3提供了一种比特币矿机的结构示意图,主要包括用调度模块、接口模块、算力模块、task、subtask等几部分。

调度模块:

获取从矿池接收的task信息;

对task进行分解,根据mintime、curtime调整ntime,每调整一次ntime就重新构造出subtask,并下发给asic芯片进行nnonce的搜索。

对下发的task和asic芯片返回的结果进行调度;

接口模块:

负责与asic芯片之间的数据包的传输;

算力模块:

由多片asic芯片组成,对调度模块下发的task进行搜索nnonce空间,计算hash值;

task、subtask

1)矿机从矿池接收的stratum协议信息解析组合而成,为矿池下发的一次计算区块hash的信息。

2)subtask为调度模块调整ntime后构造的需下发给asic芯片进行hash计算的task。

如图3所示的比特币矿机的工作原理具体如下:

矿机从矿池接收到矿池下发的任务,调度模块构造出task,并对task进行分解,调整ntime,调度task进行下发,同一个task,对应多个ntime不同的subtask。

task通过接口模块与asic芯片进行传输。

asic芯片对nnonce进行搜索,计算hash,计算完成后返回计算结果。

调度模块可以根据返回结果判断成功、失败,是否符合难度要求、是否需要继续调整ntime继续下发等。

找到符合难度要求的ntime和与之匹配的nnonce,构造stratum格式的信息,提交给矿池。一次任务完成。

本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种比特币矿机挖矿计算方法的部分或全部步骤。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种比特币矿机挖矿计算方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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