比特币免费矿池 比特币免费挖矿app手机

发布时间:2026-01-09 09:32:02 浏览:3 分类:比特币资讯
大小:509.7 MB 版本:v6.141.0
欧易官网正版APP,返佣推荐码:61662149

一、比特币矿池的协议stratum

转自:

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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。

二、科普:什么是比特币

1.比特币是一种P2P方式的加密货币

2.比特币是一种去中心化的资产

3.比特币经过挖矿取得

4.比特币是中本聪创立

5.比特币是经过记账保证资产平安

6.关于挖矿

7.各个国度比照特币的态度

8.比特币的缺陷

自己接触数字货币也有几年了,比照特币的理解也不能说有多么的深化。我将尽我所能把什么是比特币写分明,用小白能明白的文字来表述比特币。

假如有错的中央还望不吝赐教

1.比特币的由来

比特币的由来这里就必需要提到一个人:中本聪。中本聪是比特币的开创人,但是关于谁是中本聪直到我写这边文章的时分,依然是一个未解之谜。

倒是有很多自称是中本聪的人,但是一个个都禁不起琢磨。目前知名度最高的一个人是"澳本聪",由于人在澳大利亚,所以大家给他取了一个略带

挖苦意味的名字。

先借用一下百度百科上面的引见:

比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式降生。依据中本聪的思绪设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P方式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。

与一切的货币不同,比特币不依托特定货币机构发行,它根据特定算法,经过大量的计算产生,比特币经济运用整个P2P网络中众多节点构成的散布式数据库来确认并记载一切的买卖行为,并运用密码学的设计来确保货币流通各个环节平安性。P2P的去中心化特性与算法自身能够确保无法经过大量制造比特币来人为操控币值。基于密码学的设计能够使比特币只能被真实的具有者转移或支付。这同样确保了货币一切权与流通买卖的匿名性。比特币与其他虚拟货币最大的不同,是其总数量十分有限,具有极强的稀缺性。

我对上面的文字解释一下:

【P2P】网络是点对点,再文言一点是个人对个人的意义。

中心化:普通的像支付宝这样的系统是中心化系统,一切信息都控制在支付宝公司的效劳器中。

去中心化:就是没有一个中心化的系统。网络中的一切个体都对这个账本都有完好的记载。这里有个关键词【账本】。

什么是账本?比特币的一切转账挖矿信息加起来是一个账本。账本就是数据的意义。比特币网络中的每一台效劳器都有完成的比特币转账记载【账本】。

什么是转账?假如你有一个比特币钱包,并且有比特币资产,那么你就能够转账到另一个地址。每个地址都是特有的不反复的。就像支付宝账号,但是地址并不记载个人信息,所以转账是匿名的不可查的。但是转账记载【账本】是公开的可查。

什么是钱包?你能够了解是一个软件。目前用的做多的是imtoken,用imtoken你能够生成本人的比特币账号【地址】。然后他人就能够给你转账。钱包并不是中心化的东西。钱包生成的私钥才是最重要的数据。你能够用私钥导入到其他钱包。留意密码,密码遗忘就不可找回。就无法转账。目前比特币总量1800多万。但是有可能比特币丢失了,比方私钥没有了。所以一定要保管好你的私钥。

2.如何取得比特币

获取比特币的办法目前有2种

1.用电脑挖矿

比特币的产生就是挖矿而来,挖矿文言文就是:用电脑运转特定软件来运算数据,算对了就给你比特币奖励。挖矿需求高端显卡,挖矿设备首先就是根绝NV显卡。挖矿肯定是用显卡挖矿。挖矿设备的整体构造和普通PC机器不一样的中央就是显卡数量。当然你也能够用家用的电脑来挖矿感受一下。详细的挖矿教程这里不做引见。

2.购置

购置相对就简单不少。但是目前市面上买卖所成百上千家,优劣不齐。选择的时分要谨慎。要选排名靠前的买卖所。这里引见几个大型买卖所:火币,币安。这两个曾经能够满足你的一切需求。

3.比特币寄存在哪

比特币能够寄存在恣意一个数据存储介质里,包括手机、U盘、挪动硬盘、电脑等。比特币在停止买卖的时分,只需求运用比特币买卖软件发送比特币地址即可。比特币软件能够自动生成地址,同时在生成地址时不需求联网。比特币地址和私钥是成对呈现的,他们的关系就像银行卡号和密码。比特币地址是用来记载你在该地址上有几比特

4.比特币的价值所在

比特币的价值十分大。说几点适用的价值。

1.去中心化的货币,没人能够随意冻结你。不用担忧哪个国度冻结你的资产

2.隐秘的买卖购置东西只需转账比特币,没人能够查到你。其中的美好能够自行想象

3.升值潜力总量2100W,假如成世界货币。价值难以估量。目前比特币价值:6700美圆(2020年3月25日数据)

主要价值在上面几点,曾经是充溢无限想象

5.如何买卖比特币

能够在买卖平台买卖,比方上面提到的买卖所。

买卖所分为中心化买卖所,和去中心化买卖所。比照来说中心化买卖所便当很多。事实也是这样,去中心化买卖所的买卖量很少。

6.关于挖矿

比特币是由挖矿产生的。但是目前个人电脑想挖矿的话难度真的不是普通的大。由于比特币全网的运算水准在不时的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。在全网算力提升到了一定水平后,过低的获取奖励的概率。所以不是说你挖就能挖到的。就比方个人电脑你挖个十天半个月收获的数量极极大约率还是0.

这里就不得不说一下【矿池】

过低的获取奖励的概率,促使一些“bitcointalk”上的极客开发出一种能够将少量算力兼并结合运作的办法,运用这种方式树立的网站便被称作“矿池”(Mining Pool)。

在此机制中,不管个人矿工所能运用的运算力多寡,只需是透过参加矿池来参与挖矿活动,无论能否有胜利发掘出有效材料块,皆可经由对矿池的奉献来取得少量比特币奖励,亦即多人协作挖矿,取得的比特币奖励也由多人按照奉献度分享。

所以说过你个人想体验挖矿的话,参加一个大型矿池是一个十分不错的主见。

7.各个国度比照特币的态度

友好的国度:日本,澳大利亚,韩国,新加坡等

日本是第一个使比特币合法化的国度,并赋予了其法定货币位置。

澳大利亚是继日本之后的第二个比照特币友好的国度,在2017年宣布比特币和加密货币为法定货币。

韩国买卖所也占比特币总买卖量的10%以上,世界上吸收比特币买卖量最大的一些买卖来自韩国,这一事实自身就阐明了该国比照特币的友好态度。

新加坡的比特币不被视为货币,但被视为商品。因而,需求支付商品及效劳税。

不友好的国度:中国,孟加拉,卡塔尔等

中国在94的时分取消了一切境内买卖所,并明文制止买卖比特币行为。

在孟加拉买卖比拟币的话有可能会被拘捕

卡塔尔,阿富汗这样是神权国度在宗教上被以为是非法的

8.比特币的缺陷

1.比特币系统目前来看曾经相当的强健平安。但是并不是不可窜改的。有数据标明,破费几十万美圆购置算力,就可能使比特币网络的买卖发作窜改。由于比特币买卖的正确性

是有算力来决议的。假如攻击方的算力占领超越50%那么就有可能窜改相关的转账信息。历史上也发作了这样的事情,固然不是攻击的比特币。攻击的是ETC,但是这也证明了

BTC并不是无懈可击的系统。

2.比特币转账很慢,假如运用人数少的话能够很快的转账,但是转账用户多了之后会形成网络的阻塞。目前转账比特币的时间是以小时来计算。

3.比特币的算力如今由少局部人控制。这背叛了中本聪的初衷,少局部控制也就意味着中心化,而中本聪的初衷是去中心化系统。

三、比特币矿池有什么差别

主要是获得的比特币分配模式不同:根据运营模式,常见的比特币矿池有如下几种:PPLNS、PPS、DGM、P2Pool等

PPLNS:(最纯正的组队挖矿)全称Pay Per Last N Shares,意思是说“根据过去的N个股份来支付收益”,这意味着,所有的矿工一旦发现了一个区块,大家将根据每个人自己贡献的股份数量占比来分配区块中的货币。(share就是股份的意思)

在PPLNS模式下,运气成份非常重要,如果矿池一天能够发现很多个区块,那么大家的分红也会非常多,如果矿池一天下来都没有能够发现区块,那么大家也就没有任何收益。

PPS:Pay-Per-Share方式---该方式为立即为每一个share支付报酬。该支出来源于矿池现有的比特币资金,因此可以立即取现,而不用等待区块生成完毕或者确认。这样可以避免矿池运营者幕后操纵。这中方法减少了矿工的风险,但将风险转移给了矿池的运营者。运营者可以收取手续费来弥补这些风险可能造成的损失。

为了解决PPLNS那种有时候收益很高,有时候没有收益的情况,PPS采用了新的算法。PPS根据你的算力在矿池中的占比,并估算了矿池每天可以获得的矿产,给你每天基本固定的收益。

怎么样,有没有感觉这就是一个稳定的工作?实际上,PPS模式的矿池为了避免亏本风险,往往会收取7%-8%的高额手续费。

DGM:Double Geometric Method.双几何制.结合了 PPLNS和几何奖励类型,使得矿池运营者能规避一部分风险.矿池运营者在短期内收取部分挖出的货币,然后在之後以正规化过的值返还给矿工,像电容充放电,运气好每 block少给你点,运气差多给你点。

175btc:175btc的挖矿节点工作在类似比特币区块链的一种shares链上。由于没有中心,所以也不会受到DoS攻击。和其他现有的矿池技术都不一样---每个节点工作的区块,都包括支付给前期shares的所有者以及该节点自己的比特币。99%的奖励(50BTC+交易费用)会平均分给矿工,另外0.5%会奖励给生成区块的人。

比特币之家网有详细的介绍。