CN109921906A - 一种将多种不同的矿机统一接入矿池的方法 - Google Patents

一种将多种不同的矿机统一接入矿池的方法 Download PDF

Info

Publication number
CN109921906A
CN109921906A CN201910052430.0A CN201910052430A CN109921906A CN 109921906 A CN109921906 A CN 109921906A CN 201910052430 A CN201910052430 A CN 201910052430A CN 109921906 A CN109921906 A CN 109921906A
Authority
CN
China
Prior art keywords
mine
server
mine machine
machine
uniformly accessed
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.)
Granted
Application number
CN201910052430.0A
Other languages
English (en)
Other versions
CN109921906B (zh
Inventor
占少云
王京
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Okoser Holdings
Original Assignee
Ouke Interactive Network Technology (beijing) Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ouke Interactive Network Technology (beijing) Co Ltd filed Critical Ouke Interactive Network Technology (beijing) Co Ltd
Priority to CN201910052430.0A priority Critical patent/CN109921906B/zh
Publication of CN109921906A publication Critical patent/CN109921906A/zh
Application granted granted Critical
Publication of CN109921906B publication Critical patent/CN109921906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种将多种不同的矿机统一接入矿池的方法,具体为:将矿机连接到统一接入服务器;统一接入服务器向矿机下发一个简单的计算任务;统一接入服务器检查矿机的任务计算结果,通过结果验算判定矿机所使用的Hash算法;确定矿机的算法类型后,统一接入服务器将矿机自动接入至对应矿池中;统一接入服务器退化为纯TCP管道,矿机进入真正的工作模式。本发明通过对矿机算法类型的测试,实现了无需用户配置矿机的算法类型,即可将矿机接入矿池。本方法可以有效节约用户的时间,降低配置出错带来问题的可能性,特别是当矿池支持的算法类型较多时,可以让用户更容易记住矿机的配置方法,而不需要对每种矿机独立进行配置操作。

Description

一种将多种不同的矿机统一接入矿池的方法
技术领域
本发明涉及一种方法,尤其涉及一种将多种不同的矿机统一接入矿池的方法,属于数据货币技术领域。
背景技术
在基于工作量证明的数字货币系统中,通常存在大量的节点。数字货币节点计算某一种Hash函数,当计算得到的结果满足某种特征的时候,则该节点获得当前区块的记账权,并获得一笔奖励币值。由于有大量节点同时计算,但只有第一个计算得到结果的节点获得奖励,因此节点之间存在算力竞争。随着算力竞争的加剧,单个计算设备首先计算出符合要求的Hash函数结果已经越来越困难,因此出现了允许多个计算设备联合计算的“矿池”服务。同时,每个计算设备的计算能力,也随着技术的升级不断增强,目前,以ASIC芯片为核心的计算设备,已经占据了市场的主流,这种设备通常称为“矿机”。一个普通的矿池大约会包含上万台独立的矿机,所有矿机通过矿池联合计算同一个难题,以期待能够先于竞争节点发现满足要求的Hash函数结果。
不同的数字货币,通常采用不同的Hash算法,举例来说,比特币(BTC)采用SHA256Hash函数,而莱特币(LTC)采用Scrypt Hash函数。这些函数都具有散列的数学特性,但它们的计算结果完全不同。目前矿机和矿池之间的TCP(Transmission ControlProtocol传输控制协议)通讯协议最常用的是Stratum协议。Stratum协议非常简单,它在原始设计的过程中,没有考虑到矿机计算的Hash算法类型,各种Hash算法类型的矿机,都使用同样的协议,并且没有任何特殊标识。而每一个不同的币种,不论是否使用相同的Hash算法,都对应着一个独立运行的矿池系统。因此,如果我们希望提供一个可以同时挖BTC以及LTC两种币种的矿池,则需要部署两个互不相关的矿池服务。因此,现有技术存在以下问题有待解决:
1)Stratum协议中不包含用户矿机的算法类型标识;
2)因为TCP协议的限制,如果希望使用同样的端口对不同算法的矿机提供服务,矿池需要使用多台前端服务器;
3)对矿机用户以及对矿池服务双方来说,配置都复杂繁冗,非常易错。
综上所述,过于简化的Stratum协议缺乏必要的元信息传送这一点可以说是协议设计的一个败笔。但即使Stratum协议有这样的缺陷,它已经在数字货币领域广泛使用,市面上已经有几百万台使用这一协议的设备在工作。因此,为了识别矿机所使用的Hash算法类型,不能简单地修改这个协议本身,而需要在其他方面想办法。
目前已有的解决方案,以蚂蚁矿池为例,对于不同的算法,矿池会提供不同的二级域名供矿机连入:
对于BTC,蚂蚁矿池提供地址stratum+tcp://stratum.antpool.com;
对于LTC,蚂蚁矿池提供地址stratum+tcp://stratum-ltc.antpool.com。
但以上现有技术都不能在维持已有矿机软硬件的前提下,实现对于不同算法的矿机使用同一个地址接入矿池,因此仍然存在操作冗杂、容易出错的问题。
发明内容
为了解决上述技术所存在的不足之处,本发明提供了一种将多种不同的矿机统一接入矿池的方法。
为了解决以上技术问题,本发明采用的技术方案是:一种将多种不同的矿机统一接入矿池的方法,具体为:
a、将矿机连接到统一接入服务器;
b、统一接入服务器向矿机下发一个简单的计算任务;
c、统一接入服务器检查矿机的任务计算结果,通过结果验算判定矿机所使用的Hash算法;
d、确定矿机的算法类型后,统一接入服务器将矿机自动接入至对应矿池的Stratum server中;
e、统一接入服务器退化为纯TCP管道,矿机进入真正的工作模式。
进一步地,矿机算法判定的具体过程为:
当矿机和统一接入服务器之间建立连接之后,通过连接成功回复消息以及stratum协议的mining.notify消息下发一个低难度的计算任务;
矿机通过mining.submit消息提交计算结果给统一接入服务器;
统一接入服务器对计算结果进行验算,根据验算结果确定矿机的算法类型。
进一步地,低难度的计算任务不论是BTC矿机还是LTC矿机,都可以完成,但它们会分别使用自己的算法完成这个计算任务。
进一步地,矿机在将任务计算结果提交给统一接入服务器之后,统一接入服务器将所有任务数据利用SHA256、Scrypt两种Hash算法设计的方式进行计算,分别得到SHA256函数计算结果、Scrypt函数计算结果;然后将矿机的任务计算结果分别与SHA256函数计算结果、Scrypt函数计算结果进行对比分析,根据结果匹配度判定矿机的算法类型。
本发明通过对矿机算法类型的测试,实现了无需用户配置矿机的算法类型,即可将矿机接入矿池。本方法可以有效节约用户的时间,降低配置出错带来问题的可能性,特别是当矿池支持的算法类型较多时,可以让用户更容易记住矿机的配置方法,而不需要对每种矿机独立进行配置操作。
附图说明
图1为不同算法矿机统一接入多个币种矿池后的结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
一种将多种不同的矿机统一接入矿池的方法,具体为:
a、首先将矿机连接到统一接入服务器,使统一接入服务器作为矿池与矿机连接的前端服务器;
b、统一接入服务器向矿机下发一个简单的计算任务;
c、统一接入服务器检查矿机的任务计算结果,通过结果验算判定矿机所使用的Hash算法;
d、确定矿机的算法类型后,统一接入服务器将矿机自动接入至对应矿池的Stratum server中;
e、统一接入服务器退化为纯TCP管道,只对双方的数据进行转发工作,矿机进入真正的工作模式。
其中,矿机算法判定的具体过程为:
当矿机和统一接入服务器之间建立连接之后,通过连接成功回复消息以及stratum协议的mining.notify消息下发一个低难度的计算任务;该计算任务不论是BTC矿机还是LTC矿机,都可以完成,但它们会分别使用自己的算法完成这个计算任务;
矿机通过mining.submit消息提交计算结果给统一接入服务器;
统一接入服务器对计算结果进行验算,根据验算结果确定矿机的算法类型。具体为:矿机在将任务计算结果提交给统一接入服务器之后,统一接入服务器将所有任务数据利用SHA256、Scrypt两种Hash算法设计的方式进行计算,分别得到SHA256函数计算结果、Scrypt函数计算结果;然后将矿机的任务计算结果分别与SHA256函数计算结果、Scrypt函数计算结果进行对比分析,根据结果匹配度判定矿机的算法类型。
本发明内容中仅是以SHA256和Scrypt两种算法为例,具体应用时还在统一接入服务器实现了多种其它Hash算法。
下面通过具体实施例对本发明的技术方案做详细介绍:
传统的矿机接入过程首先从矿机发起,直接建立一个至矿池的TCP连接。这是一个长连接,矿机与矿池的所有数据通信,将在这个连接上进行。矿机原本将TCP连接至矿池的Stratum server,这就要求矿机的拥有者先确定矿机的Hash算法类型,然后根据矿池的介绍,将矿机连接至某一个特定的接入地址。
而本发明中,矿池不需要再为每种支持的算法提供一个特殊的接入地址,而是改为提供一个统一的接入地址,即连接至统一接入服务器。矿机方发起TCP连接的时候,会连接至这个统一的接入地址。
举例来说,没有使用本发明方法的矿池,需要提供这样一组接入地址:
对于BTC矿机来说,连入地址:
stratum+tcp://stratum-btc.okpool.top
对于LTC矿机来说,连入地址:
stratum+tcp://stratum-ltc.okpool.top
而使用本发明之后的矿池,可以只提供一个统一接入地址:
不论对于BTC矿机还是对于LTC矿机,都连入地址:
stratum+tcp://stratum.okpool.top
这样就可以大大简化配置方面的工作,也不易出错。
从技术上来说,传统矿机直接连接到矿池的对于某一币种特定的Stratum server上,Stratum server只能接受某一种币的Hash算法计算结果,不能搞错,如果配置错误,则矿机不能正常工作。
而本发明中,矿机与矿池的连接关系如图1所示。矿机连接到统一接入服务器,由统一接入服务器与矿机之间先进行一组会话,以判定矿机的Hash算法类型。判定完成之后,由统一接入服务器建立与矿池某一币种特定的Stratum server,并退化为纯TCP管道,这时矿机进入真正的工作模式。
各种不同的矿机提供不同的Hash算法,但它们都使用相同的Stratum协议与矿池进行通讯,而且在通讯的过程中,除了Hash计算的数据内容之外,所有的通讯框架都完全相同,也并不说明矿机的种类。矿机并不会显式报告自己的类型,矿池也无法通过矿机发出Stratum协议的细微差别找到蛛丝马迹,以判定矿机的类型。而本发明不依赖于矿机自己报告的类型信息,也不依赖于Stratum协议的细微差别来判定矿机Hash算法的类型。本发明的核心思想是:通过给矿机下发一个简单的计算任务,当矿机计算完成之后,通过对计算任务的验算,判定矿机所使用的Hash算法。
下面是一个具体的例子,包含了真实的参数:
首先在建立连接过程中,统一接入服务器在连接成功回复消息中向矿机发出扩展随机数1值:
"01000080"
然后通过mining.notify下发任务,包含参数上一块Hash值:
"9a036f7212d733b22f3c8167bba0df95d0175aa30001a1c10000000000000000"
Coinbase1:
"02000000010000000000000000000000000000000000000000000000000000000000000000ffffffff2d03a267080422ddf35b726567696f6e312f50726f6a65637420425443506f6f6c2f"
Coinbase2:
"ffffffff02660f314f0000000017a914963fe6d1edd09f7d14e2f6c4942a13c7cb7601cc870000000000000000266a24aa21a9ed3b8ddde1be88f88fa38d24721c4b0b5fcba0149df68330b0337b9ea06b5660d900000000"
默克尔根列表(空):
[]
区块版本:
"20000000"
全网难度值:
"172a4e2f"
当前时间:
"5c137ca8"
以上任务下发到某矿机之后,经过几秒钟的运算之后可以得到矿机的任务提交:
扩展随机数2:
"1a40000000000000"
随机数:
"b4953620"
统一接入服务器将以上所有数据使用SHA256/Scrypt两种Hash算法设计的方式分别计算Hash函数,可以得到:
SHA256函数计算结果:
0000000000016fb2aa2ca97fb4dd32c7fb1214cbb207181f5cb77afc2a6be96cScrypt函数计算结果:
c4b0aab82cc2f22abfd64d5a4b27e80df6c3603dd4dbde427bae4936ef5b9e9
可以从两个结果中看出,SHA256函数计算结果前面包含了一组0值,这组0值即为统一接入服务器所检查的特征值。如果出现这个特征,说明提交结果的矿机,使用了SHA256函数进行计算,因此该矿机为BTC矿机。
另一个矿机,接到另一个计算任务后(此任务内容省略),提交任务结果,统一接入服务器同样使用SHA256/Scrypt两种Hash算法设计的方式进行组合,并计算Hash函数,可以得到:
SHA256函数计算结果:
34c6beab6f3665e314edd7f3c2b92ce1fc58517d2ec8c94f094e2f8c15e5f4a1
Scrypt函数计算结果:
0000000194d84661ae6cc7cb6ab4d6e4bd4e34f91014f082fd4bbb4ae2fecf03
可以从第二组结果中看出,Scrypt函数计算结果前面包含了一组0值特征值,因此该矿机为LTC矿机。
本发明不需要修改Stratum协议,也就是不需要对市面上已有的矿机进行任何改进就可以直接使用。通过将矿机接入统一接入服务器,所有类型的矿机不再需要人为区分接入地址,可以使用统一的地址接入矿池。这样,矿池只需要提供一个地址、一台前端服务器即可。同时,矿机用户也不再需要复杂的配置过程,所有矿机都使用同一个地址接入即可,减少了人工配置过程中出错的可能性。
上述实施方式并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的技术方案范围内所做出的变化、改型、添加或替换,也均属于本发明的保护范围。

Claims (4)

1.一种将多种不同的矿机统一接入矿池的方法,其特征在于:所述方法的整体过程为:
a、将矿机连接到统一接入服务器;
b、统一接入服务器向矿机下发一个简单的计算任务;
c、统一接入服务器检查矿机的任务计算结果,通过结果验算判定矿机所使用的Hash算法;
d、确定矿机的算法类型后,统一接入服务器将矿机自动接入至对应矿池的Stratumserver中;
e、统一接入服务器退化为纯TCP管道,矿机进入真正的工作模式。
2.根据权利要求1所述的将多种不同的矿机统一接入矿池的方法,其特征在于:所述矿机算法判定的具体过程为:
当矿机和统一接入服务器之间建立连接之后,通过连接成功回复消息以及stratum协议的mining.notify消息下发一个低难度的计算任务;
矿机通过mining.submit消息提交计算结果给统一接入服务器;
统一接入服务器对计算结果进行验算,根据验算结果确定矿机的算法类型。
3.根据权利要求2所述的将多种不同的矿机统一接入矿池的方法,其特征在于:所述低难度的计算任务不论是BTC矿机还是LTC矿机,都可以完成,但它们会分别使用自己的算法完成这个计算任务。
4.根据权利要求3所述的将多种不同的矿机统一接入矿池的方法,其特征在于:所述矿机在将任务计算结果提交给统一接入服务器之后,统一接入服务器将所有任务数据利用SHA256、Scrypt两种Hash算法设计的方式进行计算,分别得到SHA256函数计算结果、Scrypt函数计算结果;然后将矿机的任务计算结果分别与SHA256函数计算结果、Scrypt函数计算结果进行对比分析,根据结果匹配度判定矿机的算法类型。
CN201910052430.0A 2019-01-21 2019-01-21 一种将多种不同的矿机统一接入矿池的方法 Active CN109921906B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910052430.0A CN109921906B (zh) 2019-01-21 2019-01-21 一种将多种不同的矿机统一接入矿池的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910052430.0A CN109921906B (zh) 2019-01-21 2019-01-21 一种将多种不同的矿机统一接入矿池的方法

Publications (2)

Publication Number Publication Date
CN109921906A true CN109921906A (zh) 2019-06-21
CN109921906B CN109921906B (zh) 2022-04-05

Family

ID=66960472

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910052430.0A Active CN109921906B (zh) 2019-01-21 2019-01-21 一种将多种不同的矿机统一接入矿池的方法

Country Status (1)

Country Link
CN (1) CN109921906B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254339A (zh) * 2016-08-01 2016-12-21 北京比特大陆科技有限公司 挖矿业务的安全认证方法和系统
CN106850775A (zh) * 2017-01-13 2017-06-13 算丰科技(北京)有限公司 矿池与矿机交互数据的方法、代理端、矿池和系统
US20180005318A1 (en) * 2016-06-30 2018-01-04 Chicago Mercantile Exchange Inc. Derivative Contracts that Settle Based on Transaction Data
CN108681520A (zh) * 2018-06-28 2018-10-19 北京比特大陆科技有限公司 一种数据处理模组、电路、算力板、矿机以及挖矿系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180005318A1 (en) * 2016-06-30 2018-01-04 Chicago Mercantile Exchange Inc. Derivative Contracts that Settle Based on Transaction Data
CN106254339A (zh) * 2016-08-01 2016-12-21 北京比特大陆科技有限公司 挖矿业务的安全认证方法和系统
CN106850775A (zh) * 2017-01-13 2017-06-13 算丰科技(北京)有限公司 矿池与矿机交互数据的方法、代理端、矿池和系统
CN108681520A (zh) * 2018-06-28 2018-10-19 北京比特大陆科技有限公司 一种数据处理模组、电路、算力板、矿机以及挖矿系统

Also Published As

Publication number Publication date
CN109921906B (zh) 2022-04-05

Similar Documents

Publication Publication Date Title
CN111367983B (zh) 数据库访问方法、系统、设备和存储介质
CN107911421B (zh) 用于配置区块链中跨网络通信的方法、设备和计算机存储介质
CN107133231B (zh) 一种数据获取方法和装置
CN110493308B (zh) 分布式一致性系统会话方法、装置及存储介质、服务器
CN104506600A (zh) 一种共享计算资源方法、装置、系统及客户端和服务器
CN109802951A (zh) 一种报文转发方法、设备及存储设备、程序产品
CN112527293A (zh) 首屏页面渲染方法、装置、计算机设备及存储介质
CN106874371A (zh) 一种数据处理方法及装置
CN113900939A (zh) 测试环境访问方法、装置、可读存储介质和计算机设备
CN109146444B (zh) 虚拟账户创建方法及装置、账户信息更新方法及装置
CN111625474B (zh) 一种联盟链的自动测试方法
CN109558710A (zh) 用户登录方法、装置、系统及存储介质
CN109921906A (zh) 一种将多种不同的矿机统一接入矿池的方法
CN114221971B (zh) 数据同步方法、装置、服务器、存储介质及产品
CN116055403A (zh) 报文数据的传输方法、装置和服务器
CN115442285A (zh) 基于虚拟化配置的网络测试方法、装置、设备及介质
CN105991633A (zh) 会话日志处理方法及装置
CN112988738B (zh) 用于区块链的数据分片方法和装置
CN113691403A (zh) 拓扑节点配置方法、相关装置及计算机程序产品
CN106445694A (zh) 一种应用程序访问方法、装置及系统
CN111416852A (zh) 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN112433821B (zh) 业务模型的搭建方法、装置、电子设备及介质
CN113422778B (zh) 防火墙策略配置方法、装置和电子设备
CN115314258B (zh) 一种应用弱口令检测方法、装置、电子设备及存储介质
CN111818107B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220208

Address after: P.O. Box 31119, grant house, Furong Road, 802 Xiwan Road, Grand Cayman, Cayman Islands

Applicant after: Okoser Holdings

Address before: 100089 4th floor, building 3, Qunying Science Park, No. 8, Chuangye Road, Haidian District, Beijing

Applicant before: OUKE INTERDYNAMIC NETWORK TECHNOLOGY (BEIJING) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant