CN109921906A - 一种将多种不同的矿机统一接入矿池的方法 - Google Patents
一种将多种不同的矿机统一接入矿池的方法 Download PDFInfo
- 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
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函数计算结果进行对比分析,根据结果匹配度判定矿机的算法类型。
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)
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 | 北京比特大陆科技有限公司 | 一种数据处理模组、电路、算力板、矿机以及挖矿系统 |
-
2019
- 2019-01-21 CN CN201910052430.0A patent/CN109921906B/zh active Active
Patent Citations (4)
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 |