矿池与矿机交互数据的方法、代理端、矿池和系统与流程

文档序号:12694704阅读:3959来源:国知局
矿池与矿机交互数据的方法、代理端、矿池和系统与流程

本发明涉及比特币挖掘技术,尤其是一种矿池与矿机交互数据的方法、代理端、矿池和系统。



背景技术:

矿池是比特币(Bitcoin)等P2P密码学虚拟货币开采所必须的基础设施,一般是对外开放的团队开采服务器,其存在意义为提升比特币开采稳定性,使矿工薪酬趋于稳定。矿池是一个全自动的开采平台,即矿机接入矿池-提供算力-获得收益。

比特币矿机就是进行比特币挖矿的设备,挖矿设备可以是普通的电脑,也可以是USB矿机,也可以是专业的ASIC矿机。用普通的电脑cpu确实可以进行比特币挖矿,但由于全世界的比特币挖矿已经形成一个庞大的产业,个人使用普通电脑是很难挖到比特币的。你需要购买昂贵且专业的比特币ASIC矿机并加入比特币矿工组织才能挖到比特币也即是加入一个矿池进行挖矿。

然而,在实现本发明的过程中,发明人发现,现有技术至少存在以下问题:现有技术中的矿池与矿机之间,一旦有新任务下发,则导致数千连接同时收到数据,此时会导致矿场带宽拥堵不堪。



技术实现要素:

本发明实施例所要解决的一个技术问题是:通过优化下行带宽,减少矿场带宽拥堵现象。

本发明实施例提供的一种矿池与矿机交互数据的方法,包括:

响应于多个矿机与矿池建立连接的请求,分别与所述矿池和所述多个矿机建立连接,其中所述多个矿机属于同一局域网;

接收矿池发送的任务数据并发送给对应的矿机;

将所述对应的矿机反馈的结果数据发送给矿池。

基于上述方法的另一实施例中,所述分别与矿池和多个矿机建立连接包括:

与所有矿机分别建立连接,接收所有矿机发送的对应每个矿机的相关信息,基于矿机的相关信息为每个矿机分配一个矿机编号,所述一个矿机编号与一个矿机唯一对应;

与矿池建立连接,将所有矿机对应的矿机编号发送给矿池。

基于上述方法的另一实施例中,所述接收矿池发送的任务数据并发送给对应的矿机包括:

接收矿池发送的打包数据,所述打包数据包括任务数据和矿机编号,将打包数据分解得到任务数据和矿机编号,基于与矿机编号对应的矿机的连接,将所述任务数据发送到所述矿机编号对应的矿机。

基于上述方法的另一实施例中,所述将所述对应的矿机反馈的结果数据发送给矿池包括:

接收所述矿机反馈的结果数据,对所述反馈的结果数据添加对应的矿机编号并发送给矿池。

基于上述方法的另一实施例中,所述将所述对应的矿机反馈的结果数据发送给矿池之前,还包括:

将矿机反馈的纯文本格式的结果数据转换为二进制结果数据,并对转换后的二进制结果数据去除冗余数据,仅保留有效字段生成压缩结果数据。

基于上述方法的另一实施例中,所述将矿机反馈的纯文本格式的结果数据转换为二进制结果数据包括:

将矿机反馈的纯文本格式的结果数据转换为紧密字节型的二进制结果数据。

基于上述方法的另一实施例中,还包括:向一个矿机发送任务数据后,在预设时间内未接收到所述矿机反馈的结果数据时,将与所述矿机断开连接的消息发送给矿池。

基于上述方法的另一实施例中,所述与矿机的连接为TCP传输控制协议长连接。

基于上述方法的另一实施例中,所述与矿池的连接为TCP传输控制协议长连接。

基于上述方法的另一实施例中,所述与矿池建立连接包括:

通过TCP传输控制协议长连接与第一转换单元连接,所述第一转换单元通过UDP用户数据报协议与第二转换单元连接,所述第二转换单元通过TCP传输控制协议长连接与所述矿池连接。

基于上述方法的另一实施例中,所述任务数据包括比特币基础数据和比特币交易数据。

根据本发明实施例的另一个方面,提供的一种矿池与矿机交互数据的方法,应用于矿池侧,包括:

通过代理端与多个矿机建立连接,其中所述多个矿机属于同一局域网;

将任务数据通过代理端发送给对应的矿机;

接收所述对应的矿机通过代理端反馈的结果数据。

根据本发明实施例的另一个方面,提供的一种代理端,包括:

连接单元,用于响应于多个矿机与矿池建立连接的请求,分别与所述矿池和所述多个矿机建立连接,其中所述多个矿机属于同一局域网;

任务下发单元,用于接收矿池发送的任务数据并发送给对应的矿机;

结果反馈单元,用于将所述对应的矿机反馈的结果数据发送给矿池。

根据本发明实施例的另一个方面,提供的一种矿池,包括:

连接矿机单元,用于通过代理端与多个矿机建立连接,其中所述多个矿机属于同一局域网;

任务发送单元,用于将任务数据通过代理端发送给对应的矿机;

接收单元,用于接收所述对应的矿机通过代理端反馈的结果数据。

根据本发明实施例的另一个方面,提供的一种矿池与矿机交互数据的系统,包括如上所述的代理端、如上所述的矿池和多个矿机。

基于本发明上述实施例提供的矿池与矿机交互数据的方法、装置和系统,通过在矿池与矿机之间加设代理端,矿池通过代理端下发任务到矿机,而矿机通过代理端将结果数据反馈到矿池,通过代理端的处理使矿池与矿机之间的下行带宽有效缩减,不会导致矿场带宽拥堵,因此消除了任务下发时的延时,加快了任务的传输。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1为本发明方法一个实施例的流程图。

图2为本发明方法另一个实施例的流程图。

图3为本发明方法还一个实施例的流程图。

图4为本发明代理端一个实施例的结构示意图。

图5为本发明代理端另一个实施例的结构流程图。

图6为本发明代理端又一个实施例的结构流程图。

图7为本发明矿池与矿机交互数据的方法一个实施例的流程图。

图8为本发明矿池一个实施例的结构示意图。

图9为本发明矿池另一个实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络连接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

图1为本发明矿池与矿机交互数据的方法一个实施例的流程图。应用于代理端,如图1所示,该实施例方法包括:

步骤103,响应于多个矿机与矿池建立连接的请求,分别与矿池和多个矿机建立连接。

其中,多个矿机属于同一局域网。

矿池通过代理端与多个矿机建立连接,避免了矿池直接与所有矿机建立连接的情况下,需要建立大量连接,有多少台矿机就需要在外网建立多少条矿池与矿机的连接链路,而通过代理端,矿池只需与代理端建立一个连接,该代理端与上述所有矿机处于同一局域网内,使需要大量带宽的传输和计算工作都在局域网内网中进行解决;此时在外网上只有一条连接链路,避免了由于长距离多层路由造成的连接不稳定;通过一条外网连接使带宽极大减小,可从几百兆缩小为几kbps。

步骤104,接收矿池发送的任务数据并发送给对应的矿机。

步骤105,将对应的矿机反馈的结果数据发送给矿池。

基于本发明上述实施例提供的矿池与矿机交互数据的方法,通过在矿池与矿机之间加设代理端,矿池通过代理端下发任务到矿机,而矿机通过代理端将结果数据反馈到矿池,通过代理端的处理使矿池与矿机之间的下行带宽有效缩减,不会导致矿场带宽拥堵,因此消除了任务下发时的延时,加快了任务的传输。

图2为本发明方法另一个实施例的流程图。如图2所示,该实施例方法包括:

步骤201,与所有矿机分别建立连接,接收所有矿机发送的对应每个矿机的相关信息,基于矿机的相关信息为每个矿机分配一个矿机编号。

其中,一个矿机编号与一个矿机唯一对应。

步骤202,与矿池建立连接,将所有矿机对应的矿机编号发送给矿池。

步骤104,接收矿池发送的任务数据并发送给对应的矿机。

步骤105,将对应的矿机反馈的结果数据发送给矿池。

基于本实施例的方法,通过代理端对矿机分配矿机编号,可以便于矿池识别接收的结果数据是哪个矿机反馈的,进而对矿机的算力和运行状态有所掌握,可以使矿池能够了解到所有矿机的算力和运行状态,而不会像现有技术中矿池只能将所有矿机看做一个整体,无法了解每个矿机的运行状态和算力。发送的矿机的相关信息包括矿机的用户名、矿机的IP地址等可以确定该矿机的信息。

本发明方法另一个实施例中,在上述实施例的基础上,步骤103中接收矿池发送的任务数据并发送给对应的矿机具体可以包括:

接收矿池发送的打包数据,打包数据包括任务数据和矿机编号,将打包数据分解得到任务数据和矿机编号,基于与矿机编号对应的矿机的连接,将任务数据发送到矿机编号对应的矿机。

本实施例中矿池将指定发送到某个矿机编号的任务数据与该矿机编号打包发送给代理端,代理端对打包数据进行拆分,将任务数据发送到矿机编号所对应的矿机,实现了快速下发任务数据的目的;此时通常采用4个字节的矿机编号加4个字节的任务数据,因此,此时矿池与代理端的外网连接只需具有8字节的带宽即可实现传输,极大的减小了传输带宽,加快任务下发。

本发明方法另一个实施例中,在上述实施例的基础上,步骤105中将对应的矿机反馈的结果数据发送给矿池具体可以包括:

接收矿机反馈的结果数据,对反馈的结果数据添加对应的矿机编号并发送给矿池。

在本实施例中代理端将矿机编号和该矿机的结果数据共同发到矿池,此时矿池可以了解到该矿机对下发任务的处理结果,进而了解到该矿机的算力和运行状态,在后续下发任务时,可以根据了解到的矿机的算力对该矿机下发相适配的难度的任务。

本发明方法又一个实施例中,在上述各个实施例的基础上,步骤105将对应的矿机反馈的结果数据发送给矿池之前,还可以包括:

将矿机反馈的纯文本格式的结果数据转换为二进制结果数据,并对转换后的二进制结果数据去除冗余数据,仅保留有效字段生成压缩结果数据。

本实施例中通过将纯文本格式转换为二进制格式,并将转换后的二进制数据去除冗余,得到极度精简的结果数据,采用此压缩方法得到的压缩结果数据,其数据内容不变,但占用字节缩小很多,因此上行带宽也比现有技术减小很多,现有技术直接传送纯文本格式所需的带宽相当本实施例中传输压缩结果数据的带宽的几倍,减小带宽后加快了结果数据的传输速度,进而加快了任务处理。

上述本发明方法又一实施例在具体实施例中,将矿机反馈的纯文本格式的结果数据转换为二进制结果数据具体可以包括:

将矿机反馈的纯文本格式的结果数据转换为紧密字节型的二进制结果数据。

本示例中将结果数据转换为紧密字节型的二进制,使结果数据进一步缩减,数据减小效果更佳。

图3为本发明方法还一个实施例的流程图。该实施例方法,如图3所示,包括:

步骤103,响应于矿池通过代理端与多个矿机建立连接,该矿池将任务数据通过代理端处理后发送到对应的矿机。

其中上述多个矿机属于同一局域网。

步骤301,判断在预设时间内是否接收到矿机反馈的结果数据,如果是,执行步骤104;否则,执行步骤302;

步骤104,接收矿池发送的任务数据并发送给对应的矿机。

步骤105,将对应的矿机反馈的结果数据发送给矿池。

步骤302,将与该矿机断开连接的消息发送到矿池。

在本实施例中,对于矿池是否接收到结果数据进行判断,如果代理端没有接收到反馈的结果数据,那么说明代理端与该矿机的连接断开了,有可能是该矿机离线了,此时代理端将该矿机断开连接的消费发送到矿池,矿池下发新任务时将不对该矿机下发,可以保证任务的有效性,不会出现重复发送的同时也不会出现空发送,而出现有的任务没有矿机计算的情况。

本发明另一个实施例中,上述各个实施例中,与矿机的连接为TCP传输控制协议长连接。与矿池的连接为TCP传输控制协议长连接。

TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。通过TCP连接,保证了矿机与代理端连接的稳定性和可靠性。

本发明又一个实施例中,上述各个实施例中,与矿池建立连接包括:

通过TCP传输控制协议长连接与第一转换单元连接,第一转换单元通过UDP用户数据报协议与第二转换单元连接,第二转换单元通过TCP传输控制协议长连接与矿池连接。

UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP的优点在于UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些;在长距离传输中,采用UDP连接可以在一条链路不通时,马上转换到另一条链路将数据继续传输出去,因此,可以保证能够传输。

在具体示例中,本发明上述各实施例中的任务数据可以包括比特币基础数据和比特币交易数据等。

比特币与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币在交易过程中,每交易一次将产生一批交易数据,在下次该比特币流通时,交易数据也成为比特币数据的一部分进行流通,而下一个新比特币的产生是基于上一个比特币的基础进行计算的,因此,新下发的任务数据中不仅包括比特币基础数据,还包括比特币交易数据。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图4为本发明代理端一个实施例的结构示意图。该实施例的代理端可用于实现本发明上述各方法实施例。如图4所示,该实施例的装置包括:

连接单元1,用于响应于多个矿机与矿池建立连接的请求,分别与矿池和多个矿机建立连接,其中多个矿机属于同一局域网。

任务下发单元2,用于接收矿池发送的任务数据并发送给对应的矿机。

结果反馈单元3,用于将对应的矿机反馈的结果数据发送给矿池。

基于本发明上述实施例提供的代理端,通过在矿池与矿机之间加设代理端,矿池通过代理端下发任务到矿机,而矿机通过代理端将结果数据反馈到矿池,通过代理端的处理使矿池与矿机之间的下行带宽有效缩减,不会导致矿场带宽拥堵,因此消除了任务下发时的延时,加快了任务的传输。

图5为本发明代理端另一个实施例的结构流程图。在上述实施例的基础上,如图5所示,该实施例代理端中连接单元1包括:

矿机连接模块11,用于与所有矿机分别建立连接,接收所有矿机发送的对应每个矿机的相关信息,基于矿机的相关信息为每个矿机分配一个矿机编号,其中,一个矿机编号与一个矿机唯一对应;

矿池连接模块12,用于与矿池建立连接,将所有矿机对应的矿机编号发送给矿池。

基于本实施例的装置,通过代理端对矿机分配矿机编号,可以便于矿池识别接收的结果数据是哪个矿机反馈的,进而对矿机的算力和运行状态有所掌握,可以使矿池能够了解到所有矿机的算力和运行状态进行监管,而不会像现有技术中矿池只能将所有矿机看做一个整体,无法了解每个矿机的运行状态和算力。发送的矿机的相关信息包括矿机的用户名、矿机的IP地址等可以确定该矿机的信息。

在本发明上述实施例的一个具体示例中,上述任务下发单元2具体用于接收矿池发送的打包数据,打包数据包括任务数据和矿机编号;将打包数据分解得到任务数据和矿机编号,基于与矿机编号对应的矿机的连接,将任务数据发送到矿机编号对应的矿机。

在本发明上述实施例的一个具体示例中,结果反馈单元3具体用于接收矿机反馈的结果数据,对反馈的结果数据添加对应的矿机编号并发送给矿池。

在本发明上述实施例的一个具体示例中,结果反馈单元3将反馈的结果发送给矿池之前,还用于将矿机反馈的纯文本格式的结果数据转换为二进制结果数据,并对转换后的二进制结果数据去除冗余数据,仅保留有效字段生成压缩结果数据。

在本发明上述实施例的一个具体示例中,结果反馈单元将矿机反馈的纯文本格式的结果数据转换为二进制结果数据的过程,具体用于将矿机反馈的纯文本格式的结果数据转换为紧密字节型的二进制结果数据。

图6为本发明代理端又一个实施例的结构流程图。在上述实施例的基础上,如图6所示,还包括断开反馈单元4,用于向一个矿机发送任务数据后,在预设时间内未接收到矿机反馈的结果数据时,将与矿机断开连接的消息发送给矿池。

在本实施例中,对于矿池是否接收到结果数据进行判断,如果代理端没有接收到反馈的结果数据,那么说明代理端与该矿机的连接断开了,有可能是该矿机离线了,此时代理端将该矿机断开连接的消费发送到矿池,矿池下发新任务时将不对该矿机下发,可以保证任务的有效性,不会出现重复发送的同时也不会出现空发送,而出现有的任务没有矿机计算的情况。

在本发明上述实施例的一个具体示例中,与矿机的连接为TCP传输控制协议长连接。

在本发明上述实施例的一个具体示例中,与矿池的连接为TCP传输控制协议长连接。

本发明上述各个实施例中,任务数据包括比特币基础数据和比特币交易数据。

图7为本发明矿池与矿机交互数据的方法一个实施例的流程图。应用于代理端,如图7所示,该实施例方法包括:

步骤701,通过代理端与多个矿机建立连接,其中多个矿机属于同一局域网。

步骤702,将任务数据通过代理端发送给对应的矿机。

步骤703,接收对应的矿机通过代理端反馈的结果数据。

基于本发明上述实施例提供的矿池与矿机交互数据的方法,通过在矿池与矿机之间加设代理端,矿池通过代理端下发任务到矿机,而矿机通过代理端将结果数据反馈到矿池,通过代理端的处理使矿池与矿机之间的下行带宽有效缩减,不会导致矿场带宽拥堵,因此消除了任务下发时的延时,加快了任务的传输。

在本发明上述实施例的一个具体示例中,基于代理端与多个矿机建立连接包括:

与代理端建立连接,并接收代理端发送的所有矿机对应的矿机编号;矿机编号为代理端基于接收到的矿机的相关信息为每个矿机分配的,一个矿机编号与一个矿机唯一对应。

在本发明上述实施例的一个具体示例中,将任务数据通过代理端发送给对应的矿机包括:

将任务数据与对应发送的矿机编号打包为打包数据,将打包数据发送给代理端,代理端分解得到任务数据和矿机编号,并将任务数据发送到矿机编号对应的矿机。

在本发明上述各实施例的一个具体示例中,接收对应的矿机通过代理端反馈的结果数据时,还接收代理端对反馈的结果数据添加的对应的矿机编号。

本发明方法另一个实施例中,在上述实施例的基础上,还包括:

基于反馈的处理结果和对应的矿机编号获得矿机编号对应的矿机的预估算力;基于预估算力对对应的矿机发送待处理数据,其中发送的待处理数据的算力与预估算力相匹配。

本实施例中矿池基于接收到的处理结果就可以知道一个矿机的算力,在现有技术中,对于结果对应的算力无法判断其对应的到底是哪个矿机,而本实施例中由于代理端将矿机编号和处理结果一同发给矿池,此时矿池可以将得到的算力对应到该矿机编号对应的矿机,因此,下次下发新任务时,就可以将相应难度的任务发送给该矿机,实现资源的合理分配,使计算更快,更快速的得到结果数据。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图8为本发明矿池一个实施例的结构示意图。如图8所示,该实施例矿池包括:

连接矿机单元5,用于通过代理端与多个矿机建立连接,其中多个矿机属于同一局域网。

任务发送单元6,用于将任务数据通过代理端发送给对应的矿机。

接收单元7,用于接收对应的矿机通过代理端反馈的结果数据。

基于本发明上述实施例提供的矿池,通过在矿池与矿机之间加设代理端,矿池通过代理端下发任务到矿机,而矿机通过代理端将结果数据反馈到矿池,通过代理端的处理使矿池与矿机之间的下行带宽有效缩减,不会导致矿场带宽拥堵,因此消除了任务下发时的延时,加快了任务的传输。

在本发明上述实施例的一个具体示例中,连接矿机单元具体用于与所述代理端建立连接,并接收代理端发送的所有矿机对应的矿机编号;矿机编号为代理端基于接收到的矿机的相关信息为每个矿机分配的,其中一个矿机编号与一个矿机唯一对应。

在本发明上述实施例的一个具体示例中,任务发送单元具体用于将任务数据与对应发送的矿机编号打包为打包数据,将打包数据发送给代理端,代理端分解得到任务数据和矿机编号,并将任务数据发送到矿机编号对应的矿机。

在本发明上述实施例的一个具体示例中,接收单元具体用于接收所述对应的矿机通过代理端反馈的结果数据时,还接收代理端对反馈的结果数据添加的对应的矿机编号。

图9为本发明矿池另一个实施例的结构示意图。在上述实施例的基础上,如图9所示,该实施例矿池还包括算力预估单元8,用于基于反馈的处理结果和对应的矿机编号获得所述矿机编号对应的矿机的预估算力;基于预估算力向对应的矿机发送待处理数据,其中发送的待处理数据的算力与该预估算力相匹配。

本发明实施例的另一个方面,还提供一种矿池与矿机交互数据的系统,包括如上述实施例任意一项的代理端、如上述实施例任意一项的矿池和多个矿机。

在本发明系统的另一个实施例中,在上述实施例的基础上,还包括第一转换单元,用于通过TCP传输控制协议长连接与所述矿池连接,通过UDP用户数据报协议与第二转换单元连接;

第二转换单元,用于通过TCP传输控制协议长连接与代理端连接。

在本发明系统的另一个实施例中,在上述个实施例的基础上,代理端与矿池之间通信的数据为消息体格式:

消息体包括识别号、消息类型和消息主体内容,代理端或矿池接收到所述消息体后,分解所述消息体获得消息类型,根据获得的消息类型对消息主体内容执行相应的操作。

通常,矿池与代理端中分别保存有有限个的消息类型,矿池中的消息类型与代理端的消息类型存在对应关系,当矿池发送的消息类型与代理端中可识别的消息类型能够对应时,代理端采用对应该消息类型的操作处理消息主体内容;但也存在特殊情况,矿池进行了更新,而代理端由于一定的原因暂时没有更新,此时接收到不能匹配的消息类型时,将无法操作,此时代理端将接收的消息体丢弃,本方法保证了对消息主体内容的正确处理。

1、一种矿池与矿机交互数据的方法,应用于代理端侧,包括:

响应于多个矿机与矿池建立连接的请求,分别与所述矿池和所述多个矿机建立连接,其中所述多个矿机属于同一局域网;

接收矿池发送的任务数据并发送给对应的矿机;

将所述对应的矿机反馈的结果数据发送给矿池。

2、根据1所述的方法,所述分别与矿池和多个矿机建立连接包括:

与所有矿机分别建立连接,接收所有矿机发送的对应每个矿机的相关信息,基于矿机的相关信息为每个矿机分配一个矿机编号,所述一个矿机编号与一个矿机唯一对应;

与矿池建立连接,将所有矿机对应的矿机编号发送给矿池。

3、根据2所述的方法,所述接收矿池发送的任务数据并发送给对应的矿机包括:

接收矿池发送的打包数据,所述打包数据包括任务数据和矿机编号,将打包数据分解得到任务数据和矿机编号,基于与矿机编号对应的矿机的连接,将所述任务数据发送到所述矿机编号对应的矿机。

4、根据2或3所述的方法,所述将所述对应的矿机反馈的结果数据发送给矿池包括:

接收所述矿机反馈的结果数据,对所述反馈的结果数据添加对应的矿机编号并发送给矿池。

5、根据1至4任意一项所述的方法,所述将所述对应的矿机反馈的结果数据发送给矿池之前,还包括:

将矿机反馈的纯文本格式的结果数据转换为二进制结果数据,并对转换后的二进制结果数据去除冗余数据,仅保留有效字段生成压缩结果数据。

6、根据5所述的方法,所述将矿机反馈的纯文本格式的结果数据转换为二进制结果数据包括:

将矿机反馈的纯文本格式的结果数据转换为紧密字节型的二进制结果数据。

7、根据1至6任意一项所述的方法,还包括:向一个矿机发送任务数据后,在预设时间内未接收到所述矿机反馈的结果数据时,将与所述矿机断开连接的消息发送给矿池。

8、根据1至7任意一项所述的方法,所述与矿机的连接为TCP传输控制协议长连接。

9、根据1至8任意一项所述的方法,所述与矿池的连接为TCP传输控制协议长连接。

10、根据1至8任意一项所述的方法,所述与矿池建立连接包括:

通过TCP传输控制协议长连接与第一转换单元连接,所述第一转换单元通过UDP用户数据报协议与第二转换单元连接,所述第二转换单元通过TCP传输控制协议长连接与所述矿池连接。

11、根据1至10任意一项所述的方法,所述任务数据包括比特币基础数据和比特币交易数据。

12、一种矿池与矿机交互数据的方法,应用于矿池侧,包括:

通过代理端与多个矿机建立连接,其中所述多个矿机属于同一局域网;

将任务数据通过代理端发送给对应的矿机;

接收所述对应的矿机通过代理端反馈的结果数据。

13、根据12所述的方法,所述基于代理端与多个矿机建立连接包括:

与所述代理端建立连接,并接收代理端发送的所有矿机对应的矿机编号;所述矿机编号为所述代理端基于接收到的矿机的相关信息为每个矿机分配的,所述一个矿机编号与一个矿机唯一对应。

14、根据13所述的方法,所述将任务数据通过代理端发送给对应的矿机包括:

将任务数据与对应发送的矿机编号打包为打包数据,将打包数据发送给代理端,所述代理端分解得到任务数据和矿机编号,并将所述任务数据发送到所述矿机编号对应的矿机。

15、根据13或14所述的方法,所述接收所述对应的矿机通过代理端反馈的结果数据时,还接收代理端对所述反馈的结果数据添加的对应的矿机编号。

16、根据15所述的方法,还包括:

基于所述反馈的处理结果和对应的矿机编号获得所述矿机编号对应的矿机的预估算力;基于所述预估算力对所述对应的矿机发送待处理数据,其中发送的待处理数据的算力与所述预估算力相匹配。

17、一种代理端,包括:

连接单元,用于响应于多个矿机与矿池建立连接的请求,分别与所述矿池和所述多个矿机建立连接,其中所述多个矿机属于同一局域网;

任务下发单元,用于接收矿池发送的任务数据并发送给对应的矿机;

结果反馈单元,用于将所述对应的矿机反馈的结果数据发送给矿池。

18、根据17所述的代理端,所述连接单元包括:

矿机连接模块,用于与所有矿机分别建立连接,接收所有矿机发送的对应每个矿机的相关信息,基于矿机的相关信息为每个矿机分配一个矿机编号,所述一个矿机编号与一个矿机唯一对应;

矿池连接模块,用于与矿池建立连接,将所有矿机对应的矿机编号发送给矿池。

19、根据18所述的代理端,所述任务下发单元具体用于接收矿池发送的打包数据,所述打包数据包括任务数据和矿机编号;将打包数据分解得到任务数据和矿机编号,基于与矿机编号对应的矿机的连接,将所述任务数据发送到所述矿机编号对应的矿机。

20、根据18或19所述的代理端,所述结果反馈单元具体用于接收所述矿机反馈的结果数据,对所述反馈的结果数据添加对应的矿机编号并发送给矿池。

21、根据19或20所述的代理端,所述结果反馈单元将所述反馈的结果发送给矿池之前,还用于将矿机反馈的纯文本格式的结果数据转换为二进制结果数据,并对转换后的二进制结果数据去除冗余数据,仅保留有效字段生成压缩结果数据。

22、根据21所述的代理端,所述结果反馈单元将矿机反馈的纯文本格式的结果数据转换为二进制结果数据的过程,具体用于将矿机反馈的纯文本格式的结果数据转换为紧密字节型的二进制结果数据。

23、根据17至22任意一项所述的代理端,还包括断开反馈单元,用于向一个矿机发送任务数据后,在预设时间内未接收到所述矿机反馈的结果数据时,将与所述矿机断开连接的消息发送给矿池。

24、根据17至23任意一项所述的代理端,所述与矿机的连接为TCP传输控制协议长连接。

25、根据17至24任意一项所述的代理端,所述与矿池的连接为TCP传输控制协议长连接。

26、根据17至25任意一项所述的代理端,所述任务数据包括比特币基础数据和比特币交易数据。

27、一种矿池,包括:

连接矿机单元,用于通过代理端与多个矿机建立连接,其中所述多个矿机属于同一局域网;

任务发送单元,用于将任务数据通过代理端发送给对应的矿机;

接收单元,用于接收所述对应的矿机通过代理端反馈的结果数据。

28、根据27所述的矿池,所述连接矿机单元具体用于与所述代理端建立连接,并接收代理端发送的所有矿机对应的矿机编号;所述矿机编号为所述代理端基于接收到的矿机的相关信息为每个矿机分配的,所述一个矿机编号与一个矿机唯一对应。

29、根据28所述的矿池,所述任务发送单元具体用于将任务数据与对应发送的矿机编号打包为打包数据,将打包数据发送给代理端,所述代理端分解得到任务数据和矿机编号,并将所述任务数据发送到所述矿机编号对应的矿机。

30、根据28或29所述的矿池,所述接收单元具体用于接收所述对应的矿机通过代理端反馈的结果数据时,还接收代理端对所述反馈的结果数据添加的对应的矿机编号。

31、根据30所述的矿池,还包括算力预估单元,用于基于所述反馈的处理结果和对应的矿机编号获得所述矿机编号对应的矿机的预估算力;基于所述预估算力对所述对应的矿机发送待处理数据,其中发送的待处理数据的算力与所述预估算力相匹配。

32、一种矿池与矿机交互数据的系统,包括如17至26任意一项所述的代理端、如27至31任意一项所述的矿池和多个矿机。

33、根据32任意一项所述的系统,还包括第一转换单元,用于通过TCP传输控制协议长连接与所述矿池连接,通过UDP用户数据报协议与第二转换单元连接;

第二转换单元,用于通过TCP传输控制协议长连接与所述代理端连接。

34、根据31或32所述的系统,所述代理端与矿池之间通信的数据为消息体格式:

所述消息体包括识别号、消息类型和消息主体内容,所述代理端或矿池接收到所述消息体后,分解所述消息体获得消息类型,根据所述获得的消息类型对所述消息主体内容执行相应的操作。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变换对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

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