简单回顾下挖矿的流程。
首先先要对所有的交易做验证,剔除有问题的,然后通过一套自定义的标准来选择哪些交易希望打包进区块,比如说提供的交易费与交易占用的字节大小的比值超过某个门槛,这样的交易才被认为有利可图。当然,节点也可以特意选择要加入某条交易,或者故意忽略某些交易。如果是通过矿池挖矿的话,矿池的服务器会去筛选交易,然后分配给每个参与的矿机一个独立的任务。
一旦筛选好交易数据,层层约减,通过这些交易就可以计算出一棵Merkle树,可以确定一个唯一的摘要,这就是Merkl树的根。
然后我们再依次获取挖矿需要的其他信息,这些信息组成一个区块的头。
区块头的字节分配
区块头只有80个字节,挖矿只需要对区块头进行运算即可。交易数据都通过merkle树固定了下来,不需要再包含进来。
这些信息中大部分已经是固定下来的,或者是可计算的。
我们以区块277316为例,其信息来自网站 http://blockchain.info
Bitcoin Block #277316blockchain.info
选择这个区块的原因是在《Mastering Bitcoin》一书中,中文社区译本和英文原版在介绍这部分内容时有出入,而且作者Antonopoulos并没有提到一个关键点,就是字节顺序的问题,相信很多人可能会踩这个坑。这里还原的细节可以帮助读者与书籍做相互参考。
请大家注意下面的每个步骤,注意每一个变化,这是比特币最核心的算法。
转换时间,记住,一定要转为utc的时间戳,此处遇到过坑,小心。
这一步的发现异常艰辛,耗费了大量的查询,大坑,大坑,谨记。发明人中本聪可能为了让机器计算更快,而变为了更接近机器的编码方式little-endian.
最终得到的结果就是
16进制下前面15个0,然后是1; 而难度目标对应的数字是
16进制下前面15个0,然后是3. 计算结果小于难度目标,符合要求。这个结果与网站上公布的数字一致。
在挖矿时,nonce随机数是未知的,要从0试到2^32,但是这个数字其实不大,只有4294967296,以现在的矿机动辄14T每秒的算力,全部算完到上限也不需要一秒。刚才提到在这种情况下,需要使用创币交易中的附带信息,额外的字符串成为extra nonce。
另外,创世区块也可以通过上面的方法来验证,有好奇的朋友可以尝试下。
提示:
⑵ 怎么用矿机挖矿
比特币挖矿就是利用你挖矿设备的算力计算数学难题,确认交易,系统会根据你为全网贡献算力的大小给予不等分的比特币奖励。比特币挖矿经过了3个阶段,第一个阶段大家使用CPU进行挖矿,那是挖矿的人少;第二阶段,大家使用显卡挖矿,通俗点就是烧显卡挖矿,玩家开始觉醒;第三阶段使用专业的ASIC矿机进行挖矿,其中以阿瓦隆的矿机横空出世和烤猫矿机的投入市场为起点,这个阶段算力激增,挖矿难度不断增加,在随后的一段时间不断有新的矿机厂商加入矿机行业,但目前随着算力的增加和技术的进步,一些矿机厂商开始破产或淡出市场名单阿瓦隆始终活跃在人们的视野,不断推出新的芯片,目前,阿瓦隆已经推出了三代矿机芯片,第四代也即将推出。
⑶ 以太坊矿池有哪些
1. Ethpool(Ethermine)ETHpool.org是第一个官方的以太坊矿池。此前由于工作量超负荷,该矿池不接受新用户,只接受老客户。因此,许多新矿工被迫转向单独挖矿,因为那时还没有其他可替代的矿池。在Ethpool上挖矿,必须安装以太坊的C++ETH版本。? 市场占有率:23%? 当前矿池算力:399.1GH / s? 挖矿奖励结算模式:PPLNS? 费率:1.0%? 网址:https://ethpool.org/2. NanopoolNanopool虽然是新矿池,但已经是目前以太坊上最大的矿池之一。份额(Share)的复杂性是静态的,相当于50亿。在该矿池上进行挖矿的最低哈希率仅为5 Mhesh / s。此外,此矿池根据PPLNS方案计算挖矿奖励,其中N是最近10分钟内所有接受的份额。(注:PPLNS全称Pay Per Last N Shares,即根据最近的N个股份来支付收益。)Nanopool的服务器遍及全球,官网页面简洁直观。但是这个矿池的最低支付门槛相对较高,建议连接3个服务器,避免等待长时间的付款期。? 市场占有率:8%? 当前矿池算力:16,176.3GH / s? 挖矿奖励结算模式:PPLNS? 费用:1.0%? 网址:https://eth.nanopool.org/3. F2Pool(鱼池)F2Pool是2019年最受欢迎的矿池之一。F2pool的服务器主要位于中国、其他亚洲国家和美国。F2pool.com因其开放性,可访问性和易用性而备受矿工喜爱。矿工在F2Pool上注册后才可以挖矿。以太坊挖矿需要一个显卡矿机。 ? 市场占有率:10%? 当前矿池算力:19.38TH / s? 挖矿奖励结算模式:PPS+? 费率:2.5%? 网址:https://www.f2pool.com/4. Sparkpool(星火矿池)在ETH,GRIN和BEAM生态系统中,最强大的中国资源库是Sparkpool,它是与全球矿工合作的开放资源。在挖矿之前,你需要配置矿机。基于AMD GPU处理器的以太坊挖矿收益更高。它需要闪存改进的BIOS并调整MSI Afterburner或AMD驱动程序设置中的超频选项。 ? 市场占有率:29%? 当前矿池算力:56.96TH / s? 挖矿奖励结算模式:PPS +? 费用:1.0%? 网址:https://www.sparkpool.com/5. Dwarfpool在DwarfPool,矿工的信用等级分为RBPPS或HBPPS。使用RBPPS,只要有A值,你就可以获得对应奖励(死块除外)。HBPPS计提算法是基于时间的股份支付。每小时计算一次所有推广和发现的区块。该矿池具有经过优化的最佳挖矿引擎,拒绝率较低,透明且详细的统计信息。每小时进行一次支付结算,服务器遍布世界各地。? 市场占有率:6%? 当前矿池算力:2377109 MH / s? 挖矿奖励结算模式:HBPPS? 费用:1.0%? 网址:https://dwarfpool.com/6. MiningPoolHubMiningPoolHub允许矿工通过挖矿获利,并根据不同支付系统的汇率来交易数字货币。该矿池使用PPLNS算法确定用户奖励。提款手续费为0.9%。? 市场份额:3.7%? 当前矿池算力:7.05T / s? 挖矿奖励类型:PPLNS? 费用:1.0%?
⑷ 如何建立矿池
要在全网算力提升到了一定程度后,过低的获取奖励的概率,促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并联合运作的方法,使用这种方式建立网站。
在此机制中,不论个人矿工所能使用的运算力多寡,只要是透过加入矿池来参与挖矿活动,无论是否有成功挖掘出有效资料块,皆可经由对矿池的贡献来获得少量比特币奖励,亦即多人合作挖矿,获得的比特币奖励也由多人依照贡献度分享。
截止2019年1月,全球算力排名前五的比特币矿池有:BTC.com 、Poolin、AntPool、slush pool、、F2Pool,目前全球约70%的算力在中国矿工手中。
(4)矿池需要统一分配给矿机扩展阅读:
手续费:
比特币矿工会对大部分交易收取少量费用,其主要目的是防止有人大量发送无聊的小额交易,浪费网络资源。当前每笔交易的手续费大部分是฿ 0.0001/KB(0.0001btc/KB),实际上0.9.0以后的版本将默认手续费降为฿ 0.00001/KB(0.00001 btc/KB)。
因为大部分交易占用的数据量都小于1千字节,所以一般情况下฿ 0.00001(0.00001 btc/KB)的手续费就足够了。同时,在将来比特币区块奖励较少时,手续费将成为矿工收入的主要来源,比特币的手续费会与该交易占用的字节数相关。
目前比特币系统中手续费的计算标准并非强制性的,因此使用者也可以在交易进行时不给予任何手续费;
但大多数矿工在组建资料块时通常会优先考虑带有较高手续费的交易,以便在挖矿成功时能获得较高的报酬,因此无附带任何手续费的交易,可能会需要等待较长的时间才能被处理并纳入区块链中。
此外,现在因为区块容量上限1MB以及近期比特币交易量大增的因素,手续费大幅上涨,而且等待交易被确认的时间也变长了许多。
⑸ 知识百科| 矿池的来源及运作原理
由于比特币全网的运算水准在不断的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。所以我们将少量算力合并联合运作的方法,使用这种方式建立的网站便被称作“矿池”。
在此机制中,不论个人矿工所能使用的运算力多寡,只要是透过加入矿池来参与挖矿活动,无论是否有成功挖掘出有效资料块,皆可经由对矿池的贡献来获得少量比特币奖励,亦即多人合作挖矿,获得的比特币奖励也由多人依照贡献度分享。
例如,在四五年前,数字货币产业如比特币还可以使用电脑配置来挖掘。但数字货币在发行总量受限的情况下,大多在设计时加入了区块减半、提高挖矿难度来减慢数字货币的发行速度。
随着矿工越来越多,全网算力也随之增长。奖池还是这么大竞争的人变多了,小矿工再照这种单打独斗的方式几百年才能碰运气挖到币。
因此矿工们通过抱团的形式,将大家的装备技能整合起来变成超级大算力,获得的奖励由这个团队成员根据贡献程度进行瓜分。
矿工们加入矿池对好处也由此可以看出:矿工的日收益得到了一定保障;避免了运行完整节点的麻烦,接入矿池后矿机只要进行运算,其他的运营和收益分配交给矿池来负责就好。
⑹ 有谁了解矿池一般采用哪种收益模式不同收益模式的区别是什么
个人怎样选择矿池?
矿池费用
目前矿池的分配方式主要有:PPS、PPS+、FPPS、PPLNS以及SOLO模式。
在相应分配方式上,矿池以一定的费率收取矿工部分收益作为矿池费用。
PPS:收益稳定,只要矿机正常工作就有收益,收益和提交的工作量有关,和矿池幸运值、交易手续费无关。
PPS+ (Pay Per Share Plus) 结算方式是对传统 PPS 结算方式的一种改进,在传统的 PPS 结算方式基础上,增加了矿工费的分配。
FPPS:Full PPS(完全PPS),对包括交易费在内的全部区块收益进行分配。 相比传统的PPS结算模式(不分配交易费)可提升 10%-20% 左右收益。
PPLNS (Pay Per Last N Shares) 结算方式下,矿池每发现有效的区块, 根据过去 N 个难度周期中用户算力占矿池算力的比例进行分配。 这种方式下矿工的收益和矿池的出块相关,矿工收益不稳定,但长期平均收益更高。
SOLO 结算方式下,全部收益分配给挖出该块的矿工,其他矿工不参与分配,矿池收取极少手续费,用于矿池运营和维护。
个人如何选择矿池:
1.首先,考虑能连上的矿池;
2.其次,选择你的分配模式,追求稳定还是高收益。一般建议选择PPS或者大矿池的PPLNS;
3.最后,根据分配模式选择支持的矿池,从中选择连接速度快的,收益好的;
4.另外,选择1-2个备用矿池,以供不时之需。
⑺ 什么是矿池 矿场
比特币也是“挖”出来的,只不过它是由计算机我们一般称之为“矿机”)在虚拟网络世界中开采出来的。所以,要挖币,同样需要选择一片合适的区域,搭建起厂房,把成百上千台矿机连接起来一起挖矿,这就是矿场。
一个矿场的成本包括建设成本、设备成本、维护成本、网络成本等。其中维护成本包括电力成本和人力成本,这也是我们会把矿场选建在电费相对比较便宜的地方的原因。一台比特币矿机的回本周期,和政策、技术、币价、算力、维护状况等多种因素有关,一般需要200-300天回本。但随着市场波动,回本周期也会变化。
说完矿场,我们来说说矿池。由于现在挖矿的人越来越多,加入的矿机和矿场也起来越多、总算力越来越大。这种情况下,单个矿机挖到比特币的概率越来越小。于是,人们想出了个办法、既然矿机单枪匹马不行,那我们把矿机联合起来去和全球其他矿机竞争——这种矿机算力的集合就是所谓的矿池。这样就能大大增加挖到矿的概率,挖到比特币后,再根据每台矿机对总算力的贡献,给予其相应的奖励。
矿池的概念比矿场抽象。矿池可以是若干矿机的集合,也可以是若干矿场中矿机算力的集合。比如谈到现实中一个在中国的矿池,接入这个矿池的矿机既有中国矿机,也有来自国外的矿机,不分区域、大家按劳分配。
⑻ 火币矿池备用地址
矿机后台配置三个挖矿地址,第一个是主矿池地址,后两个是备用矿池地址,矿机为了确保矿工的挖矿收益,设置了自动检测备用矿池机制,也就是矿机本身会不断的检测备用矿池是否可连,矿机在不停地检测备用矿池的可用性,在此期间主矿池一直保持连接状态,所以不会影响各位的挖矿收益。
拓展资料
矿池的分配方式主要有:“PPLNS、PPS、PROP”三种。
1. PPLNS模式:(最纯正的组队挖矿)全称Pay Per Last N Shares,意思是说“根据过去的N个股份来支付收益”,这意味着,所有的矿工一旦发现了一个区块,大家将根据每个人自己贡献的股份数量占比来分配区块中的货币。在PPLNS模式下,运气成份非常重要,如果矿池一天能够发现很多个区块,那么大家的分红时间会非常快,如果矿池一天下来都没有能够发现区块,那么大家当天也就没有任何收益,收益要等到你参加的区块被完全挖掘出来才能得到分配。同时,由于PPLNS下,具有一定的滞后惯性,你的挖矿收益会有一定的延迟,比如说,你加入到一个新的PPLNS矿池,这个时候你会发现前面几个小时的收益比较低,那是因为别人在这个矿池里已经贡献了很多个share了,你是新来的,你的贡献还很少,所以分红时你的收益都是比较低的。随着时间的推移,该结算的也结算了,大家又开始进行了新一轮的运算时,你就回到和别人一样的水平了。同样道理,若你离开了PPLNS矿池不再挖矿,你贡献的share还在,在此后的一段时间里,你依然会得到分红收益,直到你的share被结算完毕。
2. PPS模式:Pay-Per-Share方式---该方式为立即为每一个share支付报酬。该支出来源于矿池现有的比特币资金,因此可以立即取现,而不用等待区块生成完毕或者确认。这样可以避免矿池运营者幕后操纵。这种方法减少了矿工的风险,但将风险转移给了矿池的运营者。运营者可以收取手续费来弥补这些风险可能造成的损失。为了解决PPLNS那种有时候收益很高,有时候没有收益的情况,PPS采用了新的算法。PPS根据你的算力在矿池中的占比,并估算了矿池每天可以获得的矿产,给你每天基本固定的收益。
3. PROP模式:比特币区块的产生是:由矿池发现区块后向全网络广播,经过120次确认后,才会产生区块。PPS模式是:矿工每贡献一点速度,矿池就向矿工支付相应的比特币,矿池的币还是要来自真正的区块产生,只不过在真正的区块产生之前,矿池就提前支付给了矿工。PROP模式是:矿池经过120次确认产生真正区块后,会把比特币按每个矿工的贡献分配给矿工,这种模式更符合比特币区块的产生。在PROP模式,即使暂时没有产生真正的区块,以后产生出来了真正的区块,还是会根据挖这个区块的贡献,分配给每个矿工。矿工挖矿至少都是挖几个月,甚至几年,所以从长远来看,这两种模式挖出币的数量是一样。
⑼ 以太坊stratum协议原理
参照比特币的 stratum协议 和 NiceHash的stratum协议规范 编写了一版以太坊版本的stratum协议说明.
stratum协议是目前最常用的矿机和矿池之间的TCP通讯协议。
以太坊是一个去中心化的网络架构,通过安装Mist客户端的节点来转发新交易和新区块。而矿机、矿池也同时形成了另一个网络,我们称之为矿工网络。
矿工网络分成矿机、矿池、钱包等几个主要部分,有时矿池软件与钱包安装在一起,可合称为矿池。
矿机与矿池软件之间的通讯协议是 stratum ,而矿池软件与钱包之间的通讯是 bitcoinrpc 接口。
stratum是 JSON 为数据格式.
矿机启动,首先以 mining.subscribe 方法向矿池连接,用来订阅工作。
矿池以 mining.notify 返回订阅号、ExtraNonce1和ExtraNonce2_size。
Client:
Server:
其中:
是 订阅号 ;
080c是 extranonce ,Extranonce可能最大3字节;
矿机以 mining.authorize 方法,用某个帐号和密码登录到矿池,密码可空,矿池返回 true 登录成功。该方法必须是在初始化连接之后马上进行,否则矿机得不到矿池任务。
Client:
Server:
难度调整由矿池下发给矿机,以 mining.set_difficulty 方法调整难度, params 中是难度值。
Server:
矿机会在下一个任务时采用新难度,矿池有时会马上下发一个新任务并且把清理任务设为true,以便矿机马上以新难度工作。
该命令由矿池定期发给矿机,当矿机以 mining.subscribe 方法登记后,矿池应该马上以 mining.notify 返回该任务。
Server:
任务ID : bf0488aa ;
seedhash : 。每一个任务都发送一个seedhash来支持尽可能多的矿池,这可能会很快地在货币之间交换。
headerhash : 。
boolean cleanjobs : true 。如果设为true,那么矿工需要清理任务队列,并立即开始从事新提供的任务,因为所有旧的任务分享都将导致陈旧的分享错误。如果是 false 则等当前任务结束才开始新任务。
矿工使用seedhash识别DAG,然后带着headerhash,extranonce和自己的minernonce寻找低于目标的share(这是由提供的难度而产生的)。
矿机找到合法share时,就以” mining.submit “方法向矿池提交任务。矿池返回true即提交成功,如果失败则error中有具体原因。
Client:
任务ID : bf0488aa
minernonce : 6a909d9bbc0f 。注意minernonce是6个字节,因为提供的extranonce是2个字节。如果矿池提供3字节的extranonce,那么minernonce必须是5字节
Server:
一般的矿机与矿池通讯过程就如下所示:
⑽ 实时算力和本地算力差距大吗
实时算力和本地算力一般差距较大。一般来说,显卡矿机的本地算力一直都很稳定,而矿池上显示的实时算力却经常波动。有的时候,这台矿机在矿池的实际算力会高于本地算力,有的时候,这台矿机在矿池的实际算力会低于本地算力。
理论上,矿池其实只需要按照有效share的数量,向每一个矿机(绑定的地址)发放奖励就可以了。不过,实际过程中,矿池是需要给矿机主提供一个数据,来帮助矿工判断矿机是否在正常工作。
因此,矿池需要把有效share的数量按照每一个任务的权重,反推计算出来一个算力值,来供矿机主参考,辨别矿机是否在正常工作。矿池算力其实并不是你本地的算力数据,而是通过你提交的有效share反推出来的一个帮助判断机器是否正常运行的数据指标。
本地算力与实时算力的关系
一般矿池算力会显示成两个数据:
一个是短时间的算力,或者叫瞬时算力(不同矿池会显示5分钟、10分钟、15分钟算力);另一个则是长时间的算力,一般会选择24小时算力。
短时间算力,比如15分钟算力,就是统计15分钟提交的有效share然后按照权重反推出来的平均算力值。而长期算力,则是24小时内提交的有效share然后按照权重反推出来的平均算力值。那么两个数据的关系,则取决于统计时间内有效share提交的数量。
如果矿机的运算效率高,在此统计周期内(比如15分钟内),提交的有效share特别多,则这时候的15分钟算力数据会特别高,甚至比本地算力还要高很多。
(这种情况,可以理解为机器在超负荷运算。例如,机器的能力只有310M水平,却在这15分钟完成了400M水平的运算工作。)正常来说,一个机器当然不可能持续的超负荷工作。
所以我们会看到矿池反应的算力曲线是实时波动的,并且同一地址下的矿机数量越少,算力波动会越明显,若多台矿机一起显示的总算力会平稳些。而矿池显示的24小时平均算力,由于统计周期比较长,所以是一个比较稳定的数据。一般会比本地算力略低一些。
因此,也会出现很多时候,在此统计周期内(比如15分钟内),提交的有效share比较少。那么这个时候的15分钟算力数据就会比较低,低于本地算力。