AsicBoost

一种改善ASIC挖矿设备的效率以减少电力消耗的方法。

比特币核心 (Bitcoin Core)

指包含并应用于比特币全网络节点的免费和开源软件。

bitcoind

一种实现比特币协议的远程过程调用(RPC)的比特币客户端/程序。

创币交易(Coinbase transaction)

一种随着每个新区块的产生而发生的交易,它将新挖出的比特币的区块奖励(例如,新UTXO,未消费交易输出)发送到矿工的地址。

创币 (Coinbase)

指包含创币交易输入的,最多有100字节数据的可任意使用的特殊字段。

超额随机数 (extraNonce)

由于随机数(nonce)是一个32位的数,最大的nonce可以是2的32次方,或者说大约有40亿个nonce值;而extraNonce是为了扩展可能的值,并代替nonce,它是包含在创币(Coinbase)中的一个字段。

默克尔根 (Merkle root)

默克尔(二进制哈希)根的根哈希(Root hash)包含创币交易(Coinbase transaction)以及区块中其他所有的交易组成的交易集。

挖矿设备(即客户端)(Mining Device)

指网络中进行实际哈希计算的最下游节点,即工作证明。

随机数 (Nonce)

Nonce是“仅一次使用的数字(Number Only used once)”的缩写,在比特币协议中,随机数(nonce)是一个32位长的逐增调节的值,它用于进行重复哈希已被哈希的区块,直到输出的哈希率满足当前网络难度的级别限制,而这意味着有效的解决方案被找到,这时矿工则可以向网络的其余部分,提出证明他们挖出了区块的要求。

区块时间戳滚动 (nTime rolling)

区块时间戳是包含在区块头段的整数时间戳(以秒钟表示)。而区块时间戳滚动(nTime rolling)这种方法,是指矿工在矿机里本地增加时间戳,而不是每秒都向矿池请求新的区块头段,这样减少了矿池与矿工之间需要发生的数据传输量。显式(Explicit)的区块时间戳滚动值,能够让矿工在向矿池请求新工作(即接下来要挖矿的,新的有效区块头段)前,就让矿工知道能增加多长的区块时间戳值(以秒钟为单位)。

矿池服务商(即服务器)(Pool Service)

指网络最上游的负责通过向创币(Coinbase)输入独特数据的节点,为每个连接到服务器的矿机生成独特的工作。

代理 (Proxy)

指网络中进行中介的节点,用于聚集哈希率/难度。

交易集 (Transaction set)

包含在提出区块中的所有交易。

版本滚动 (Version rolling)

改变比特币头字段的区块版本值,从而启用AsicBoost。

挖矿协议

下一代矿池挖矿协议由Pavel Moravec, Jan ČapekMatt Corallo与其他的业内专家共同合作设计。

a
b
c

阶层协议V2(Stratum V2)是下一代的矿池挖矿协议,它将提高挖矿数据传输的效率和安全性,并减少挖矿所需的硬件设施。它同时也引入了三个新的子协议,让矿工通过与矿池的协商过程来选择他们自己的交易集。

在下面的部分,我们将解释阶层协议V2(Stratum V2)的每个特性,以让您了解到V2协议与V1相比有什么变化,为什么这些变化很重要,以及在技术层面协议是如何运作的。

注:在您深入研究技术上的细节前,您最好需要了解我们使用的术语。

协议总览

设备 (Device)

哈希是由真实的挖矿设备矿机算出的。

代理 (Proxy)

代理是指在挖矿设备和矿池服务商之间的中介,代理以汇聚网络连接的方式提高传输效率,并可以提供像比如监控设备的运行情况和性能这样的一些附加功能。

哈希率消耗者 (Hashrate consumer)

接收挖矿设备发送的份额(即Share,已完成工作)的上游节点。矿池是最常见的哈希率消耗者。

工作协商者 (Job Negotiator)

指代表一个或者多个矿工与矿池进行协商,关于应该进行什么工作的节点。这样的节点还与区块模板提供商(比如bitcoind)进行通信,发送工作给挖矿代理,再由代理分配给矿工。

挖矿协议

V2协议是阶层协议V1(Stratum V1)的直接后继。它是挖矿的主要协议,以及整个协议堆栈中,唯一需要在所有情况下都必须实现的一个部分。协议适用于挖矿设备与代理和矿池服务商间的通信。

协议定义了三种通信信道:
  • 标准信道不控制默克尔路径(Merkle path)创币交易(Coinbase transaction),从而大大简化了它们与上游节点之间所需的通信

  • 扩展信道被赋予了对搜索空间的广泛控制权,以便可以在一些高级使用情况下进行通信(例如V1与V2协议之间的交易,难度汇聚,定制的探索空间分割等)

  • 团体信道汇集了在特定连接中打开的标准信道,因此在公共通信信道里能够对它进行寻址

工作协商协议

这一协议是矿工用于与矿池协商区块模板(Block template, 它包括交易集Transaction set),这让在矿池挖矿更像是在单机挖矿,从而增加去中心化的程度。协商结果可以被所有与矿池的挖矿连接(可能有数量相当多的连接)重复使用,从而大大降低计算强度。此协议与挖矿协议独立,是挖矿基础设施中的可选部分,也可以作为第三方的服务提供给矿场。

模板分配协议

这一协议用于从比特币核心中获取有关下一个区块的信息。该协议的设计相当高效,很容易就能用API来替代"getblocktemplate"挖矿协议(比特币改进提议草案BIP,BIP22及23)。

具体地讲,模板分配协议用作与比特币核心的一部分“bitcoind”进行通信,bitcoind将比特币协议实现为远程过程调用(RPC, Remote Procedure Call)的方式使用。换句话说,bitcoind让比特币协议能够集成到其他的软件中。

工作分配协议

这一协议用于将新协商好的工作传送给感兴趣的节点,这些节点可以是代理,也可以是实际的挖矿设备。该协议与工作协商协议相辅相成。

但假如矿工不协商他们的工作(即选择他们自己的交易集),工作将直接从矿池分配到代理和终端设备上,这与最原来的阶层(Stratum)协议相似。此外,工作分配的角色也可能会由大规模的挖矿协议代理来扮演,则代理也能向矿工分配工作,这样的情况下,矿工选择他们自己的交易集合时,也就不必使用此子协议。

上游和下游描述数据流向。矿机作为最下游的设备,而矿池服务作为最上有的。

特性

带宽消耗

为了减少带宽消耗,阶层协议V2(Stratum V2)使用了两种方式进行优化。第一,因为它是完全基于二进制,而不是像V1那样基于JSON的,所以传输数据的大小达到了最小化。第二,它剔除了很多情况下不必要的数据传输(例如冗余信息),这意味着传输数据的总量也被最小化。

阶层协议V2(Stratum V2)

V2协议的份额(Share)提交信息通常为32字节(未加密)和48字节(加密的)

阶层协议V1(Stratum V1)

V1协议的份额(Share)提交信息通常为100字节

技术描述

使用二进制比基于文本的协议能够显著减少带宽消耗。虽然通过阶层协议V1(Stratum V1)交换的消息是人类可读的,但是这也造成了信息量比实际需要的大小冗余了2-3倍,而在V2协议里的消息大小已经被最可能地减小了。

此外,V1协议还包含一些完全没必要的消息,例如minig.subscribe。V2协议通过去除这些没必要的信息,使需要传输的消息更少,从而进一步减少带宽消耗。

动机和影响

减少网络流量,也是减少客户端和服务器端的计算强度,这样降低了所有参与者的基础设施成本。同时,带宽消耗显著的降低使得哈希结果可以更频繁地传输,从而让更精确的哈希计量和挖矿奖励分配得以实现。

展开
收起

服务器CPU负载

通过为终端设备引入公用信道的方式,阶层协议V2(Stratum V2)允许高效缓存,因此服务器的CPU无需为每个计算都重复提交默克尔根(Merkle root)。而提交的责任从终端设备向上游转移到通过拓展信道连接到矿池服务器的代理

阶层协议V2(Stratum V2)

V2协议与V1协议相比,在提交份额(Share)时的CPU负载减少了70-80%

阶层协议V1(Stratum V1)

V1协议无法进行高效的缓存。每次提交都会重复计算默克尔根(Merkle root)。

技术描述

阶层协议V2(Stratum V2)允许终端设备进行仅头段挖矿(Header-only mining)的结果是减少服务器CPU负载。这意味着默克尔根(Merkle root)总是由上游的节点提供,根本无需由终端设备来处理。换句话说,终端设备从而就无需进行任何创币修改(Coinbase modifications)。这不仅使矿机的计算更简单,也让服务器端的工作验证(例如CPU负载)变得更简单。

动机和影响

作为矿池运营商,很明显我们的主要动机之一就是要减少服务器的CPU负载,这样能减少我们的项目成本。但是,任何矿池都可以(并应该)利用这个好处,所以从总体上讲,更重要的动机则是要提高整个挖矿网络的效率

展开
收起

工作分配延迟

指矿池在未来的区块的时间前,即使未来的区块还尚未被发现,就能提前给矿工发送工作。这样矿池就能将最新的上一区块哈希值(Prevhash)以更小的(即更快的)消息发送给矿工,提醒他们应该立即开始对新的区块进行挖矿。

阶层协议V2(Stratum V2)

V2协议将消息分离,让矿工在前一个区块被发现的时候,就能更快地开始对下一个区块进行挖矿。

阶层协议V1(Stratum V1)

V1的上一区块哈希值(Prevhash)和未来工作都在同一消息里,因此矿池发送空区块。

技术描述

矿池通过发送包括一些预定义数据,以及一些将由矿工处理的变量数据的区块的方式,给矿工分配工作。在阶层协议V1(Stratum V1)中,预定义数据包含上一区块哈希值(Prevhash,最近被找到的有效区块的哈希值),以及将要包含在当前区块中交易集的默克尔根(Merkle root)。但是,这两种数据是不可分离的,因此一旦新的区块(带有新的Prevhash的)被发现并传播时,会大量(缓慢)数据需要传输以分配新的工作。而在阶层协议V2(Stratum V2)中,可以将上一区块哈希值(Prevhash)与其余的预定义数据分开,这样矿池在出现新的上一区块哈希值(Prevhash)之前就能发送区块数据。这样的好处是新的上一区块哈希值(Prevhash)消息能够在新的有效区块被找到前就能自行发送,更简明的消息使得终端设备和矿池服务器间的信息交换更快。与V1协议相比,矿机就也能更快地开始进行对下一个的区块的工作。

动机和影响

在开始对下一区块挖矿时,矿工要等的每一毫秒都是机会(也是金钱)的损失。通过将上一区块哈希值(Prevhash)的消息与阶层协议V2(Stratum V2)中的其他工作分配消息分开,能够节省价值千金的每一毫秒

展开
收起

二进制 vs. 非二进制

阶层协议V2(Stratum V2)是用二进制编写的,它对收发的消息进行了编码,这样能让机器能高效地读写消息,但这样的消息不适合人直接阅读或者使用。这样带来的结果是,矿工、代理和矿池运营商之间的数据传输大小最小化了。

阶层协议V2(Stratum V2)

V2协议传输的数据人不可读,但是效率更高

阶层协议V1(Stratum V1)

V1协议传送人可读的(JSON格式的)数据,这有助于数据的采用,且更易于分析和调试,但效率低得多。

技术描述

协议具有精确定义的固定消息框架(Fixed Message Framing),这意味着通过V2协议传输的消息,就无法像对V1协议里的消息一样,能够进行不同的解释。具体的消息框架结构在比特币改进提议草案(BIP)的“框架”部分可以查看。

动机和影响

最初的阶层(Stratum)协议使用JSON格式,它的消息负载大小与实际传输消息之间的比率很差。而让阶层协议V2(Stratum V2)成为二进制协议,则能带来更好的数据效率,且节省的带宽可以用来进行更频繁的提交,从而进一步减少哈希率差异。

展开
收起

防止中间人攻击

为确保敏感数据的机密性和完整性,阶层协议V2(Stratum V2)使用极强的加密方案,防止数据被潜在的第三方恶意解密。这样能保护矿工不会受到V1协议中可能发生的多种攻击,包括通过哈希率劫持(第三方侦听矿工与矿池之间的通信)来获得矿工完成工作的成绩(即窃取奖励)。

是否有防止恶意窃取哈希率,和防止挖矿数据传输被侦听的机制?
阶层协议V2(Stratum V2)


阶层协议V1(Stratum V1)

没有

技术描述

阶层协议V2(Stratum V2)使用一种“带关联数据的认证加密”(ADAD, authenticated encryption with associated data)方案,来解决客户端和服务器端之间发生的所有通信的安全性问题。这保证了传输密文(即加密文本)的加密性和完整性,同时未加密的相关数据的完整性也得以保证。

动机和影响

阶层协议V1(Stratum V1)容易受到三种中间人攻击:侦听矿池与矿工之间的所有通信,窃取ISP运行日志中的元数据,以及哈希率劫持。这些攻击都可以在不容易被检测到的情况下偷偷地进行,造成对付它们更加地棘手。阶层协议V2(Stratum V2)使用带关联数据的认证加密 (AEAD),因此黑客无法用份额提交数据(Share Submission Data)来识别出具体的矿工,在保护矿工隐私的同时,也让他们免受哈希率劫持。

展开
收起

消除挖矿中的空区块

在阶层协议V2(Stratum V2)中,矿池向矿工发送空区块(即不包含任何交易的区块),和发送作为开始工作信号的完整区块都是同样有效的。由于现在发送完整区块不会引发任何的额外延迟,所以也就不存在需要发送空块的动机了。

阶层协议V2(Stratum V2)

发送完整区块没有任何延迟,所以不需要空区块了。

阶层协议V1(Stratum V1)

发送完整区块比发送空区块慢。

技术描述

消除挖矿中的空区块与工作分配延迟部分非常相似,消除它的动机可以归结为将上一区块哈希值(Prevhash)消息,从其他的区块头数据分离开。对于阶层协议V1(Stratum V1)来说,有一种激励机制,它要求矿池尽快发送包含新的上一区块哈希值(Prevhash)的空区块,因为这些消息比包含完整区块的消息更快地能到达。而在阶层协议V2(Stratum V2)中,通过分离这两种消息,矿池可以在发送新的上一区块哈希值(Prevhash)消息前,就给矿工发送完整区块。 换句话说,矿工可以在前一个区块被确认前,就可以准备开始挖矿新的(完整)区块,而唯一需要的是新的上一区块哈希值(Prevhash)消息。由于无论是矿池发送了空区块还是完整区块,上一区块哈希值(Prevhash)消息的大小都依然相同(即都需要同样时间到达),因此就再没有挖矿空区块的激励机制了。

动机和影响

只要挖空区块的动机存在,就不可能有能让矿工找到实际有效的解决方法,从而让空区块能够被网络的其余部分所接受的问题得以解决。在阶层协议V2(Stratum V2)中,挖空区块和挖完整区块相比,挖空区块没有任何的优势,所以对空区块的挖矿应该被有效地消除。

展开
收起

工作选择

矿工现在能自己选择他们的工作了(即选择自己的交易集),这使挖矿更加去中心化。而它的实现是与主要的挖矿协议分开的,且对于矿池和矿工来说,它是可选的。

是否允许矿工选择自己的交易集?
阶层协议V2(Stratum V2)


阶层协议V1(Stratum V1)


技术描述

矿工终端的工作选择作为阶层协议V2(Stratum V2)的可选组件,与主要挖矿协议分开。实际上,它由三个子协议执行:工作协商协议,工作分配协议和模板分配协议

工作”谈判“协议的名字,顾名思义,工作选择的确是矿工和矿池之间的协商过程。矿工提出区块模板,然后让矿池决定是要接受还是拒绝它。一旦协商模板被接受,任何数量的甚至几十万个挖矿设备,就都可以使用其结果。为什么它要和主要挖矿协议分开,是因为这样可以让矿池,能够在不同于主要挖矿协议的独立基础设施上能结束连接,这样做对实际份额(Share)提交的效率不造成任何影响。

动机和影响

允许矿工选择自己的交易集,这让一些权力从矿池下放到矿工,从而也增加了比特币的抗审查性。这个概念最初由Matt Corallo在BetterHash提出,我们觉得将它纳入阶层协议V2(Stratum V2)中非常重要,这对比特币的去中心化很有意义。

展开
收起

复用机制 (Multiplexing)

复用机制允许将单个连接(例如TCP)用于任意数量设备间的独立信道。这能减少矿池和代理所需要连接的数量,从而节省一些成本。

是否有复用机制?
阶层协议V2(Stratum V2)


阶层协议V1(Stratum V1)


技术描述

尽管可能不切实际,但从理论上将,在往上游节点的单个物理连接中(例如TCP)最多可以有232 个(约43亿)开放通道。 这些通道都各自独立,并拥有不同的通道ID,这意味着许多设备可以同时从同一连接,接收不同的工作分配,从而节省基础设施成本。同时,这些通道可能都共享一些信息以提高效率,例如在广播新的上一区块哈希值(Prevhash)时。

动机和影响

每多一条物理连接,复杂性就越高,挖矿作业中基础设施的项目成本也越高。开启复用机制,就能在单个连接中,可以将许多不同的信息传递给多个不同的参与者,让管理更简单高效。

展开
收起

隐式工作订阅 (Implicit Work Subscription)

阶层协议V2(Stratum V2)通过隐式地假设,一旦矿工开启挖矿通道,就表明矿工准备接受分配的工作,这样V2协议就消除了一些以前V1协议中不必要的消息。

阶层协议V2(Stratum V2)

V2消除挖矿订阅(mining.subscribe)消息

阶层协议V1(Stratum V1)

V1中具有两种消息:挖矿订阅(mining.subscribe)和挖矿授权(mining.authorize)

技术描述

在阶层协议V1(Stratum V1)中,当矿工与矿池(客户端→服务器端)建立连接时,他们发送挖矿授权(mining.authorize)消息。一旦授权申请成功,矿工会接着发送挖矿订阅(mining.subscribe)消息,表明他们希望开始(或恢复)矿池所分配的工作任务。换句话说,矿工需要明确地向矿池要求工作分配。而在阶层协议V2(Stratum V2)中,矿池隐式地假设,如果矿工开启了与矿池的信道,则表示他们希望从矿池接收工作分配

动机和影响

挖矿订阅(即mining.subscribe)消息,最初是现在已经不再有效的冗杂的挖矿协议中的一部分。当前,显式挖矿订阅在阶层协议V1(Stratum V1)中,只会生产不必要的数据传输。隐式的工作订阅可提高协议的相对效率

展开
收起

原生版本滚动(Native Version Rolling)

版本滚动是阶层协议V1(Stratum V1)添加的扩展(比特币改进提议310)。它已成为挖矿必不可少的部分,而V2协议无需任何扩展,就原生支持版本滚动

阶层协议V2(Stratum V2)

V2原生支持版本滚动

阶层协议V1(Stratum V1)

V1用扩展(比特币改进提议 BIP 310)来允许版本滚动

技术描述

每个比特币区块头段都包含版本项(Version Field),版本项的信息可以被自由地用于扩展矿工的探索空间。这个过程就叫版本滚动(Version Rolling)。考虑现在ASIC矿机的算力 ,32位的随机数(Nonce)项在100毫秒内就可以被用尽。每当出现这样的情况,矿机上的控制器就必须给每个芯片分配新的工作。许多带宽和CPU负载就这样被浪费掉。版本滚动可以显著地减少需要分配新工作的频率,并且这种技术也已相当普遍(见比特币改进提议320)。考虑到它的广泛使用,我们决定在阶层协议V2(Stratum V2)中内置版本滚动,不再像在阶层协议V1(Stratum V1)中那样需要扩展。

动机和影响

版本滚动已经非常普遍、广泛地应用。我们仅仅是将它从阶层协议V1(Stratum V1)中的扩展,变成了阶层协议V2(Stratum V2)中的内置部分。从外部角度来看,最终结果没有太大不同。

展开
收起

零时后端切换(Zero-time Backend Switching)

零时后端切换意味着,代理可以在提供来自从不同矿池的工作的同时,不造成挖矿效率的损失。换句话说,矿场运营者可以在多个矿池上进行挖矿时,使用单个代理来管理他所有的设备,这样他们就不会遇到任何延迟或其他效率低下的情况。

阶层协议V2(Stratum V2)

V2协议原生支持接收来自多个上游来源的工作。

阶层协议V1(Stratum V1)

V2协议通过非标准扩展,允许矿工改变他们所用的矿池,但终端设备需要明确地支持这种情况。

技术描述

允许矿工进行零时后端切换(即更改从哪个上游服务器接收工作,或者同时连接到多个上游的服务器)意味着可以有效地执行更复杂的用例(例如比特币BTC和比特币现金BCH之间的切换)。在阶层协议V1(Stratum V1)中,这可以通过超额随机数 (extraNonce)订阅拓展来进行,但这并不常见,且需要挖矿固件的支持。将这个功能放入阶层协议V2(Stratum V2)的内置功能,矿工就可以通过标准信道从多个来源同时接收工作,且和只从一个上游服务器接收工作相比还不会遇到效率低下的问题。

动机和影响

用零延迟的后端切换,让所需的物理基础设施能更有效地实施更精细的挖矿设置。

展开
收起

同一连接上的不同类型工作(Different Type of Jobs on the Same Connection)

它允许矿工在单个连接上,进行多种工作的挖矿(甚至可能可以挖不同的币)。例如,矿池的矿机共享同一个的连接时,一些矿机可以挖比特币BTC,而另一些则可以挖比特币现金BCH。

阶层协议V2(Stratum V2)

在V2协议中,在同一个连接上的不同的信道,可以进行不同的工作。

阶层协议V1(Stratum V1)

在V1协议中,共享同一个连接的所有设备都进行同一个工作。

技术描述

对阶层协议V2(Stratum V2)来说,复用机制的特殊优势之一,就是一个物理的连接可以用于传输多个(种)工作的数据。这样可以降低复杂性和成本。例如,建立一个TCP连接需要进行三次握手,这其中要传输三个数据包,就会消耗一些资源。而当有成百上千这样的连接,每天都在开关,成本就会增加。通过单个连接发送多个工作,能降低连接所需要的开关频率,减少所需的连接总数。

动机和影响

根据之前的复用机制部分所述,允许在单个连接上传输多个工作数据的主要动机,就是要降低物理基础设施的复杂性和项目成本。

展开
收起

Implementation

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Dolor aliquam eget sit urna. Morbi at at amet sed lorem nisl. Viverra integer id purus sed facilisis eu condimentum nulla.

The Stratum Proxy

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ornare quisque maecenas cursus magna tempus diam.

Link to repository

The mining client

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ornare quisque maecenas cursus magna tempus diam.

Link to repository

Possible Deployment
scenarios

Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit.

Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit.

Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit.

Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit.

Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit.

Lorem ipsum dolor sit amet, onsectetur adipiscing elit. Diam mi sit sed molestie ligula volutpat ipsum risus. Erat ut quam massa velit.

扩展

比特币挖矿行业迅速发展,可以预料到的是,业界人士可能会希望通过扩展的方式,向协议新增功能。我们在阶层协议V2(Stratum V2)的比特币改进提议(BIP)中,没有对拓展进行大规模的定义,但是我们概述了一些所有扩展都必须符合/注意到的基本要求。这些要求可以在协议扩展部分中找到。

Pick your number

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus morbi morbi amet sed. Id elit aliquam aliquam.

Pick your number

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus morbi morbi amet sed. Id elit aliquam aliquam.

Pick your number

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Faucibus morbi morbi amet sed. Id elit aliquam aliquam.

Currently available extensions

Extension name

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Extension name

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Extension name

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Technical Description

在阶层协议V2(Stratum V2)中,协议扩展可以通过消息头段的非零(Non-zero) extension_type项来定义。在0x4000到0x7fff范围的扩展被视为“实验性”拓展,在生产硬件上不会展示出来。而已经分配的针对特定目的扩展,可以在本站的“当前可用扩展”部分找到。

我们设计阶层协议V2(Stratum V2)的目的之一,是要能为供应商特定的扩展提供简单支持,同时不污染挖矿协议或又使实现矿池更复杂。从而就可以请求给供应商特定的拓展,分配会在生产硬件中用到的“extension_type”。如果想要做一个扩展,可以将扩展的目的简介,发送到比特币协议开发名单(Bitcoin Protocol Development List),以及extensions@stratumprotocol.org

当前可用扩展

想要了解扩展要求的完整说明,请见阶层协议V2(Stratum V2)比特币改进提议(BIP)的协议扩展(Protocol Extensions)部分。

展开
一份技术规范的草案已经发布,并向挖矿社区开放讨论。看一下它,并贡献你的建议吧。
了解阶层协议V2(Stratum V2)的技术规范
Start testing v2
Start testing v2

To start testing Stratum V2 in your mining operation, download the alpha of bOSminer which natively supports it.

Download now

Then you can mine on the Slush Pool V2 endpoint [v2.stratum.slushpool.com:3336] or on any V1 endpoint by using a V2 -> V1 translation proxy.

If you have any questions or discover any issues, please contact us.