什么是挖掘和Ethash算法?挖掘和Ethash算法简介
我们都知道加密货币这几年发展的很好。很多人都很关注加密货币,其中比特币是最成功的虚拟货币。最近很多人都在讨论挖矿计算市场。下面小编带你了解什么是挖掘和Ethash算法?希望边肖的内容能对你有所帮助。
挖矿这个词来源于加密货币和黄金的类比。黄金或贵金属是稀有的,电子代币也是。增加总量的唯一办法就是挖矿。以太坊也是一样,唯一的发行方式就是我的。但与其他例子不同的是,采矿也是保护网络的一种方式,在区块链创建、核实、发布和传播区块。
什么是挖矿?以太坊和所有区块链技术一样,使用激励驱动的安全模型。共识是基于选择总难度最高的方块。矿工创造区块,其他人来测试有效性。块仅在包含特定难度的工作量时有效,并且存在其他合格条件。请注意,以太坊宁静的里程碑可能会被取代(参考权益证明的模式)。
以太坊区块链在很多方面与比特币区块链相似,但也有些不同。在区块链架构方面,以太坊和比特币的主要区别在于,与比特币不同的是,以太坊块不仅包含事务列表,还包含最新状态(merklepatricia结构的根哈希表代码在状态中更准确)。此外,块的数量和难度这两个值也存储在块中。
使用的工作量证明算法称为ethash(Dag-Hashimoto算法的改进版本),包括寻找算法的随机数输入,使结果低于特定的难度阈值。工作量证明算法的意义就是找到这样一个随机数。没有比列举可能性更好的策略了,对解的验证是琐碎而廉价的。因为输出是均匀分布的(哈希表函数应用的结果),所以我们可以保证,平均起来,找到这样一个随机数的时间取决于难度阈值。。这使得仅通过操纵难度来控制寻找新块的时间成为可能。
如协议所述,动态调整难度的方式是全网每15秒生成一个块。我们说网络产生一个区块链需要15秒。。这';心跳';基本上强调系统状态同步,保证除非攻击者拥有一半以上的网络挖掘能力(所谓的51%攻击),否则不可能维持分叉(允许双花)或者被恶意分子重写。
任何参与网络的节点都可能是一个挖掘者,期望的挖掘收益与他们的(相对)挖掘能力成正比,比如用网络的总离散度标准化的每秒尝试的随机数个数。实践证明,Ethash工作负载很难在内存中解决。这使得它对ASIC有抵抗力。内存困难通过工作量证明算法实现,需要依靠随机数和块标题选择固定资源的子集。这种资源(数十亿字节的数据)称为DAG。每3000个数据块的DAG完全不同。125小时的窗口称为历元(大约5.2天),需要一点时间来生成。因为DAG只由块的高度决定,所以可以由老师创建。如果它不是由教师创建的,客户端需要等到过程结束才能生成块。。如果客户端没有预先生成和缓存DAG,网络可能会在每个时期转换时经历大的块延迟。注意,不一定要生成DAG来验证工作量证明,在CPU低内存小的状态下,特殊情况下也可以验证。当您从头开始创建节点时,您将仅在为现有epoch创建DAG时开始挖掘。
获胜区块的成功工作量证明矿工将获得
';获奖';块,包括5.0(5)以太币。
花费在街区的燃气费用——一定数量的以太币,视当前燃气价格而定
额外奖励大叔大叔,形式为每个大叔大叔街区包含额外的1/32
。在区块中执行并由获胜矿工提交的所有交易消耗的天然气由每个交易的发送者支付。产生的天然气成本归因于矿工';作为共识协议的一部分。随着时间的推移,这将使数据块奖更小。。挖掘的成功与否取决于设定的区块难度。块难度动态调整每个块,以指定创建12秒块时间的网络哈希能力。因此,找到块的机会由与难度相关的散列率产生。
Ethash使用DAG(有向无环图)进行工作负载证明算法,该算法针对每个epoch生成,例如,每3000个块(125小时,约5.2天)。DAG需要很长时间才能生成。如果客户端仅按需生成它然后,在找到新时段的第一块之前,每个时段转换将不得不等待很长时间。而DAG只取决于块数,所以可以提前计算,避免每次历元过渡等待时间过长。。Geth和ethminer执行自动DAG生成,一次维护两个DAG以实现平滑的时期过渡。当从控制台控制挖掘时,将打开和关闭自动DAG生成。如果geth是用-—mine选项启动的,默认情况下它也是打开的。。请注意,客户端共享DAG资源。如果运行任何客户端的多个实例,请确保仅在一个实例中打开自动DAG生成。
generateDAGforanygeneration:instancegethmakedag360000~/.ethash.。请注意,ethash使用~/。ethash(Mac/Linux)或~/AppData/Ethash(Windows)forDAG,这样就可以在不同的客户端实现和多个运行实例之间共享。我们的算法Ethash(原名Dagger-Hashimoto)基于一个大型的、瞬时的、任意生成的数据集,形成一个Dag(Dag-part),试图解决一个特定的约束,这个约束部分由块头的hash决定。。
它是为了在只有慢速CPU的环境下哈希快速验证时间而设计的,但是在配备大量高带宽内存的情况下,它为挖掘提供了大量的加速。大量的内存需求意味着大规模挖矿者获得的超线性收益相对较少。。高带宽需求意味着在许多超速处理单元中共享相同存储器的加速对每个单独的单元几乎没有好处。
没有节点验证的好处,阻碍了集中化。这在采矿中非常重要。外部挖掘应用程序与以太坊指定和提交的后台程序之间的通信通过JSON-RPCAPI进行。提供两个RPC函数;Eth_getWork和eth_submitWork。这些都是官方记录下的矿工';JSON-RPCAPI维基百科文章中的条目。为了挖掘,你需要一个完全同步的以太坊客户端和至少一个以太坊账号。该账号用于发送挖矿奖励,通常被称为货币基或以太基。。见';创建帐户';部分,了解如何创建帐户。
警告:在开始采矿之前,请确保区块链和主链完全同步,否则您可能';主链上没有地雷。以上是边肖为您整理的挖矿和Ethash算法的具体信息。