.jpg)
一、币圈内的一些专业术语是什么
1、仓位:指投资人实有投资和实际投资资金的比例。
2、全仓:就是全部资金买入虚拟货币。
3、减仓:就是把部分虚拟货币卖出。
4、清仓:就是把全部虚拟货币卖出。
5、重仓:就是某种虚拟货币买的很多。
6、轻仓:就是某种虚拟货币买的很少。
7、建仓:就是买入虚拟货币。
8、补仓:就是接着买入虚拟货币。
9、全仓:就是一次性全部买入虚拟货币。
10、止盈:获得一定收益后,将所持虚拟货币卖出以保住盈利。
11、止损:亏损到一定程度后,将所持虚拟货币卖出,防止亏损进一步扩大。
12、牛市:价格持续上涨,前景乐观。
13、熊市:价格持续下跌,前景黯淡。
14、多头(做多):买方认为币价未来会上涨,买入币,待币价上涨后卖出。
15、空头(做空):卖方认为币价未来会下跌,将手中持有的币(或向交易平台借币)卖出,待币价下跌后,低价买入获利。
16、反弹:币价下跌时,因下跌过快而价格回升调整。
17、盘整(横盘):价格波动幅度较小,币价稳定。
18、阴跌:币价缓慢下滑,软刀子割肉。
19、跳水(瀑布):币价快速下跌,幅度很大。
20、套牢:一买就跌,简称套牢。
21、踏空:一卖就涨,简称踏空。
22、割肉:一买就跌,低价赔本卖出虚拟货币。
23、解套:被套牢以后,币价回升,扭亏为盈。
24、超买:币价持续上涨到一定高度,买方力量基本用尽,币价即将下跌。
25、超卖:币价持续下跌到一定低点,卖方力量基本用尽,币价即将回升。
26、诱多:币价盘整已久,下跌可能性较大,空头大多已卖出虚拟货币,突然空方将币价拉高,诱使多方以为币价将会上涨,纷纷买入,结果空方打压币价,使多方套牢。
27、诱空:多头买入虚拟货币后,故意打压币价,使空头以为币价将会下跌,纷纷抛出,结果误入多头的陷阱。
28、挖矿:利用计算机、手机等设备运行计算程序,来获得数字货币的过程。注意,挖矿会减短设备的使用寿命。
29、ICO:Initial Coin Offering,源自股票市场的首次公开发行(IPO)概念,是区块链项目以自身发行的虚拟货币,换取市场流通常用的虚拟货币的融资行为。
30、私募轮:私募是相对于公募而言,公募指针对不特定的广大人群募集资金的行为,比如银行卖的基金;而私募要针对特定的人群来募集资金,并且不能公开广告。
31、天使轮:天使轮,即天使投资(Angel Investment),是指个人出资协助具有专门技术或独特概念而缺少自有资金的创业家进行创业,并承担创业中的高风险和享受创业成功后的高收益,或者说是自由投资者或非正式风险投资机构对原创项目构思或小型初创企业进行的一次性的前期投资。天使投资是风险投资的一种特殊形式。
32、基石轮:意思跟私募轮差不多
33、币圈是什么意思?所谓的币圈,即数字货币玩家天然形成的圈子。币圈不大,但是人数也不算少,而且在人群中基本上属于小众异类,但林林总总算是一个圈子,赚钱的人不多,形形色色的赚钱方式也都被迅速地拷贝过来,ico、炒币、挖矿等。
34、币圈怎么样赚钱?币圈赚钱的方式有很多,最主要的炒币赚差价、ICO众筹、搬砖等。
35、币圈消息一般在哪看?行情网站:非小号、mytoken、aicoin、coinmarketcap新闻网站:金色财经、巴比特社区、币世界快讯聊天网站:推特、telegram、slack
36、法币是什么意思?法币是法定货币,是由国家和政府发行的,只有政府信用来做担保,如人民币、美元等等。
37、token是什么意思?token通常翻译成通证,Token是区块链中的重要概念之一,它更广为人知的名字是“代币”。
38、搬砖是什么意思?搬砖就是,从币价低的交易所买入数字货币,然后转到价格高的交易所卖掉。
接下来,我们来理解钱包需要澄清的是,区块链领域提到的钱包其实并不是装钱的钱包,而是装密钥(私钥和公钥)的工具,有了密钥就可以拥有相应地址上的数字货币的支配权。
1、私钥:是对一个比特币地址拥有取钱权限的代表,掌握了私钥就掌握了其对应比特币地址上的所有生杀大权。私钥可以算出公钥,公钥可以再算出比特币地址。每次交易的时候,付款方必须出具私钥,以及私钥产生的签名,每次交易签名不同,但是由同一个私钥产生。私钥是一串
2、公钥:是和私钥成对出现的,公钥可以算出比特币地址,因此可以作为拥有这个比特币地址的凭证。
3、比特币地址:如果说区块链是一个账本,比特币地址就是其中的账号。
4、钱包分为很多种:冷钱包、热钱包、硬件钱包、脑钱包、纸钱包等等,一看这些概念我就会犯晕,我觉得我们不需要搞懂那么多。我们只要搞懂应用场景,手机端还是PC端的,而且我觉得我们只会用到轻钱包,那种储存全部交易的全量钱包太恐怖了。如果你真不放心,就把这个钱包安装在平时不怎么上网的终端上,防止黑客盗用就好。
(二)钱包实战钱包以不同的协议又分为比特币钱包、以太坊钱包、NEO钱包、量子钱包等等,多种。
比特币钱包地址有什么用?
利用比特币钱包中生成的比特币地址你可以接收来自他人的比特币,你也可以将你帐户上的比特币转到他人的比特币地址上面。比特币地址就像银行卡号一样,具有支付、转账、提现功能,但在转账时,你只有知道别人的比特币地址才能进行比特币转账。比特币钱包地址一定要保存好,因为在每次的支付。
什么是利好(比特币)?
利好(比特币):指比特币获得主流媒体关注,或者某项技术应用有突破性进展,有利于刺激价格上涨的消息,都称为利好。
什么是利空(比特币)?
促使币价下跌的消息,比特币技术问题,央行打压等。
什么是成交量?
反映成交的数量多少和买卖的人的多少。一般可用成交币数和成交金额来衡量。
什么是反弹?
比特币价格在下跌趋势中因下跌过快而回升的价格调整现象。回升幅度小于下跌幅度。
什么是盘整?
通常指价格变动幅度较小,比较稳定,最高价与最低价相差不大的行情。
什么是回调?
在多头市场上,币价涨势强劲,但因价格过快上涨而出现暂时回跌,称回调。下跌幅度小于上涨幅度。
什么是搬砖?
把现金充值到币价更低的 A平台,然后买入比特币;然后从 A平台上提现比特币,收到后马上充值到价格更高的 B平台;充值的比特币到 B平台后,马上卖掉,收到的现金马上提现,然后重复步骤。
什么是杠杆?
杠杆交易,顾名思义,就是利用小额的资金来进行数倍于原始金额的投资,以期望获取相对投资标的物波动的数倍收益率,抑或亏损。山寨币,指除了比特币以外的所有的其他币。我个人不喜欢叫山寨币,因为很多币是有自己的创新的,对这些币来讲叫山寨币是不公平的。
2010年,全球最有钱的388人,他们拥有的财富,相当于全球一半贫穷人口拥有的财富总和;
2014年,这个数字是85人,2015年,62人。2017年,只有8个人。也就是说,一辆商务车,就能装下全球一半人口的财富。
认知水平的严重不对称,正在带来财富机会的极度不平等。
你必须不断提高认知水平,跟进趋势,才有可能在这个快速变革的时代中抓住更多机会。
26个区块链行业常用名词解释1、Blockchain——区块链
区块链是分布式数据存储、点对点传输、共识机制、加密货币算法等计算机技术的新型应用模式。是一个共享的分布式账本,其中交易通过附加块永久记录。
2、Block——区块
在比特币网络中,数据会以文件的形式被永久记录,我们称这些文件为区块。一个区块是一些或所有最新比特币交易的记录集,且未被其他先前的区块记录。
3、Node——节点
由区块链网络的参与者操作的分类帐的副本。
4、去中心化
去中心化是一种现象或结构,必须在拥有众多节点的系统中或在拥有众多个体的群中才能出现或存在。节点与节点之间的影响,会通过网络而形成非线性因果关系。
5、共识机制
共识机制是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。
6、Pow——工作量证明
Proofof Work,是指获得多少货币,取决于你挖矿贡献的工作量,电脑性能越好,分给你的矿就会越多。
7、PoS——权益证明
Proofof Stake,根据你持有货币的量和时间进行利息分配的制度,在POS模式下,你的“挖矿”收益正比于你的币龄,而与电脑的计算性能无关。
8、智能合约
智能合约是一种旨在以信息化方式传播、验证或执行合约的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
9、时间戳
时间戳是指字符串或编码信息用于辨识记录下来的时间日期。国际标准为ISO 8601。
10、图灵完备
图灵完成是指机器执行任何其他可编程计算机能够执行计算的能力。
11、Dapp——去中心化应用
是一种开源的应用程序,自动运行,将其数据存储在区块链上,以加密货币令牌的形式激励,并以显示有价值证明的协议进行操作。
12、DAO——去中心化自治组织
可以认为是在没有任何人为干预的情况下运行的公司,并将一切形式的控制交给一套不可破坏的业务规则。
13、PrivateKey——私钥
私钥是一串数据,它是允许你访问特定钱包中的令牌。它们作为加密货币,除了地址的所有者之外,都被隐藏。
14、PublicKey——公钥
是和私钥成对出现的,公钥可以算出币的地址,因此可以作为拥有这个币地址的凭证。
15、矿机
尝试创建区块并将其添加到区块链上的计算设备或者软件。在一个区块链网络中,当一个新的有效区块被创建时,系统一般会自动给予区块创建者(矿机)一定数量的代币,作为奖励。
16、矿池
是一个全自动的挖矿平台,使得矿机们能够贡献各自的算力一起挖矿以创建区块,获得区块奖励,并根据算力贡献比例分配利润(即矿机接入矿池—提供算力—获得收益)。
17、公有链
完全开放的区块链,是指任何人都可读取的、任何人都能发送交易且交易能获得有效确认的、全世界的人都可以参与系统维护工作,任何人都可以通过交易或挖矿读取和写入数据。
18、私有链
写入权限仅面向某个组织或者特定少数对象的区块链。读取权限可以对外开放,或者进行任意程度地限制。
19、联盟链
共识机制由指定若干机构共同控制的区块链。
20、侧链
楔入式侧链技术(pegged sidechains),它将实现比特币和其他数字资产在多个区块链间的转移,这就意味着用户们在使用他们已有资产的情况下,就可以访问新的加密货币系统。
21、跨链技术
跨链技术可以理解为连接各区块链的桥梁,其主要应用是实现各区块链之间的Atom交易、资产转换、区块链内部信息互通,或解决Oracle的问题等。
22、硬分叉
区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。
23、软分叉
当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,就会产生临时性分叉。
24、Hash——哈希值
一般翻译做”散列”,也有直接音译为”哈希”的。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
25、主链
主链一词源于主网(,相对于测试网),即正式上线的、独立的区块链网络。
对币圈“行话”还不了解的小伙伴,赶快来学习一下:
1、法币是什么?
法币是法定货币,是由国家和政府发行的,只有政府信用来做担保,如人民币、美元等等。
2、token是什么?
token,通常翻译成通证。Token是区块链中的重要概念之一,它更广为人知的名字是“代币”,但在专业的“链圈”人看来,它更准确的翻译是“通证”,代表的是区块链上的一种权益证明,而非货币。
Token的三个要素
一是数字权益证明,通证必须是以数字形式存在的权益凭证,代表一种权利、一种固有和内在的价值;
二是加密货币,通证的真实性、防篡改性、保护隐私等能力由加密货币学予以保障;
三是能够在一个网络中流动,从而随时随地可以验证。
3、建仓是什么?
币圈建仓也叫开仓,是指交易者新买入或新卖出一定数量的数字货币。
4、梭哈是什么?
币圈梭哈就是指把本金全部投入。
5、空投是什么?
空投是目前一种十分流行的加密货币营销方式。为了让潜在投资者和热衷加密货币的人获得代币相关信息,代币团队会经常性地进行空投。
6、锁仓是什么?
锁仓一般是指投资者在买卖合约后,当市场出现与自己操作相反的走势时,开立与原先持仓相反的新仓,又称对锁、锁单,甚至美其名曰蝴蝶双飞。
7、糖果是什么?
币圈糖果即各种数字货币刚发行处在ICO时免费发放给用户的数字币,是虚拟币项目发行方对项目本身的一种造势和宣传。
8、破发是什么?
破指的是跌破,发指的是数字货币的发行价格。币圈破发是指某种数字货币跌破了发行的价格。
9、私募是什么?
币圈私募是一种投资加密货币项目的方式,也是加密货币项目创始人为平台运作募集资金的最好方式。
10、K线图怎么看?
K线图(Candlestick Charts)又称蜡烛图、日本线、阴阳线、棒线、红黑线等,常用说法是“K线”。它是以每个分析周期的开盘价、最高价、最低价和收盘价绘制而成。
11、对冲是什么?
一般对冲是同时进行两笔行情相关、方向相反、数量相当、盈亏相抵的交易。在期货合约市场,买入相同数量方向不同的头寸,当方向确定后,平仓掉反方向头寸,保留正方向获取盈利。
12、头寸是什么?
头寸是一种市场约定,承诺买卖合约的最初部位,买进合约者是多头,处于盼涨部位;卖出合约为空头,处于盼跌部位。
13、利好是什么?
利好:指币种获得主流媒体关注,或者某项技术应用有突破性进展,有利于刺激价格上涨的消息,都称为利好。
14、利空是什么?
利空:促使币价下跌的消息,如比特币技术问题,央行打压等。
15、反弹是什么?
币价在下跌趋势中因下跌过快而回升的价格调整现象。回升幅度小于下跌幅度。
16、杠杆是什么?
杠杆交易,顾名思义,就是利用小额的资金来进行数倍于原始金额的投资,以期望获取相对投资标的物波动的数倍收益率,抑或亏损。
二、手机性能比肩PC实测旗舰手机挖比特币
【IT168评测】比特币近期可是着实火了一把,曾经一文不值的极客玩物,现在变成中国大妈热炒的“金融衍生品”了。稍微了解比特币的人可能就知道,比特币的获得方式是十分精密和复杂的,但简单来说,就是谁的计算机运算能力强,谁就能获得更多的比特币。为何笔者今天为大家带来一片实测手机挖比特币的文章?原因有两个:1.通过这篇文章让大家简单的了解一下比特币。2.笔者看到DIY的同事,利用高性能的最新产品疯狂的掠夺着公司的资源,将测试机用于挖比特币而“中饱私囊”很是眼红,也想用手机试试,看看能不能捞一点好处~蚊子肉也是肉嘛,废话不多说,开始今天的“致富”之旅。
文章背景:比特币近期价格突破7000元大关,并且稳定在5500元左右。那些曾经手中有上百个比特币的“土豪”们现在都可以买房了!虽然进场的最佳时机已经过了,但是我们知道挖比特币的过程是特别依赖运算性能的,都说目前旗舰手机性能强悍都已经比肩台式机了,笔者就用挖比特币来试试目前旗舰机型手机的性能。
1.比特币到底是个神马东东?挖矿又是怎么一回事?
比特币的概念是一个名叫“中本聪”的网友在一个论坛上提出的。至于中本聪是个人还是个组织,目前没有明确的答案。而按照中本聪的设想,比特币是一种点对点的虚拟货币。用户通过计算产生一串特殊的秘钥,而这串秘钥则就是我们俗称的比特币。
▲比特币近期疯长
比特币是一种不受到中央银行控制的货币,从比特币诞生伊始,中本聪就为比特币制定了产出规则:每10分钟全球将产出50个比特币,并且按照时间以此递减,目前产量为每10分钟25个。也就是说,当2140年的时候,全球总过产出的比特币将为2100万个。没有中央银行,任何人都能得到,总量有限速度稳定,能够有效的避免通货膨胀。这也是目前很多投资者看好比特币的原因。
▲淘宝销售2TH/S算力矿机售价46000元
而我们常常听到的挖矿也就是获得比特币过程的一个形象的称呼。用户通过计算机强大的运算能力获得比特币的过程就被称作挖矿。而挖矿软件则是获得比特币的客户端,矿机则是用来获得比特币的计算机。
▲双HD7990显卡算力2.4GH/s
前面我们说过,目前单纯通过挖矿来支付的蓝海已经不再了,为什么这么说呢,原因很简单,由于比特币的价格暴涨,所以目前全球在挖矿的计算机运算能力也已经暴涨,已经过了CPU和GPU就能够轻松挖矿的时代了,目前淘宝上专业的矿机已经能够稳定300GH/S(Hash/S为比特币算力单位),而目前顶级GPU的算力大概为1GH/S,而顶级处理器的算力大概仅为10MH/S左右,所以对于入门级别用户来讲,挖矿的门槛已经越来越高。并且前面我们也说过,比特币的产出速度随时间降低,在产出越来越少,算力越来越高的今天,想纯靠挖比特币挣钱,还真不是入门级的用户能办到的。
前面我们说了,如果你现在还不知道比特币是神马,并且也没钱买矿机,那是不是现在开始挖比特币就没什么意义了呢?当然不是,对于像笔者这样的人来讲,挖比特币的过程非常有意义,学会如何挖比特币也算是一项技能,可以增加和别人聊天时的谈资。嘿嘿,是不是很贱呢?接下来,笔者就教大家如何挖比特比。
2.如何挖比特币?
目前全球有很多比特币矿池,想要挖比特币需要先选择一个矿池。笔者在这里为大家推荐几个比较主流的稳定矿池。选择一个稳定矿池是十分必要的。不然很有可能你辛辛苦苦挖出来的比特币会不翼而飞。由于目前盗窃比特币的行为在法律上无法界定,所以矿池矿主卷走大家的比特币也是发生过的事情。
1. slushs pool
▲slushs pool
老牌矿池,拥有中文版用户界面,但界面并不友好。目前矿池总算力能够进入世界前十。
2. BTC Guild
▲BTC GUILD目前总算力最高的矿池之一
目前矿池总算力前三之一的矿池,大多数中国用户曾经或正在该矿池上挖比特币。网站界面友好,但最近国内连接该矿池由于网络的原因有些不稳定。
3.50BTC
▲50BTC
概况吃目前国内连接稳定,用户界面友好。但曾经在10月份的时候遇到过黑客攻击,丢失了用户的比特币,虽然50BTC已经全部承担了损失,但依旧流失了一些用户。
我们就以Slushs Pool作为例子,为大家简单介绍下如何才能成为一名合格的比特币矿工,首先打开Slush’s pool的官网:
。
▲第一步点击大大的注册按钮
Slush’s Pool的官网支持中文,不过看上去中文页面翻译水平有限,所以大家也不用在意,一步一步注册就好。
▲第二步填写信息
▲确认后得到矿工账号密码
用户名、密码、邮箱等填写完毕后,点击现在确认,邮箱内会收到一封确认注册的邮件。点击邮件内的确认连接就可以完成注册了。
▲登陆后界面
登录之后,你就可以看到你自己的账户和矿工的状态了。账户中有比特币地址这一项是为了将你挖出的比特币导出到这个账户中的,我们可以先不填写,先期先挖矿,后期比特币到达一定数量的时候,在选择一个交易平台将比特币导出(目前主流的交易平台为比特币中国等)。
接下来就是下载比特币挖矿软件开始挖矿了。文章的这一部分我们先介绍下PC端的挖矿软件,目前主流的挖矿软件为GUIMINER和CGMINER,其中GUIMINER界面较为友好,并且支持的矿池也算丰富。初学者可以选择该软件进行挖矿。GUIMINER下载地址:
▲可以选定中文
GUIMINER支持中文,用户可以点击语言—Chinese Simplified进行切换语言,重启后即可生效。
▲设置界面
只差最后一部就可以进行挖矿了。服务器选择你注册的矿池:Slush’s pool,用户名填写你矿工的用户名,密码填写矿工密码,每个用户可以设置多个矿工,分别登陆同时挖矿,这是为了方便用户多个设备同一账户同时挖矿的需求。设备方面可以选择处理器或者显卡,然后点击开始采矿。
▲18.3Mh/s的算力着实寒酸
连接成功后,软件的右下方就会显示出你目前的算力。笔者笔记本的Quadro K2000M算力仅为18MH/S左右,真是令人发指的低啊。不过此时,我们已经成为一个有理想有抱负有社会责任心的比特币矿工了。了解了如何挖矿后,我们进入今天文章的正题:旗舰手机实测挖比特币。
3.手机性能真的比肩PC?挖比特币试试。
前面我们也介绍了如何挖比特币和目前顶级矿机、顶级GPU和顶级CPU的挖矿能力了。接下来我们就来试试手机挖矿的实力到底如何,能否真的像现在传的那样性能比肩PC?
▲i7-3720算力简直弱爆了
首先,笔者用自己笔记本的处理器进行了挖矿,发现速率稳定在4MH/S左右,要知道笔者的处理器为Intel i7 3720qm,也算是去年笔记本电脑中的较高水平了。这个成绩真的是令人沮丧,那么手机的性能如何呢?我们先要在手机上安装ARM MINER这个软件。点击此处下载。
▲软件设置方法
进入ARM MINER软件后,点击SETTING界面后,在Algorithm(算法)中选择SHA-256,这种算法下手机处理器性能发挥更充分。Url则填写Slush’s Pool的API端口:。 User则填写矿工名称。Password则填写矿工密码。Threads选择最大。点击屏幕右上方的保存按钮就可以回到MINING界面点击Start开始挖矿了。
▲手机挖矿结果一览
▲手机挖矿结果一览
▲手机挖矿结果一览
通过测试,我们发现,搭载高通800处理器的Nexus5和LG G2突发算力在4MH/S,而搭载和小米3相同的Tegra4处理器的Nvidia Shield游戏机的突发算力和高通800处于相同水平。而搭载猎户座5410“4+4”核处理器的魅族MX3突发算力在3.6MH/S,而搭载高通APQ8064处理器的小米2S突发算力在3.3MH/S,而采用MT6589T的红米手机突发算力为1.7MH/S左右。但一旦开启挖矿软件,就会出现处理器迅速过热,从而主频下降,最终会导致算力下降严重。
通过测试,我们可以发现,单纯从挖掘比特币的运算能力上来看,目前ARM的顶尖处理器在突发运算能力上,已经和目前的主流英特尔处理器没有太大差别了。但是如果说ARM处理器目前就能够比肩PC处理器了是不准确的。由于ARM自身的定位就是低功耗高效率轻量级移动处理器,对于目前ARM处理器的崛起,与其说是ARM处理器性能的飞速发展,不如说目前消费者越来越重视移动处理,使得各大硬件软件厂商也开始重视对移动端处理器的优化和开发。不过近期ARM处理器性能要想真正赶超PC处理器,还是不可能的。
如果按照这个速度和目前的算力来讲,如果说要用手机挖出1个比特币的话,需要十几年甚至几十年,所以,想要靠手机挖比特币挣钱?这只是个美丽的传说。不过相信大家通过今天的文章,也简单的了解了比特币和如何开采比特币,这就够了。如果你和笔者一样没有一夜暴富的命,那就每天高高兴兴上班来,平平安安回家去吧。
三、比特币矿池的协议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协议的配合下,矿池终于可以大声的对矿工说,让算力来的更猛烈些吧。
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/184442.html


发表回复
评论列表(0条)