B1挖矿
转自: 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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。
⑵ 虚拟地球DDC是怎么挖矿的
DDC是虚拟地球生态下的虚拟数字资产,它的产生过程与用户注册、登录DAPP后提供完整的个人信息、参与挖宝速度、持有DDC的数量,分享后朋友注册数量,以及参与虚拟地球建设等都有较强关联,用户必须通过以上方式获得。DDC在虚拟地球生态系统中,将成为用户参与虚拟地球建设的交换媒介,保证用户的权益和义务对等;随着应用市场规模的提升,DDC具有有广阔的市场前景;但随着挖宝难度的增加,用户的增长,越早参与的用户获DDC越多。
挖矿:http://app.dreamworld.io/download.html?invitecode=V3B1ZJ
前1万名注册用户,获得虚拟地球创世居民身份,达到1万名创世居民名额后,自动停止授予并推送新系统级公告。
您的专属邀请码 V3B1ZJ(不然算力减少)
这个币已经上了平台了,价格一毛多。
⑶ 原神水晶矿分布图水晶快速获取攻略
原神中,水晶作用很大,那么游戏中水晶矿点分布在哪里,该怎么采集,下面一起来看看吧。快速跑图小技巧:利用shift连续冲刺,可以使角色冲刺两次,但只会消耗一次体力,大大加快移动速度,低体力时会自动停止奔跑,高体耐没友力就需要松开W行走(松开过早会顿足),然后两次冲刺循环。Q:为什么要挖矿?A:武器强化到满级(1-90)需要9064450武器狗粮,每天能打造30个魔矿(消耗120个水晶),也就是30w经验,也就是说每天打造满。30天才能强化满武器。每天派遣能获得3x7-8(21-24),也就是说每天都要保证99个水晶的采集。Q:为什么要多人组队挖矿?A:提瓦特总共有164个水晶矿点,采集之后需要72小时(3天)才能刷新,一个人只刷自己的矿是绝对不够的,也不划算。但是,进入别人世界,多人游戏中在一定距离内,击碎矿物,每个人都能获得矿物掉落。(但是石珀不能,不清楚算不算bug)所以如果想要收益最大化,应该和2到3个好友组成挖矿小队,每天挖矿,图中推荐的路线能够采集到150个矿点,可以根据自己情况制定相应计划。其中会遇到不少怪物营地,怪物的战利品掉落也是共享的,所以也有锄大地+挖矿的玩法(但是除了丘丘人的面具意外,每个玩家缺的材料都不尽相同),这里也不做赘述。路线推荐
蒙德区域
风龙废墟A(11)+B(11)...
A线路:在第二根柱子爬到平台到达A1(1);直线冲刺到A2(1);跳下平台;背后崖脚A3(1);直线冲刺,路过察陵丘丘人营地爬上平台到达A4(1);直线冲刺到A5(1);朝A6(2)冲刺滑翔到达平台;折返滑到A7(1);依次冲刺到A8(1)、A9(1)、A10(1)B线路:从七天神像传送,滑翔到西北方平台;从平台滑翔到B1(1);跳下平台,背后崖脚B2(1);冲刺到B3(1);爬上平台B4(1);依次冲刺到B5(1)、B6(1)、B8(1);穿过栅栏,左边峭壁拐角深处B9(1);冲刺到平台B10(1)、B11(1)奔狼领北部、明冠峡A(3)+散矿(1)...
从南边传送点冲刺到A1(1);掉头冲刺到丘丘人营地A2(1);无视丘丘人冲刺到A3(1)从北边传送点冲刺到悬崖边,跳下散矿(1)奔狼领南部A(5)+西边丘丘人营地散矿(1)...
从七天神像冲刺、滑翔到A1(1)、A2(1),向A3(2)冲刺,会看到一个独木桥走上去,在跳上平台采集水晶;跳到对面平台再越过丘丘人营地,沿着小径走到A4(1)转头即可从北风狼下传送点直接冲刺到峡谷,穿过丘丘人篝火,小树苗之后散矿(1)铭记之谷A(4)...
爬到[铭记之谷]上方的悬崖,朝东方直行,跳下小坑A(4)望风山地、望风角A(3)+B(2)...
冲刺到A1(2);跳下平台,滑翔后冲刺到A2(1)冲刺翻过石阶到B1(1);冲刺滑翔到B2(1)风龙北部散矿(3)...
从风龙废墟的A路线末尾,爬上破败城堡的平台,直接朝两座城墙之间前进散矿1(2)北边传送点直线前进,土坡和崖脚的夹缝间散矿2(1)达达乌帕谷散矿(1)...
从[南风之狮的庙宇]爬到北边的悬崖,沿着悬崖边向下看,到目标位置即可(1)璃月北
轻策庄A(6)...
爬山、冲刺到大石头旁A1(2),越过盗宝团到达瀑布A2(4)华池岩岫、绝云间北边山地A(2)+B(3)+散矿(2)...
从[华池岩岫]出发直接向东北方滑翔,越过峭壁到A(2)位置,直接下降从传送点出发,穿过丘丘人营地,即可看到两块岩石中间的B1(2),转头滑翔昌槐穿过盗宝团到达银杏树的小径,巨岩的夹缝B2(1)挑战点背后的石头散矿1(1)道路旁裸岩的背后散矿2(1)奥藏山A(8)+B(3)+散矿(2)...
从传送点出发,滑翔到A(8)位置,直接下落即可从传送点向上爬,到达山顶B1(1),依次滑翔到B2(1)B3(1)附近山头的山顶散矿(2)庆云顶、绝云间A(13)+B(7)+C(8)...
(游戏中地图截图是中间亮四周暗的变化,作者图省事直接拼接了)A路线:从上方的传送锚点滑翔到迎客松下面A1(1);向北滑翔到草地,松树旁A2(1);往浮生石方向(站在上面可以触发其他浮生石)滑翔A3(1);向东南方滑翔到凸起的岩石A4(1);跳下一层A5(1);爬上一层,崖壁中间A6(1);绕过石柱(会遇到岩史莱姆挡路),崖脚A7(1);绕到山的另一面A8(1);路过狂风之核,到达A9(1);沿着草地冲刺爬上A10(1)、A11(1);向北滑翔到山头A13(1);折返跳下峡谷A13(1)B路线:从上方传送锚点出发,掉头向东滑翔到B1(4),建议先从北面的矿挖,不容易遗漏;向东南滑翔到歪脖子银杏树下B2(1);折返到凉亭背后B3(1);滑翔到山的北面B4(1)C路线:直接从七天神像跳下C1(1);往南冲刺下山C2(1);到达两个巨石中间C3(1);向西滑翔到有银杏树的草地;在死角C4(1);继续滑翔,两只丘丘人附近C5(2),滑翔对岸冲刺到峭壁旁C6(1),掉头往传送点正北飞,视角往后看,在伸出的黄色枫树灌木中间隐藏C7(1)C7
天遒谷、南天门A(5)+散矿1(1)+散矿2(1)...
向东冲刺爬上山地,天坑靠里A1(2),向西北冲刺到A2(1),在最突出的石块跳下即可;同样的在A3(2)位置跳下即可。向挑战点爬上平台,从挑战点对着悬崖爬散矿1(1)从天遒谷南方的传送点沿着山脚边缘冲刺散矿2(2)翠_坡A(4)+B(6)...
A路线:大银杏树后A1(1);穿过丘丘人萨满的篝火,在挑战点的平台往后看A2(2);跑到石块上A3(1);冲刺穿过丘丘岩盔王,跳下滑翔到对面山的崖脚A4(1)B路线:大银杏树后,歪脖子银杏树的地方有天坑B(3),穿过丘丘人镇守的出口,向渌华池方向冲刺,跳下悬崖,正下方B(3)荻花洲到绝云间的海滩散矿(1)...
从传送点向A冲刺,跳下小坡,石洞中散矿(1)璃月南
灵矩关北部遗迹、遁玉陵南矿洞A(10)+B(4)...
从七天神像出发,爬上残垣,滑翔,转头飞入矿洞A1(6),借助丘丘人的梯子爬出矿洞,滑翔到A2(4)从传送点滑翔到天坑B(4)上方(有一个射气球的宝箱),出口处丘丘人旁边也有一块,很容易漏掉灵矩关下游A(11)...
从传送点滑翔,裸露的岩石A1(3);向南冲刺,越过岩盾丘丘暴徒,达到矿洞入口,债务处理人旁A2(2);从另一侧出口出发,从山脚绕过丘丘人营地(地图上的棕红色部分),到达[曲径通幽之处]下方的矿洞A3(3),需要快速击杀冰深渊法师;从入口爬出滑翔到A4(3)有火深渊法师,但不影响采矿。天衡山A(6)...
两处崖脚A1(3)、A2(3)孤云阁A(3)+B(12)...
巨岩后A1(3)巨岩前、破船后B1(2);山脚B2(2);裸岩B3(1);南方小岛B4(7)正面(2)、侧面(2)、背面(2)、后面裸岩(1)青墟浦散矿(1)...
从南方的传送点直线滑翔,进到最中心的地点,图中位置前面是一块巨石,打破之后会里面有夜泊石和散矿(1)
⑷ 对于初次接触矿机的,挖矿人怎么去配置属于自己的矿机呢不要太坑,还是实际点讲。
如今各位挖矿的电脑爱好者没有不知道的。想要在网上获得高效并且快速的资源,那就需要挖矿,不过挖矿可是高端技术活,考验的是电脑的CPU与GPU性能,如今的核心显卡配置根本挖不动。对于喜欢挖矿的用户来说,选择一款专业级挖矿机配置就很重要了,
详情如下:
矿机是需要一个好显卡和充足的内存的,所以,在组装之前一定要选择好的显卡和CPU,以太币的发掘过程其实就是一个计算的过程,这样的计算是非常耗电的,而且也是非常耗能的,尤其是对于显卡的要求极高,配置越高的矿机所获得的以太币越多,获得的利润高也就越来越高。
组装矿机需要注意两点,1.PCIE插槽越多可连接的显卡就越多,单个矿机的算力就越大。2.电源功率越大能带动的显卡越多。所以大家在选择配置时一定要根据你的显卡的数量与功率来选择相应功率的电源,否则很有可能出现因为电源功率过低而导致显卡算力不足甚至不工作的情况。
综上所述,对于想要挖矿的投资者来说,最好还是去专业的网站购买至少一台矿机,而且要配置高的矿机,主要是看矿机的显卡和CPU,这两项是决定矿机工作效率的主要因素,所以,在挖矿之前一定要弄清楚这些事项。
配件名称 品牌型号 参考价格(元)
处理器:Intel酷睿i7-4770k Haswell全新架构盒装CPU ¥2369
散热器:盒装自带
主板:技嘉Z87-HD3主板 (Intel Z87/LGA 1150) ¥899
显卡:HIS R9 280X 冰酷版Boost ¥1799
内存:金士顿骇客神条 Blu系列 DDR3 1600 8GB 台式机内存(KHX1600C10D3B1/8G) ¥499
硬盘:西部数据蓝盘 1TB SATA6Gb/s 7200转64M 台式机硬盘(WD10EZEX) ¥419
固态硬盘:浦科特M5S系列 128G 2.5英寸 SATA-3固态硬盘(PX-128M5S) ¥699
机箱:游戏悍将 刀锋1豪华JD雪装 中塔机箱 (U3/SSD/风扇调速器/顶部易插拔/双风扇) ¥239
电源:航嘉jumper500 电源(额定500W/80plus白牌/主动PFC/全电压/智能温控/背部走线) ¥299
处理器方面,i74770K处理器可以说是目前Inel最新四代Haswell平台最顶级的一款旗舰产品,性能上自然定位于新顶级高端。该处理器基于更新一代的22mm工艺,最新的LGA1150处理器插槽,基于四核八线程,默认主频为3.5Ghz,并且还可以睿频至4Ghz以上,加之还有8M三级缓存,支持自由超频等特性,整体性能强劲,运算表现极强,可以很好地满足比特币挖矿需求。
主板方面,四代新Haswell系列处理器需要搭载8系列主板,鉴于我们已经选择了性能极强的旗舰级超频处理器,因此主板非Z87高端可超频主板莫属了。技嘉Z87-HD3主板是一款一线技嘉主板品牌高规主板,全高清支持4K超高分辨率,是一款做工扎实,超耐久4PLUS主板,保证电脑可以长期稳定运行,这对于挂机挖矿的朋友来说,非常有必要。
显卡方面,HIS R9 280X 冰酷版Boost显卡基于AMD最新一代显卡技术,采用最新28nm工艺,基于R9-280X核心。R9-280X其实就是HD7970GE的改进版,而HD7970GE属于曾经的顶级产品,在性能方面基本无可挑剔。
事实上,HIS R9 280X 冰酷版Boost显卡默认主频达到了850Mhz/6000Mhz,具备3GB超大容量GDR5高速显存,并且显卡位宽达到了384bite,是时下相当顶级显卡,在性能表现行极强,另外字散热上采用,IceQ X冰立方上其中一款最安静的散热器。独特先进的设计,比公版散热器更静,目前多数R9 280X顶级高端显卡售价在2000元以上,而这款国际知名品牌HIS R9 280X 冰酷版显卡售价仅1799元,性价比超高。
编后语:以上推荐了一台比特币挖矿机,比特币挖矿电脑配置是什么?可以参考这个组合的相关配置。这套新一代比特币挖矿机配置采用了Intel最细四代Haswell最顶级旗舰CPU平台,结合了AMD最最新一代高端独立显卡,实践证明A卡在挖矿上表现要比N卡优秀不少,加之属于新一代N卡,组建的挖光机表现会更为出众,除此之外,本套配置还选用了HDD+SDD双硬盘、23英寸大屏高清显示器,保证了整机无任何硬件瓶颈,大型游戏、比特币挖矿也均为游刃有余,由于基本高性价比方面搭配新硬件,整机配置价位也仅8000元出头,性能并不比曾经那套1.6万顶级挖矿机配置差,显然更值得推荐。
当然论配置其实官方的并没有过多的介绍也没有去推荐哪些类型但是根据云立方网的经验来总结的,具体有什么需求可以登录官网查看详情哦。
⑸ 挖矿难度表示
比特币的挖矿难度可以使用Target Threshold,nBits或Difficulty表示,它们互相等价:
这三个值的转化关系可以采用下面的实例来说明:
首先获取哈希值为 的区块原生十六进制信息如下:
区块中nBits采用小端格式表示,解析区块信息,得到nBits字段值为0x4c86041b。因此转化为大端格式为0x1B04864C,这个值是Target Threshold的压缩格式表示,可以将它转化成256位的Target Threshold值:
开头的一个字节为指数,后面三个字节为系数,则:
计算出Target Threshold值为 。
再计算Difficulty的值,它有两个值,计算公式分别为:
由此可以使用 Python 计算出bdiff的值:
因此,得到在比特币客户端中的difficulty值bdiff为14484.162361225399。
为了检验上述结果,可以在比特币核心客户端中使用 getblock "" 命令得到该区块的json格式信息:
最终,可以发现该区块的bits和difficulty字段信息与上面分析计算的相关结果一致。
nBits的大端格式表示法中,其系数最大为0x7fffff,这是因为Target Threshold数据类型是无符号整型,而它继承自有符号数据类,则在实际中Target Threshold系数的最高位有可能是1,这可能会被解析成一个负数。则在挖矿过程中难度值永远无法小于一个负数。因此,为了解决这个问题,比特币核心在生成nBits值时需要首先检查一下生成的nBits是否会被解析为一个负数。如果是,首先在系数开头补8位0,即除以256,然后指数再加上1。这样由nBits转化为Target Threshold过程中转化公式就与普通值相同了,即指数位都是减去3,转化过程上面已经提到。
举个例子说明:
哈希值为 的区块信息如下:
发现bdiff值为1,则利用bdiff与Target Threshold关系可以计算出:
将Target Threshold值 转化为nBits的过程中可以发现其系数为0xffff00,指数为0x1c,这样:
然而由于系数最高位为1,则如果这样表示的话就可能将Target Threshold解析为负数。因此,我们将系数除以256,指数加上1,得到系数为0x00ffff,指数为0x1d。这样:
最终,nBits值为0x1d00ffff(大端表示),与json格式信息一致。
⑹ 有个挖矿是一层一层的游戏
有个挖矿是一层一层的游戏如下:
1.矿业大亨
你是一个伟大的矿业巨头。这里有很多矿工需要你管理编曲,挑战不同关卡解锁更多建筑装饰道具。另外,工人可以通过金币和经验升级。
2.采矿的传奇
加入了元素的挖掘型手游,每一关都需要玩家不断探索,收集每一关的金币和钻石。不过大家收集问题很重要,别忘了突然有捣乱的。
3.“采矿小能手”
在游戏中,你有自己的矿机,你可以在每个隐藏的底部挖出不同的宝藏。随着宝物的增加,关卡的难度会越来越大,每次操作都很减压。
4.“一起挖掘宝藏”
来到这个游戏,你可以遇到很多动漫英雄。每个英雄的属性和技能都不一样。你可以选择你喜欢的英雄来帮助你挖掘宝藏,通过收集不同的宝藏来改善你的生活。
5.“我去太空是为了采矿和还债”
这款挖矿游戏融入了很多新元素在里面,而且非常简单易操作。即使是新手小白也能在几秒钟内轻松挑战成功。特别的漫画风格给了玩家更加精致的视觉体验。https://android-imgs.25pp.com/fs08/2022/09/21/8/.jpg?x-oss-process=image/watermark,image_=,x_40,y_30,t_75
⑺ 区块链入门的教程
可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。
下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿、为什么挖矿越来越难等问题。
需要说明的是,我并非这方面的专家。虽然很早就关注,但是仔细地了解区块链,还是从今年初开始。文中的错误和不准确的地方,欢迎大家指正。
一、区块链的本质
区块链是什么?一句话,它是一种特殊的分布式数据库。
首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。
其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
二、区块链的最大特点
分布式数据库并非新发明,市场上早有此类产品。但是,区块链有一个革命性特点。
区块链没有管理员,它是彻底无中心的。其他的数据库都有管理员,但是区块链没有。如果有人想对区块链添加审核,也实现不了,因为它的设计目标就是防止出现居于中心地位的管理当局。
正是因为嫌败无法管理,区块链才能做到无法被控制。否则一旦大公司大集团控制了管理权,他们就会控制整个平台,其他使用者就都必须听命于他们了。
但是,没有了管理员,人人都可以往里面写入数据,怎么才能保证数据是可信的呢?被坏人改了怎么办?请接着往下读,这就是区块链奇妙的地方。
三、区块
区块链由一个个区块(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。
每个区块包含两个部分。
区块头(Head):记录当前区块的特征值
区块体(Body):实际数据
区块头包含了当前区块的多项特征值。
生成时间
实际数据(即区块体)的哈希
上一个区块的哈希
...
这里,你需要理解什么叫哈希(hash),这是理解区块链必需的。
所谓哈希就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。
举例来说,字符串123的哈希是(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。(理论上,其他字符串也有可能得到这个哈希,但是概率极低,可以近似认为不可能发生。)
因此,就有两个重要的推论。
推论1:每个区块的哈希都是不一样的,可以通过哈希标识区块。
推论2:如果区块的内容变了,它的哈希一定会改变。
四、 Hash 的不可修改性
区块与哈希是一一对应的,每个区块的哈希都是针对区块头(Head)计算的。也就是说,把区块头的各项特征值,按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希。
Hash = SHA256( 区块头 )
上面就是区块哈希的计算公式,SHA256是区块链的哈希算法。注意,这个公式里面只包含区块头,不包含区块体,也就是说,哈希由区块头唯一决定,
前面说过,区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改弯首变。
这一点对区块链有重大意义。如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。
正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。
每个区块都连着上一个区块,这也是区块链这个名字的由来。
五、采矿
由于必须保证节点之间的同步,所以新区块的添加速度芹闹颤不能太快。试想一下,你刚刚同步了一个区块,准备基于它生成下一个区块,但这时别的节点又有新区块生成,你不得不放弃做了一半的计算,再次去同步。因为每个区块的后面,只能跟着一个区块,你永远只能在最新区块的后面,生成下一个区块。所以,你别无选择,一听到信号,就必须立刻同步。
所以,区块链的发明者中本聪(这是假名,真实身份至今未知)故意让添加新区块,变得很困难。他的设计是,平均每10分钟,全网才能生成一个新区块,一小时也就六个。
这种产出速度不是通过命令达成的,而是故意设置了海量的计算。也就是说,只有通过极其大量的计算,才能得到当前区块的有效哈希,从而把新区块添加到区块链。由于计算量太大,所以快不起来。
这个过程就叫做采矿(mining),因为计算有效哈希的难度,好比在全世界的沙子里面,找到一粒符合条件的沙子。计算哈希的机器就叫做矿机,操作矿机的人就叫做矿工。
六、难度系数
读到这里,你可能会有一个疑问,人们都说采矿很难,可是采矿不就是用计算机算出一个哈希吗,这正是计算机的强项啊,怎么会变得很难,迟迟算不出来呢?
原来不是任意一个哈希都可以,只有满足条件的哈希才会被区块链接受。这个条件特别苛刻,使得绝大部分哈希都不满足要求,必须重算。
原来,区块头包含一个难度系数(difficulty),这个值决定了计算哈希的难度。举例来说,第100000个区块的难度系数是 14484.16236122。
区块链协议规定,使用一个常量除以难度系数,可以得到目标值(target)。显然,难度系数越大,目标值就越小。
哈希的有效性跟目标值密切相关,只有小于目标值的哈希才是有效的,否则哈希无效,必须重算。由于目标值非常小,哈希小于该值的机会极其渺茫,可能计算10亿次,才算中一次。这就是采矿如此之慢的根本原因。
前面说过,当前区块的哈希由区块头唯一决定。如果要对同一个区块反复计算哈希,就意味着,区块头必须不停地变化,否则不可能算出不一样的哈希。区块头里面所有的特征值都是固定的,为了让区块头产生变化,中本聪故意增加了一个随机项,叫做 Nonce。
Nonce 是一个随机值,矿工的作用其实就是猜出 Nonce 的值,使得区块头的哈希可以小于目标值,从而能够写入区块链。Nonce 是非常难猜的,目前只能通过穷举法一个个试错。根据协议,Nonce 是一个32位的二进制值,即最大可以到21.47亿。第 100000 个区块的 Nonce 值是274148111,可以理解成,矿工从0开始,一直计算了 2.74 亿次,才得到了一个有效的 Nonce 值,使得算出的哈希能够满足条件。
运气好的话,也许一会就找到了 Nonce。运气不好的话,可能算完了21.47亿次,都没有发现 Nonce,即当前区块体不可能算出满足条件的哈希。这时,协议允许矿工改变区块体,开始新的计算。
七、难度系数的动态调节
正如上一节所说,采矿具有随机性,没法保证正好十分钟产出一个区块,有时一分钟就算出来了,有时几个小时可能也没结果。总体来看,随着硬件设备的提升,以及矿机的数量增长,计算速度一定会越来越快。
为了将产出速率恒定在十分钟,中本聪还设计了难度系数的动态调节机制。他规定,难度系数每两周(2016个区块)调整一次。如果这两周里面,区块的平均生成速度是9分钟,就意味着比法定速度快了10%,因此接下来的难度系数就要调高10%;如果平均生成速度是11分钟,就意味着比法定速度慢了10%,因此接下来的难度系数就要调低10%。
难度系数越调越高(目标值越来越小),导致了采矿越来越难。
八、区块链的分叉
即使区块链是可靠的,现在还有一个问题没有解决:如果两个人同时向区块链写入数据,也就是说,同时有两个区块加入,因为它们都连着前一个区块,就形成了分叉。这时应该采纳哪一个区块呢?
现在的规则是,新节点总是采用最长的那条区块链。如果区块链有分叉,将看哪个分支在分叉点后面,先达到6个新区块(称为六次确认)。按照10分钟一个区块计算,一小时就可以确认。
由于新区块的生成速度由计算能力决定,所以这条规则就是说,拥有大多数计算能力的那条分支,就是正宗的区块链。
九、总结
区块链作为无人管理的分布式数据库,从2009年开始已经运行了8年,没有出现大的问题。这证明它是可行的。
但是,为了保证数据的可靠性,区块链也有自己的代价。一是效率,数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间;二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常耗费能源的。
因此,区块链的适用场景,其实非常有限。
不存在所有成员都信任的管理当局
写入的数据不要求实时使用
挖矿的收益能够弥补本身的成本
如果无法满足上述的条件,那么传统的数据库是更好的解决方案。
目前,区块链最大的应用场景(可能也是唯一的应用场景),就是以比特币为代表的加密货币。