如何制作自己的矿池
转自: 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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。
❷ 我们都知道比特币矿池是一个组队挖矿的服务器,你想要挖矿就要加入一个稳定的组队挖矿的服务器中,那么要
世界上比特币70%的算力有中国提供,其中比较有名的是:
1、比特币中国
2、f2poll鱼池
……
不列举了。
每个人都可以组建矿池,只要你愿意,另外有人愿意加入。
注意如果没人加入,就只有你自己在这个矿池里和别人竞争,你的算力在全网恐怕沧海一粟都算不上,成功率太低。
所以一般的矿工都加入大矿池,不自己组建。
当然,如果你有实力,也可以自己组建矿池,这个资料是公开的,网络即可。谢谢。
❸ 如何搭建自己的区块链
第一部分:从 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、比特币等等。
❹ 比特币怎么挖 挖比特币的方法
比特币是一本大账本,账本需要有人来记账,记账的奖励就是比特币。而这个记账的权利是需要大家来抢的,挖矿就是抢夺记账权。谁的算力大,谁就更有可能抢到这个记账权。
1、准备好矿机和电源,还需要网线和电脑。
2、安装找IP软件(如已下载则跳过此步骤)
每台矿机都有自己的IP,需要配备软件才能识别出来,可以在比特大陆的官网-技术支持-设备支持里上找到该软件,软件叫作IPReporter。
3、准备自己的矿池、矿工号(如已注册则跳过此步骤)
如果没有自己的矿池号和矿工号,那就不能保证挖到的比特币都是到自己账户上了,所以准备这些是必须的。在蚂蚁矿池官网注册一个自己的矿池账号,并创建一个矿工号。
4、矿机接网线
首先连接好网线,把网线插进矿机的网线接口,记得插紧一点哦。只有连接上网线矿机才能挖矿,宽带没有限制。
5、矿机接电源线
把矿机电源的各个接口接入矿机,电源有10根接线,分别接入算力板和控制板。把所有的电源线接口全都接好了,接好线之后记得检查一下有没有插得不够深的地方。接完所有的线就可以让电源通电了,这时候矿机的灯会开始亮,机器开始响。
6、设置IP
打开刚才下载好的IPReporter这个软件,点击“Start”,然后按住矿机的IPReporter这个按钮,按一秒之后松开。此时软件上会自动弹出这台矿机的IP地址,将IP地址复制到浏览器中。点击回车键,在弹出的身份验证中,用户名和密码都输入“root”,点击确定。
7、复制矿池地址
这个时候我们就进入管理矿机的后台,在miner configuration(矿机配置)这里,把蚂蚁矿池的挖矿服务地址复制过来,只复制//后面的内容即可。总共有三个地址,全部都要复制到矿机后台。这一步就是保证挖到币都能到你自己的账户里来。
Worker这一栏填上自己蚂蚁矿池的刚刚创建的矿工名就行,三个都填一样的,密码自己设置即可。点击右下角的Save&Apply;,等待设置完成即可。
8、监控算力
进入Miner Statu(矿机状态),多刷新几次,就可以出现蚂蚁矿机目前的运行情况了,再打开自己的矿池,就可以看到矿机为你挖出了多少币。
❺ 莱特币自己建立矿池
比特币特币特币矿池是一个组队挖矿的服务器。比特币每10分钟产生一个区块,会有千万人竞争,而这个区块最终只归1个人所有,其它人都颗粒无收。你也许要挖5年才能获得一个区块。
组队挖矿就是,一旦队伍里任何人获得了一个区块,就将区块中的货币按大家的性能分给大家,这样大家就能很快地获得比特币。莱特币矿池的远离也是如此。
如果你拥有大规模的莱特币算力可以去自建矿池,如果没有建议你放弃。
❻ 怎么知道自己挖到比特币了
你的算力只有32.4M ???这样的算力还是不要挖BTC了。
按32M来说 目前难度一天只能有0.17元的收益。。还不到2毛钱。
现在有100G算力 一天才0.07BTC ,约500多人民币。 100G= 100000M 。
-------------
自己在矿池挖的币如果不是手动提的话,一般是累计到1个自动发你的钱包。当然你可以自己设定到多少自动支付给你。在矿池设定好你钱包的接收地址就好。只是现在挖BTC用电脑是不行了,连电费都不够的。有专门的ASIC去挖了。
❼ btccom矿池怎么样
BTC.com 矿池(Pool.BTC.com)是目前最优秀的SHA256算法币种矿池.理由如下:
--最高BTC算力矿池:BTC.com矿池BTC算力由2018年6月的400P左右到2018年5月30日曾突破9000P,在不到一年的时间里,算力翻了20倍不止。
--技术大牛带队,实力超群,性能稳定.
--多种辅助工具实现挖矿管理便利性(矿池app+批量管理工具)、提高挖矿效率(智能代理+VIP服务器+多节点全球布局)
--全网最好的无广告客户群通过QQ、微信、Telegram等多种渠道直接对话客户,最专业的运营人员全天16个小时以上解答用户在挖矿中遇到的各种问题。
--最优秀的收益分配模式:FPPS
--最科学的工作量统计方法,对每个share对应其挖矿难度进行记录统计,公平。
--最全周边工厂,全年制作各类精美有趣的周边产品,不定期发向矿工群体。
--目前支持SHA256系列如BTC、BCH、UBTC等多币种挖矿,且支持一键切换至目标币种。
--据悉其他算法币种也将逐步上线。
拓展资料:以太币矿池怎么选?
选择矿池。首先就要了解矿池的分配模式。现在矿池的收益分配模式有:PPS、PPLNS、PPS+、FPPS等。具体各种模式结束在这里就不做说明了,大家可以在网上查到。
那么,对于挖以太坊ETH的人来说,常见的分配模式是PPS和PPLNS分配模式。如果是追求短期高回报,要求立竿见影的效果,那可以考虑PPS分配模式的矿池,通过贡献自己的算力来获取收益,但是一般需要支付较高的手续费,通常会有3%-5%的手续费,矿池扣除手续费之后剩下的才是你的收益。
二. 矿池的存在对比特币来讲有哪些利弊?
矿池的存在降低了比特币等虚拟数字货币开采的难度,降低了开采的门槛,真正实现了人人都能参与的比特币开采理念。但是,它的弊端也非常明显,因为算力与矿池相连,而且作为矿池,它将掌握极其庞大的算力资源。在比特币世界,算力代表记账权,算力代表一切。如果单家的算力矿达到50%以上,就很容易对比特币等类似的虚拟数字货币发动51%的攻击,后果是可怕的:
1、对采矿权的垄断会使剩余49% 算力的矿池颗粒无收最终导致退出竞争,瞬间破产。矿井池的算力超过50%。如果发动51%的攻击,很容易占据整个网络的所有有效算力。
2、对记账权的垄断,通过51%攻击的双重支付,一笔钱的多次使用,将直接破坏比特币的信用体系等。并使其信用消失。
3、分配权垄断。因为单家的矿池(或者几个矿池的联盟)通过51%的攻击占据了整个网络的算力,剩下的矿池可以很快被挤出来关闭。因为没有竞争,矿池可以分配自己的收入,向矿工收取沉重的费用和税款。
❽ 虚拟币怎么搭建矿池 虚拟币研发与运营 虚拟币制作
虚拟货币制作需要专业的团队,但是如果去制作一个直销币,没存在钱包,也不存在维护,只是纯粹的数字,那就简单多了,成本是非常低的,一个交易平台也就是几千块钱吧。但是这种平台存在严重的漏洞,很容易被攻击。
如果想创造一个像比特币、瑞泰币、千金卡一样的虚拟货币,那就需要付出一些努力,这些币首先需要卡法一个可下载的钱包,已经确定这种币的应用场景,同时还需要创建一个安全靠谱的交易平台。
❾ 莱特币怎么挖矿
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)
❿ 如何制作挖矿加密盒子
1、内置二代加密芯片配合5重算法加密可以隐瞒运营商本地流量行为和特征,挖矿不怕被查。
2、设备自局代理功能,支持全协议,可以更换所有矿机IP为海外地址,避免清退,提高矿机与矿池的连通性,支持各大主流矿池,无需中转避免抽水。以上为制作挖矿加密盒子的方法。