矿池怎么写
f2pool矿池如何挖矿?
1、首先进入鱼池官网,点击右上角“注册”按钮。
2、填写用户名、密码、邮箱进行注册,请一定不要忘记邮箱,登陆方式采用“邮箱”+“密码”进行登陆。
3、注册成功后将会有一封邮件发送到您的邮箱,请您点击连接进行激活。
1/4页
4、点击地址后直进会进入到登陆首页面。由于没有矿工在工作。,所以中间的曲线是平滑直
线。
5、点击“矿工管理”,右下角的下拉菜单,进行建立BTC或LTC矿工的建立。
2/4页
6、随意写入矿工名称后,点击右“对号”,即建立矿工成功。
7、建立完矿工后,设置矿机的矿池连接地址 BTC地址再写入矿工名称,保存后即开始挖矿。
8、设置收款地址,即每天矿机挖矿后,把比特币打到哪个钱包。设置完成后点击“修改”即保存新的收款地址,注意:如点锁定后,即永久保存此钱包地址,不能再次修改。
8、本地钱包地址查找,以Bitcoin Core 为例。点击“文件”,然后点击“Receiving addresses”,然后在“地址”处,点击右键,然后点“复制地址”,再到鱼池的付款设置里,把BTC地址黏贴进去即可。
⑵ 币印矿池的钱怎么拿出来
操作环境:操作电脑型号:笔记本电脑联想小新v5.2.1,网页浏览器版本号:QQ浏览器iOS 14.3
1.登录币印矿池官网 poolin.com,并创建BSV挖矿子账户,填写收款地址
2. 子账户创建完成后,即可看到矿机配置示例。
3. 硬件安装:联网通电后,访问矿机后台ip,填写币印矿池挖矿地址、矿机名称和密码,运行机器。
1)部分矿机的标签上写有矿机默认的IP地址,但受多种因素影响,可能实际IP地址并非标签上标注的地址。建议先用电脑连接上矿机所连接的路由器或交换器,然后使用IP Scanner对此网段进行扫描,寻找出矿机IP。
2)找到矿机IP后,在浏览器访问此IP,蚂蚁S9的登录账户为root,密码为root。若账户和密码不对,可参考矿机使用说明或联系厂商。
3)登录后点击Miner Configuration下的General Settings,在Pool 1/2/3中分别配置上步骤2网页中展示的URL(挖矿地址),Worker(子账户.矿机ID)和Password(密码)。设置完毕,点击后下角Save&Apply(保存并应用)保存您的配置信息。
拓展资料:
1、由于比特币全网的运算水准在不断的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定程度后,过低的获取奖励的概率,促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”(Mining Pool)。
2、在此机制中,不论个人矿工所能使用的运算力多寡,只要是透过加入矿池来参与挖矿活动,无论是否有成功挖掘出有效资料块,皆可经由对矿池的贡献来获得少量比特币奖励,亦即多人合作挖矿,获得的比特币奖励也由多人依照贡献度分享。
3、PPLNS模式:(最纯正的组队挖矿)全称Pay Per Last N Shares,意思是说“根据过去的N个股份来支付收益”,这意味着,所有的矿工一旦发现了一个区块,大家将根据每个人自己贡献的股份数量占比来分配区块中的货币。在PPLNS模式下,运气成份非常重要,如果矿池一天能够发现很多个区块,那么大家的分红时间会非常快,如果矿池一天下来都没有能够发现区块,那么大家当天也就没有任何收益,收益要等到你参加的区块被完全挖掘出来才能得到分配。同时,由于PPLNS下,具有一定的滞后惯性,你的挖矿收益会有一定的延迟,比如说,你加入到一个新的PPLNS矿池,这个时候你会发现前面几个小时的收益比较低,那是因为别人在这个矿池里已经贡献了很多个share了,你是新来的,你的贡献还很少,所以分红时你的收益都是比较低的。随着时间的推移,该结算的也结算了,大家又开始进行了新一轮的运算时,你就回到和别人一样的水平了。同样道理,若你离开了PPLNS矿池不再挖矿,你贡献的share还在,在此后的一段时间里,你依然会得到分红收益,直到你的share被结算完毕。
⑶ 如何在币安矿池挖矿
首先要获取挖矿设备:矿机、矿机电源、网线、管理矿机的PC电脑,然后获取矿池地址,最后Worker创建挖矿用户名,币安矿池挖矿用户名用于矿机后台(worker)地方进行填写,格式为(挖矿用户名.矿机编号)。
⑷ f2pool鱼池怎么新建矿工
鱼池f2pool在国内是最早的矿池,曾经因为经营不善关闭了一段时间,大概是去年7月份吧,但不久又再次开业了。他们这一批热不仅开矿池,还做矿机,神鱼矿机失败了,因为芯片的问题。2015年的时候又搞了一个莱特币矿机,还众筹了。
鱼池f2pool矿池并未出现过特别大的安全事故,还有就是国外的大矿池经常出现51%的问题,也给鱼池f2pool快速发展的机会,他们都是圈内的人,还做资讯网站,人脉广。
⑸ 手机性能比肩PC实测旗舰手机挖比特币
【IT168 评测】比特币近期可是着实火了一把,曾经一文不值的极客玩物,现在变成中国大妈热炒的“金融衍生品”了。稍微了解比特币的人可能就知道,比特币的获得方式是十分精密和复杂的,但简单来说,就是谁的计算机运算能力强,谁就能获得更多的比特币。为何笔者今天为大家带来一片实测手机挖比特币的文章?原因有两个:1.通过这篇文章让大家简单的了解一下比特币。2.笔者看到DIY的同事,利用高性能的最新产品疯狂的掠夺着公司的资源,将测试机用于挖比特币而“中饱私囊”很是眼红,也想用手机试试,看看能不能捞一点好处~蚊子肉也是肉嘛,废话不多说,开始今天的“致富”之旅。
文章背景:比特币近期价格突破7000元大关,并且稳定在5500元左右。那些曾经手中有上百个比特币的“土豪”们现在都可以买房了!虽然进场的最佳时机已经过了,但是我们知道挖比特币的过程是特别依赖运算性能的,都说目前旗舰手机性能强悍都已经比肩台式机了,笔者就用挖比特币来试试目前旗舰机型手机的性能。
1. 比特币到底是个神马东东?挖矿又是怎么一回事?
比特币的概念是一个名叫“中本聪”的网友在一个论坛上提出的。至于中本聪是个人还是个组织,目前没有明确的答案。而按照中本聪的设想,比特币是一种点对点的虚拟货币。用户通过计算产生一串特殊的秘钥,而这串秘钥则就是我们俗称的比特币。
▲比特币近期疯长
比特币是一种不受到中央银行控制的货币,从比特币诞生伊始,中本聪就为比特币制定了产出规则:每10分钟全球将产出50个比特币,并且按照时间以此递减,目前产量为每10分钟25个。也就是说,当2140年的时候,全球总过产出的比特币将为2100万个。没有中央银行,任何人都能得到,总量有限速度稳定,能够有效的避免通货膨胀。这也是目前很多投资者看好比特币的原因。
▲淘宝销售2TH/S算力矿机 售价46000元
而我们常常听到的挖矿也就是获得比特币过程的一个形象的称呼。用户通过计算机强大的运算能力获得比特币的过程就被称作挖矿。而挖矿软件则是获得比特币的客户端,矿机则是用来获得比特币的计算机。
▲双HD7990显卡算力2.4GH/s
前面我们说过,目前单纯通过挖矿来支付的蓝海已经不再了,为什么这么说呢,原因很简单,由于比特币的价格暴涨,所以目前全球在挖矿的计算机运算能力也已经暴涨,已经过了CPU和GPU就能够轻松挖矿的时代了,目前淘宝上专业的矿机已经能够稳定300GH/S(Hash/S为比特币算力单位),而目前顶级GPU的算力大概为1GH/S,而顶级处理器的算力大概仅为10MH/S左右,所以对于入门级别用户来讲,挖矿的门槛已经越来越高。并且前面我们也说过,比特币的产出速度随时间降低,在产出越来越少,算力越来越高的今天,想纯靠挖比特币挣钱,还真不是入门级的用户能办到的。
前面我们说了,如果你现在还不知道比特币是神马,并且也没钱买矿机,那是不是现在开始挖比特币就没什么意义了呢?当然不是,对于像笔者这样的人来讲,挖比特币的过程非常有意义,学会如何挖比特币也算是一项技能,可以增加和别人聊天时的谈资。嘿嘿,是不是很贱呢?接下来,笔者就教大家如何挖比特比。
2. 如何挖比特币?
目前全球有很多比特币矿池,想要挖比特币需要先选择一个矿池。笔者在这里为大家推荐几个比较主流的稳定矿池。选择一个稳定矿池是十分必要的。不然很有可能你辛辛苦苦挖出来的比特币会不翼而飞。由于目前盗窃比特币的行为在法律上无法界定,所以矿池矿主卷走大家的比特币也是发生过的事情。
1. slushs pool
▲slushs pool
老牌矿池,拥有中文版用户界面,但界面并不友好。目前矿池总算力能够进入世界前十。
2. BTC Guild
▲BTC GUILD 目前总算力最高的矿池之一
目前矿池总算力前三之一的矿池,大多数中国用户曾经或正在该矿池上挖比特币。网站界面友好,但最近国内连接该矿池由于网络的原因有些不稳定。
3.50BTC
▲50BTC
概况吃目前国内连接稳定,用户界面友好。但曾经在10月份的时候遇到过黑客攻击,丢失了用户的比特币,虽然50BTC已经全部承担了损失,但依旧流失了一些用户。
我们就以Slushs Pool作为例子,为大家简单介绍下如何才能成为一名合格的比特币矿工,首先打开Slush’s pool的官网:http://mining.bitcoin.cz/
。
▲第一步点击大大的注册按钮
Slush’s Pool的官网支持中文,不过看上去中文页面翻译水平有限,所以大家也不用在意,一步一步注册就好。
▲第二步填写信息
▲确认后得到矿工账号密码
用户名、密码、邮箱等填写完毕后,点击现在确认,邮箱内会收到一封确认注册的邮件。点击邮件内的确认连接就可以完成注册了。
▲登陆后界面
登录之后,你就可以看到你自己的账户和矿工的状态了。账户中有比特币地址这一项是为了将你挖出的比特币导出到这个账户中的,我们可以先不填写,先期先挖矿,后期比特币到达一定数量的时候,在选择一个交易平台将比特币导出(目前主流的交易平台为比特币中国等)。
接下来就是下载比特币挖矿软件开始挖矿了。文章的这一部分我们先介绍下PC端的挖矿软件,目前主流的挖矿软件为GUIMINER和CGMINER,其中GUIMINER界面较为友好,并且支持的矿池也算丰富。初学者可以选择该软件进行挖矿。GUIMINER下载地址:http://guiminer.org/
▲可以选定中文
GUIMINER支持中文,用户可以点击语言—Chinese Simplified进行切换语言,重启后即可生效。
▲设置界面
只差最后一部就可以进行挖矿了。服务器选择你注册的矿池:Slush’s pool,用户名填写你矿工的用户名,密码填写矿工密码,每个用户可以设置多个矿工,分别登陆同时挖矿,这是为了方便用户多个设备同一账户同时挖矿的需求。设备方面可以选择处理器或者显卡,然后点击开始采矿。
▲18.3Mh/s的算力着实寒酸
连接成功后,软件的右下方就会显示出你目前的算力。笔者笔记本的Quadro K2000M算力仅为18MH/S左右,真是令人发指的低啊。不过此时,我们已经成为一个有理想有抱负有社会责任心的比特币矿工了。了解了如何挖矿后,我们进入今天文章的正题:旗舰手机实测挖比特币。
3. 手机性能真的比肩PC?挖比特币试试。
前面我们也介绍了如何挖比特币和目前顶级矿机、顶级GPU和顶级CPU的挖矿能力了。接下来我们就来试试手机挖矿的实力到底如何,能否真的像现在传的那样性能比肩PC?
▲i7-3720算力简直弱爆了
首先,笔者用自己笔记本的处理器进行了挖矿,发现速率稳定在4MH/S左右,要知道笔者的处理器为Intel i7 3720qm,也算是去年笔记本电脑中的较高水平了。这个成绩真的是令人沮丧,那么手机的性能如何呢?我们先要在手机上安装ARM MINER这个软件。点击此处下载。
▲软件设置方法
进入ARM MINER软件后,点击SETTING界面后,在Algorithm(算法)中选择SHA-256,这种算法下手机处理器性能发挥更充分。Url则填写Slush’s Pool的API端口:http://api.bitcoin.cz:8332。 User则填写矿工名称。Password则填写矿工密码。Threads选择最大。点击屏幕右上方的保存按钮就可以回到MINING界面点击Start开始挖矿了。
▲手机挖矿结果一览
▲手机挖矿结果一览
▲手机挖矿结果一览
通过测试,我们发现,搭载高通800处理器的Nexus5和LG G2突发算力在4MH/S,而搭载和小米3相同的Tegra4处理器的Nvidia Shield游戏机的突发算力和高通800处于相同水平。而搭载猎户座5410“4+4”核处理器的魅族MX3突发算力在3.6MH/S,而搭载高通APQ8064处理器的小米2S突发算力在3.3MH/S,而采用MT6589T的红米手机突发算力为1.7MH/S左右。但一旦开启挖矿软件,就会出现处理器迅速过热,从而主频下降,最终会导致算力下降严重。
通过测试,我们可以发现,单纯从挖掘比特币的运算能力上来看,目前ARM的顶尖处理器在突发运算能力上,已经和目前的主流英特尔处理器没有太大差别了。但是如果说ARM处理器目前就能够比肩PC处理器了是不准确的。由于ARM自身的定位就是低功耗高效率轻量级移动处理器,对于目前ARM处理器的崛起,与其说是ARM处理器性能的飞速发展,不如说目前消费者越来越重视移动处理,使得各大硬件软件厂商也开始重视对移动端处理器的优化和开发。不过近期ARM处理器性能要想真正赶超PC处理器,还是不可能的。
如果按照这个速度和目前的算力来讲,如果说要用手机挖出1个比特币的话,需要十几年甚至几十年,所以,想要靠手机挖比特币挣钱?这只是个美丽的传说。不过相信大家通过今天的文章,也简单的了解了比特币和如何开采比特币,这就够了。如果你和笔者一样没有一夜暴富的命,那就每天高高兴兴上班来,平平安安回家去吧。
⑹ 比特币的挖矿过程需要什么
比特币的挖矿过程主要需要专业的硬件设备、比特币钱包、挖矿软件以及持续的管理和维护。
首先,挖矿硬件设备是至关重要的。由于比特币挖矿涉及到大量的数学计算,因此需要使用具备高强度计算能力的硬件设备。这些设备通常包括具备强大图形处理能力的GPU以及专用的ASIC矿机。这些设备的哈希率、能耗以及设备成本都是影响挖矿收益的重要因素,因此在选购时需要仔细考虑。
其次,比特币钱包也是必不可少的。钱包是存储和管理比特币的工具,矿工需要将挖到的比特币存储到钱包中。在创建钱包时,用户需要选择一个安全级别较高的助记词,并妥善保管,以防泄露信息。同时,利用软件中的备份功能将助记词保存下来,以确保比特币的安全。
接下来是挖矿软件的选择和配置。挖矿软件是连接硬件设备和比特币网络的桥梁,矿工需要通过软件来解决特定的数学问题,验证并记录比特币的交易数据。在配置软件时,矿工需要填写矿池地址和端口号,以确保挖到的比特币能够顺利进入自己的钱包。
最后,持续的管理和维护也是挖矿过程中不可忽视的一环。矿工需要定期检查挖矿设备的运行状态,确保其正常工作;同时,还需要关注比特币市场的动态,以便及时调整挖矿策略。此外,随着比特币挖矿难度的逐渐增加,矿工可能需要投入更多的计算资源和电力来维持挖矿的竞争力。
综上所述,比特币的挖矿过程需要专业的硬件设备、比特币钱包、挖矿软件以及持续的管理和维护。这些因素共同构成了比特币挖矿的基石,确保了比特币网络的稳定运行和矿工收益的持续产出。
⑺ 轻松矿工使用鱼池hive 池地址,添加矿池的方法
轻松矿工使用鱼池Hive池地址添加矿池的方法主要有两种:挂梯子和使用香港中转服务。以下是具体的步骤:
方法一:挂梯子 选择高质量的梯子:确保稳定连接,以便顺利访问矿池。
方法二:使用香港中转服务1. 进入矿池管理:在轻松矿工界面,找到并点击矿池旁边的小黑点,选择“矿池管理”。2. 选择ETH矿池:在左侧菜单中选择“ETH”。3. 添加矿池:在右侧向下滚动,找到并点击“添加”。4. 填写矿池信息: 矿池名称:自定义,如“kg361”。 矿池地址:填写为鱼池Hive的矿池地址,例如“hiveoneth.com:6119”。 点击“确定”完成添加。5. 选择矿池并开始挖矿:返回主界面,选择刚刚添加的矿池,点击“开始挖矿”。6. 查看算力数据:等待一段时间后,即可在主界面看到算力数据。
注意事项: IP设置:建议将挖矿IP设置为香港,以避免被检测到IP来源。 钱包地址:推荐使用0x开头的以太坊钱包地址,避免使用子账户,以确保收益稳定。 定期检查和更新:定期检查和更新IP设置,确保挖矿活动顺利进行。
通过以上步骤,轻松矿工用户可以成功添加鱼池Hive池地址进行挖矿,并获取稳定的收益。
⑻ 莱特币怎么挖矿
1.首先下载莱特币的客户端,可以去莱特币中国官方网站,当然这个很多的下载地址,关键要找好自己对应的客户端,有32位和64位的区分,还有别的版本,这个客户端就像银行的客户端,上面有你的账户,你挖的莱特币就存在这个账户里面。
2.和比特币一样莱特币挖矿要选择一个矿池,这里你可以自己搜索莱特币矿池选择一个矿池注册账号,然后在设置里面添加一个矿工账号。
3.我们还是使用guiminer这个软件进行挖矿(图形界面比较简单)如果是英文界面首先在language里选择简体中文再重启。
4.然后在主界面中选择矿池选择最后一个other(自己填写矿池域名)填写自己选择的莱特币矿池域名。然后填写矿工的账号密码。在端口选择里填写3334.然后点击开始挖矿按钮。
5.挖矿效率也不是很高,或许你要很久才会有你的第一点收获。等你在矿池挖到了你的莱特币,再将其填写你的钱包地址,将其保存到你的钱包就算真正挖矿完成了。
拓展资料
一、莱特币
莱特币 (Litecoin, LTC) 是受比特币(BitCoin, BTC) 的启发而推出的改进版数字货币,由一名曾任职于谷歌的程序员设计并编程实现 , 2011年11月9日发布运行。莱特币与比特币在技术上具有相同的实现原理,但莱特币的创造和转让基于一种开源的加密协议,不受到任何中央机构的管理 。
二、莱特币特点
1.开发安全性高
在货币安全方面,莱特币的开发过程和支付过程都具有超过普通货币的安全性。在开发过程中,它不可能被伪造,莱特币是一连串复杂的求解代码,它通过挖矿来获得货币而不是印刷,这从根本上杜绝了“假币”的产生,这是它的优点之一。
2.工作量证明机制创新
莱特币除了在三个方面做了改进(工作量证明机制算法、总量上限、区块生成速度),其他方面都与比特币的特性相同。
3.分散匿名发行
“挖矿”竞赛、公平竞争。莱特币和比特币一样,都是基于区块链原理的虚拟货币,新币发行也是分散的,以奖励给矿工的形式出现。
(操作环境:华为novo7 JEF-TN00 2.0.0.168;莱特币钱包 0.04)
⑼ 比特币矿池的协议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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。