当前位置:首页 » 矿机知识 » 机枪矿池搭建

机枪矿池搭建

发布时间: 2024-06-03 15:16:19

『壹』 比特币矿池的协议stratum

转自: https://zhuanlan.hu.com/p/23558268
getblocktemplate协议诞生于2012年中叶,此时矿池已经出现。矿池采用getblocktemplate协议与节点客户端交互,采用stratum协议与矿工交互,这是最典型的矿池搭建模式。

与getwork相比,getblocktemplate协议最大的不同点是:getblocktemplate协议让矿工自行构造区块。如此一来,节点和挖矿完全分离。对于getwork来说,区块链是黑暗的,getwork对区块链一无所知,他只知道修改data字段的4个字节。对于getblocktemplate来说,整个区块链是透明的,getblocktemplate掌握区块链上与挖矿有关的所有信息,包括待确认交易池,getblocktemplate可以自己选择包含进区块的交易。

挖矿有两种方式,一种叫SOLO挖矿,另一种是去矿池挖矿。前文所述的在节点客户端直接启动CPU挖矿,以及依靠getwork+cgminer驱动显卡直接连接节点客户端挖矿,都是SOLO挖矿,SOLO好比自己独资买彩票,不轻易中奖,中奖则收益全部归自己所有。去矿池挖矿好比合买彩票,大家一起出钱,能买一堆彩票,中奖后按出资比率分配收益。理论上,矿机可以借助getblocktemplate协议链接节点客户端SOLO挖矿,但其实早已没有矿工会那么做,在写这篇文章时,比特币全网算力1600P+,而当前最先进的矿机算力10T左右,如此算来,单台矿机SOLO挖到一个块的概率不到16万分之一,矿工(人)投入真金白银购买矿机、交付电费,不会做风险那么高的投资,显然投入矿池抱团挖矿以降低风险,获得稳定收益更加适合。因此矿池的出现是必然,也不可消除,无论是否破坏系统的去中心化原则。

矿池的核心工作是给矿工分配任务,统计工作量并分发收益。矿池将区块难度分成很多难度更小的任务下发给矿工计算,矿工完成一个任务后将工作量提交给矿池,叫提交一个share。假如全网区块难度要求Hash运算结果的前70个比特位都是0,那么矿池给矿工分配的任务可能只要求前30位是0(根据矿工算力调节),矿工完成指定难度任务后上交share,矿池再检测在满足前30位为0的基础上,看看是否碰巧前70位都是0。

矿池会根据每个矿工的算力情况分配不同难度的任务,矿池是如何判断矿工算力大小以分配合适的任务难度呢?调节思路和比特币区块难度一样,矿池需要借助矿工的share率,矿池希望给每个矿工分配的任务都足够让矿工运算一定时间,比如说1秒,如果矿工在一秒之内完成了几次任务,说明矿池当前给到的难度低了,需要调高,反之。如此下来,经过一段时间调节,矿池能给矿工分配合理难度,并计算出矿工的算力。

矿池通过getblocktemplate协议与网络节点交互,以获得区块链的最新信息,通过stratum协议与矿工交互。此外,为了让之前用getwork协议挖矿的软件也可以连接到矿池挖矿,矿池一般也支持getwork协议,通过阶层挖矿代理机制实现(Stratum mining proxy)。须知在矿池刚出现时,显卡挖矿还是主力,getwork用起来非常方便,另外早期的FPGA矿机有些是用getwork实现的,stratum与矿池采用TCP方式通信,数据使用JSON封装格式。

先来说一下getblocktemplate遗留下来的几个问题:

矿工驱动:在getblocktemplate协议里,依然是由矿工主动通过HTTP方式调用RPC接口向节点申请挖矿数据,这就意味着,网络最新区块的变动无法及时告知矿工,造成算力损失。

数据负载:如上所述,如今正常的一次getblocktemplate调用节点都会反馈回1.5M左右的数据,其中主要数据是交易列表,矿工与矿池需频繁交互数据,显然不能每次分配工作都要给矿工附带那么多信息。再者巨大的内存需求将大大影响矿机性能,增加成本。

Stratum协议彻底解决了以上问题。

Stratum协议采用主动分配任务的方式,也就是说,矿池任何时候都可以给矿工指派新任务,对于矿工来说,如果收到矿池指派的新任务,应立即无条件转向新任务;矿工也可以主动跟矿池申请新任务。

现在最核心的问题是如何让矿工获得更大的搜索空间,如果参照getwork协议,仅仅给矿工可以改变nNonce和nTime字段,则交互的数据量很少,但这点搜索空间肯定是不够的。想增加搜索空间,只能在hashMerkleroot下功夫,如果让矿工自己构造coinbase,那么搜索空间的问题将迎刃而解,但代价是必要要把区块包含的所有交易都交给矿工,矿工才能构造交易列表的Merkleroot,这对于矿工来说压力更大,对于矿池带宽要求也更高。

Stratum协议巧妙解决了这个问题,成功实现既可以给矿工增加足够的搜索空间,又只需要交互很少的数据量,这也是Stratum协议最具创新的地方。

再来回顾一下区块头的6个字段80字节,这个很关键,nVersion,nBits,hashPrevBlock这3个字段是固定的,nNonce,nTime这两个字段是矿工现在就可以改变的。增加搜索空间只能从hashMerkleroot下手,这个绕不过去。Stratum协议让矿工自己构造coinbase交易,coinbase的scriptSig字段有很多字节可以让矿工自由填充,而coinbase的改动意味着hashMerkleroot的改变。从coinbase构造hashMerkleroot无需全部交易,

如上图所示,假如区块将包含13笔交易,矿池先对这13笔交易进行处理,最后只要把图中的4个黑点(Hash值)交付给矿工,同时将构造coinbase需要的信息交付给矿工,矿工就可以自己构造hashMerkleroot(图中的绿点都是矿工自行计算获得,两两合并Hash时,规定下一个黑点代表的hash值总是放在右边)

。按照这种方式,假如区块包含N笔交易,矿池可以浓缩成log2(N)个hash值交付给矿工,这大大降低了矿池和矿工交互的数据量。

Stratum协议严格规定了矿工和矿池交互的接口数据结构和交互逻辑,具体如下:

1. 矿工订阅任务

启动挖矿机器,使用mining.subscribe方法链接矿池

返回数据很重要,矿工需本地记录,在整个挖矿过程中都用到,其中:

Extranonce1,和 Extranonce2对于挖矿很重要,增加的搜索空间就在这里,现在,我们至少有了8个字节的搜索空间,即nNonce的4个字节,以及 Extranonce2的4个字节。

2. 矿池授权

在矿池注册一个账号 ,添加矿工,矿池允许每个账号任意添加矿工数,并取不同名字以区分。矿工使用mining.authorize方法申请授权,只有被矿池授权的矿工才能收到矿池指派任务。

3. 矿池分配任务

以上每个字段信息都是必不可少,其中:

有了以上信息,再加上之前拿到的Extranonce1 和Extranonce2_size,就可以挖矿了。

4. 挖矿

1) 构造coinbase交易

用到的信息包括Coinb1, Extranonce1, Extranonce2_size 以及Coinb2,构造很简单:

为啥可以这样,因为矿池帮矿工做了很多工作,矿池已经构建了coinbase交易,系列化后在指定位置分割成coinb1和coinb2,coinb1和coinb2包含指定信息,比如coinb1包含区块高度,coinb2包含了矿工的收益地址和收益额等信息,但是这些信息对于矿工来说无关紧要,矿工挖矿的地方只是Extranonce2 的4个字节。另外Extranonce1是矿池写入区块的指定信息,一般来说,每个矿池会写入自己矿池的信息,比如矿池名字或者域名,我们就是根据这个信息统计每个矿池在全网的算力比重。

2) 构建Merkleroot

利用coinbase和merkle_branch,按照上图方式构造hashMerkleroot字段。

3) 构建区块头

填充余下的5个字段,现在,矿池可以在nNonce和Extranonce2 里搜索进行挖矿,如果嫌搜索空间还不够,只要增加Extranonce2_size为多几个字节就可轻而易举解决。

5. 矿工提交工作量

当矿工找到一个符合难度的shares时,提交给矿池,提交的信息量很少,都是必不可少的字段:

矿池拿到以上5个字段后,首先根据任务号ID找出之前分配任务前存储的信息(主要是构建的coinbase交易以及包含的交易列表等),然后重构区块,再验证shares难度,对于符合难度要求的shares,再检测是否符合全网难度。

6. 矿池给矿工调节难度

矿池记录每个矿工的难度,并根据shares率不断调节以指定合适难度。矿池可以随时通过mining.set_difficulty方法给矿工发消息另其改变难度。

如上,Stratum协议核心理念基本解析清楚,在getblocktemplate协议和Stratum协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。

『贰』 如何搭建自己的区块链

第一部分:从 0 到 1 建立自己的区块链 目录:
1.1 从模仿开始,初识区块链
1.2 区块链的基础:共识机制剖析
1.3 共识机制的设计原理和设计方法
1.4 如何快速克隆一条区块链
1.5 如何把比特币变成自己的私链–分叉比特币
1.6 如何把以太坊变成自己的私链–分叉以太坊
1.7 如何把 Ripple 变成自己的私链–分叉 ripple
1.8 如何把 stellar 变成自己的私链–分叉 stellar 1.9 如何搭建一个矿池,并挖出自己的创始区块
1.10 如何开发自己的区块链钱包(Windows 和 MAC) 1.11 如何开发自己的区块链钱包(Android 和 IOS) 1.12 如何开发一个类似于 blockchain.info 的在线钱包 1.13 如何增加自己的区块链网络的安全性和鲁棒性 1.14 如何利用 coind 来处理充值提现业务
1.15 如何利用资金池搭建一个混币服务
1.16 如何设计一种新的挖矿算法
一般情况下都是这个流程,但一般人也是非常难以完成的。区块链成熟的项目有以太坊、DECENT、比特币等等。

『叁』 实锤!K32或都将失效,Chia官方5月17号推出矿池

突发消息:Chia创始人:预计将于5月17日发布官方的矿池方案原型,之前P的K32文件不支持新的矿池,如果需要接入官方矿池,需要重新P图。



此消息一出,引发了矿工的骚动尤其是一些大玩家正在P盘的过程中尤其担心,是不是K32将无效了,花钱150元/T代P的文件是不是废品了?



1.官方是不是5月17日发布新的矿池?
实锤,官方将在5月17日开放自己合作的矿池。

2.老的plot文件可以继续用,但是无法加入17号推出的官方矿池?
是的,官方目前公布的信息明确指明,老的数据K32未来可以使用,不需要重新plot绘制,但是老的K32数据无法加入到新推出的矿池协议,但是可以继续在SOLO挖矿,只是不能加入官方矿池。

3.未来K32文件会不会失效?
会失效,官方是解释是未来K32的文件会随着技术的迭代而废掉,届时需要重新绘图,但是我们会提前3个月以上发布公告。


官方推特声明对于之前chia市场乱象 (现在许多自己搭建的矿池有复制粘贴算力产币等这对所有人是不公平的)


1、官方要更新迭代以后所有挖chia都会接入官方矿池爆块更稳定。
2、市场上目前p好盘的算力将来未必能接入到官方,有可能出现爆不了块的风险,这是官方发出的通知,通过奇亚创始人推特了解到了实际情况如果这时候不停止p盘,全部p完的话,一旦到时接入官方矿池可能面临重新买硬盘重新p盘的风险。
3、硬盘挖矿工特别提醒:挖矿是矿工长久且稳定的收益,我们建议待官方17号左右更新迭代后再开始p盘,同时取消自己矿池统一接到官方矿池更稳定的爆块产币!
4、现在所有还在p盘的矿产也慌的1批,据了解多家良心矿商,紧急叫停所有p盘等待官方更新结束重新开始!




『肆』 什么是羽毛币的eHRC技术

在解释eHRC技术之前,我先介绍一下什么是机枪矿池。
机枪矿池学术名称是mutilpool,即复合矿池,提供自动切换开采币种能力的矿池。这种矿池在支付结算时,会把收获的不同币种兑换为某一种币(通常都是比特币)支付给矿工。机枪矿池通常汇集了很大的算力,Scrypt算法算力大多数在几个G到十多个G之间,在难度调整之前,充分利用大算力优势,抢到块的机会很高。

比特币和莱特币都是每2016个区块后调整一次难度,比特币产生每个区块10分钟,莱特币产生每个区块2.5分钟。这样每次难度调整都会等待很长时间,这段时间会被机枪矿池充分利用,通过大算力进行低难度下的抢块行为。
eHRC技术就是针对这个问题来进行设计的。eHRC技术的英文定义如下:
eHRC uses the standard Bitcoin protocol to calculate the the next block difficulty, but adds 2 extra historical block lookups, or block average times to calculate the new difficulty more accurately. The difficulty ReTarget has been increased to every block.
eHRC使用标准Bitcoin的协议来计算下一个块的困难,但增加了2个额外的历史区块或平均时间检查,更准确地计算出新块的难度。同时让每个块都进行难度重定向。这样一来,由于每个块都要按当前算力大小进行难度计算,因此每个块的挖掘都是公平的。

因此,eHRC技术就是一种对抗机枪池的新难度计算规则。它采用每个块都计算一次难度的方法,让机枪池无法利用难度调整间隔进行抢块,让机枪池无法体现大算力优势,与矿工公平采矿。
2014年4月25日,羽毛币己经成功完成受控硬分叉,升级到0.8.6.2版,我们迎来了eHRC时代。

『伍』 矿池排行

矿池排名:1.SparkPool(星火矿池)、2.Ethermine、3.F2Pool、4.FlexPool、5.Hiveon、6.Nanopoo
拓展资料:
①随着整个比特币网络的计算水平持续指数级提升,单个设备或少量计算能力都无法获得比特币网络在比特币网络上提供的区块奖励。全网算力提升到一定程度后,获奖概率较低,促使《比特币谈话》上的一些极客想办法将少量算力结合在一起,这样搭建的网站被称为《矿池》。 在这一机制中,无论个别矿工能够使用多少算力,只要通过加入矿池参与挖掘活动,无论是否成功挖掘出有效数据块,都可以通过贡献矿池获得少量比特币奖励,即多人合作挖掘,比特币奖励也由多人根据贡献分享。
②在中本聪论文中描述的比特币世界中,整个网络平均每10分钟产生一个区块,每个区块包含50个比特币(现在是12.5,比特币每四年左右减半),而一个区块只能被一些幸运的人挖走。直接拥有50个比特币(现在是12.5,比特币每四年左右减半),而其他人则一无所有。挖掘概率与矿工投入的设备计算能力成正比。这注定了,如果比特币挖掘参与者数量庞大且分散到一定程度,那么发现比特币的概率将无限接近于零,类似于中奖。也许一台矿机投入开采,开采一个区块需要5到10年的时间,这让比特币开采陷入尴尬境地,让普通人几乎无法参与。
③矿池的存在降低了比特币等虚拟数字货币的挖矿难度,降低了挖矿门槛,真正实现了人人可参与的比特币挖矿理念。但它的缺点也非常明显,因为连接到矿池的计算能力,作为一个矿池,将拥有极其巨大的计算资源。在比特币世界,算力代表记账权,算力就是一切。
④如果单个矿池的计算能力达到50%以上,就很容易对比特币等类似虚拟数字货币发起51%的攻击,后果非常可怕: 垄断矿业权,可以使矿池颗粒剩余49%的计算能力无人收获,瞬间退出竞争和破产,矿池计算能力超过50%,如果发动51%的攻击,将轻易占据全网所有有效计算能力。 垄断记账权,通过51%的攻击可以进行双重支付,一笔钱可以多次使用,会直接破坏比特币等信用体系,让其信用化为乌有。 垄断分配权,由于单个(或可能是多个)矿池通过51%的攻击占用全网计算能力,会迅速挤占剩余矿池,导致其关闭。由于没有竞争,矿池可以自行分配收入,并向矿工收取过高的手续费等过高的税款和杂税。

『陆』 什么是矿池 矿场

比特币也是“挖”出来的,只不过它是由计算机我们一般称之为“矿机”)在虚拟网络世界中开采出来的。所以,要挖币,同样需要选择一片合适的区域,搭建起厂房,把成百上千台矿机连接起来一起挖矿,这就是矿场。

一个矿场的成本包括建设成本、设备成本、维护成本、网络成本等。其中维护成本包括电力成本和人力成本,这也是我们会把矿场选建在电费相对比较便宜的地方的原因。一台比特币矿机的回本周期,和政策、技术、币价、算力、维护状况等多种因素有关,一般需要200-300天回本。但随着市场波动,回本周期也会变化。

说完矿场,我们来说说矿池。由于现在挖矿的人越来越多,加入的矿机和矿场也起来越多、总算力越来越大。这种情况下,单个矿机挖到比特币的概率越来越小。于是,人们想出了个办法、既然矿机单枪匹马不行,那我们把矿机联合起来去和全球其他矿机竞争——这种矿机算力的集合就是所谓的矿池。这样就能大大增加挖到矿的概率,挖到比特币后,再根据每台矿机对总算力的贡献,给予其相应的奖励。

矿池的概念比矿场抽象。矿池可以是若干矿机的集合,也可以是若干矿场中矿机算力的集合。比如谈到现实中一个在中国的矿池,接入这个矿池的矿机既有中国矿机,也有来自国外的矿机,不分区域、大家按劳分配。

热点内容
币圈教学赚钱吗 发布:2024-11-16 01:12:47 浏览:253
挖矿时装备ff14 发布:2024-11-16 00:54:28 浏览:805
下列关于超级账本和比特币 发布:2024-11-16 00:53:37 浏览:130
区块链技术创新是什么 发布:2024-11-16 00:46:42 浏览:774
区块链技术与能源 发布:2024-11-16 00:25:35 浏览:475
暗访币圈传销生意 发布:2024-11-16 00:01:19 浏览:900
如何转购买eth 发布:2024-11-15 23:58:24 浏览:662
计算思维和区块链的关系 发布:2024-11-15 23:55:54 浏览:240
QQ放大doge表情 发布:2024-11-15 23:55:41 浏览:892
遨游挖矿怎么找回id 发布:2024-11-15 23:54:30 浏览:493