比特币矿池制作 挖矿矿池
一、比特币矿池的协议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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。
二、鱼池F2Pool是如何成为中国最大的比特币矿池
鱼池F2Pool能够成为中国最大的比特币矿池,主要归功于51%攻击的解决。在此之前,全球一些知名矿池因为费率低、使用方便,吸引了大量矿工,导致矿池算力大幅增长,甚至接近或超过全球51%的算力。这一现象引起了比特币社区的广泛关注和讨论,矿池运营商也积极号召矿工转移到其他矿池。在这个过程中,中国矿工纷纷转向了鱼池。
中国为全球贡献的算力非常可观,这为中国矿工转向鱼池提供了坚实的基础。对于许多新加入的矿工而言,由于对全球矿池缺乏了解,他们更倾向于选择鱼池。此外,之前一些矿池因经营不善而倒闭,这也促使矿工寻找更为可靠的矿池。
然而,目前币网的矿池和比特币中国的矿池算力也十分接近鱼池,鱼池的优势并不明显。尽管如此,鱼池仍然保持着较高的市场份额和影响力。比特币之家对于51%攻击的报道也进一步提升了矿工对于鱼池的信任度。
51%攻击的解决不仅增强了矿池的安全性,也为鱼池赢得了更多的用户。鱼池通过提供优质的服务和稳定的性能,赢得了矿工的认可。随着比特币市场的不断发展,鱼池将继续努力提升自身实力,保持其在中国乃至全球比特币矿池市场的领先地位。
三、什么是比特币
什么是比特币(Bitcoin、BTC)?
有人说,比特币是一种虚拟货币。
什么是比特币?
有人说,比特币是一种虚拟的总量恒定2100万的数字加密货币。
到底什么是比特币?
还是由我来给大家讲个故事吧。
在古代的一个部落里,村长会奖励表现突出的村民一颗特制的星星,久而久之星星变成了流通的货币,村民们用它来交换货物。但是有村民开始自己制作星星,打破了这种生态平衡,于是,星星失去了作为货币的信用价值。
村长换了一种奖励方式——记账。每个村民都有一个账本,用来登记星星数量的变化信息,同时每一笔登记信息都需要在副村长那里记总账。但是,村民们慢慢发现,跟副村长关系好的人,他们的星星数量有猫腻。于是,记账这种方式也无法令人信服了。
最后,村长又想了一个办法,收回副村长记总账的权利,改用全体村民一起记账,每一笔星星的变动信息,要求每个村民都记下来。然后,每天固定的时间,全村人一起核对当天发生的交易,每天先计算出来的村民,会收到1颗星星的奖励。每一笔交易只有符合绝大多数人的记账才会被认可,意味着你要更改自己账单里星星的数量,你需要同步更改绝大多数村民的账本信息与之匹配,才会被认可。这种方式使得每个村民账本里的星星变得十分安全。另外,村长告诉大家,星星的总量是恒定的,不用担心通货膨胀贬值,目前还有很多星星没有拿出来奖励大家,需要大家努力去获取。
在这个故事里,每个村民账本里的星星就是比特币。整个村子就是一个p2p(个人对个人)网络,每个村民都是一个节点。村民和账本共同组成的系统就是区块链。副村长记总账就是中心化,取消副村长记总账,就是去中心化。最先计算出来结果的村民会得到奖励,这就是挖矿,用于计算的工具就是矿机。这个聪明的村长叫中本聪。
比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。
比特币就是一种虚拟货币,他是由中本聪发明出来的,一种去中心化的虚拟的货币,现在成了一种金融手段,也成了一种自己产业链,因为比特币,导致很多人看到虚拟货币的巨大利益,导致出现了很多的虚拟货币种类。
为什么比特币的价值越来越高,是因为人们的一种信仰,以及这里面具有很大的商业价值、金融价值,以及很多的产业结合,未来,比特币将会形成一套自己的生态链,这样它就会一直存在下去.
为什么我会这这么支持比特币呢:
一、经过一段时间的接触,我发现比特币并不是我所想的那么简单,它已经形成了自己的生态.包括矿机、币的价值等等.
二、很多人已经把比特币当成了自己的一种信仰,就像我们A股的茅台等。
三、就是世界上,有一些东西已经用它来交易.具体是什么需要你自己亲自去寻找答案.
未来,比特币是否会良性发展,个人认为它会越来越规范化,因为只有规范,才能让那些交易所之类的利益集体一直存活下去.
比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。[2]P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。
2017年12月17日,比特币达到历史最高价19850美元。
2020年5月8日,比特币价格突破10000美元。
2009年,比特币出生那天,价格几乎是0,到了某年5.22日,有了10000Btc买两个披萨,再到2017年顶峰13万一个的btc!比特币越来越贵,他不就是一个程序员搞出来的一套算法,一串数字么?为什么价值这么高呢?相信很多朋友都有这样的疑问,那么今天我就为大家解答一下。
首先我们要先了解一下比特币是什么,比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。
我有专门写文章介绍,可以看一下。
市场上主流的数字货币,但是他不是真实的流通的只能在网络上进行交换,所以全是一种虚拟的货币,他的波动非常的,一般不建议投资者去玩比特币,注意安全
比特币(Bitcoin:比特金)最早是一种网络虚拟货币,可以购买现实生活当中的物品。它的特点是分散化、匿名、只能在数字世界使用,不属于任何国家和金融机构,并且不受地域的限制,可以在世界上的任何地方兑换它,也因此被部分不法分子当做洗钱工具。2013年,美国政府承认比特币的合法地位,使得比特币价格大涨。而在中国,2013年11月19日,一个比特币就相当于6,989元人民币。
2014年1月7日,淘宝发布公告,宣布1月14日起禁售比特币、莱特币等互联网虚拟币等商品。西维吉尼亚州民主党参议员乔·曼钦(JoeManchin)2014年2月26日向美国联邦政府多个监管部门发出公开信,希望有关机构能够对比特币鼓励非法活动和扰乱金融秩序的现状予以重视,并要求能尽快采取行动,以全面封杀该电子货币。2017年1月11日),中国人民银行上海总部、上海市金融办等对比特币中国开展现场检查,重点检查该企业是否未经许可或无牌照开展信贷、支付、汇兑等相关业务;反洗钱制度落实情况;资金安全隐患等。2017年1月12日,央行营业管理部也在北京进驻“火币网”、“币行”等交易平台。2017年8月1日起全球比特币交易平台将暂停充值、提现服务。比特币中国数字资产交易平台9月14日起停止新用户注册,9月30日数字资产交易平台将停止所有交易业务。
2020年5月10日,比特币单价在半小时内从9500美元价位瞬间下跌了上千美元,最低价格跌破8200美元,最高价差超1400美元。
比特币是由中本聪提出的一种去中心化货币,总量2100万个,通过记账挖矿产出,每4年产量自动减半,由专业挖矿矿机挖出,现在比特币挖矿竞争激烈,小散户很难挖到比特币,概率太低了,现在一般都是矿场或者矿池挖比特币(我的小视频有专门视频讲解)。
目前比特币价值67000一枚,现货市场看涨情绪比较高。
比特币可以说是数字货币的鼻祖,很多的国家都把它定义为一种虚拟资产,就跟黄金一样,是一种投资商品。比特币是一种资产,总量恒定、发行机制完全透明、并且机器执行,而且不受任何国家或机构的控制的虚拟数字货币。
-
芝麻开门交易所官网地址 芝麻交易所排名 11-09