主页 > imtoken钱包下载2.0版本 > 挖掘以太坊分析

挖掘以太坊分析

imtoken钱包下载2.0版本 2023-05-20 06:36:35

以太坊简介

以太坊(Ethereum)是一个建立在区块链技术之上的去中心化应用平台。它允许任何人在平台上构建和使用在区块链技术上运行的去中心化应用程序。

共识机制

区块链是一种去中心化的分布式账本。去中心化意味着区块链网络中的每个节点都是去中心化的、独立的,同时必须保证整体的一致性(包括数据和行为)。这是共识。一种在事物顺序上达成共识的算法。

区块链中的情况非常复杂,节点数量众多,每个节点的网络状况都不一样。会有很多恶意节点试图从中获取私有财产。如何保证整个区块链网络的正常稳定运行?共识机制是关键部分。

区块链共识机制的经典问题之一是拜占庭将军问题。通过理解这个问题,可以更好的理解区块链和比特币挖矿的运行机制。

拜占庭将军问题描述如下:

拜占庭帝国欲攻打强敌,派出十军包围敌人。这个敌人,虽然不比拜占庭帝国大,但足以抵御5支拜占庭正规军的同时攻击。10个军队在不同的包围圈中同时进攻。仅凭他们的任何一支军队都没有获胜的机会,除非至少有6支军队(超过一半)同时进攻以击倒敌国。他们分散在敌国各地,依靠信号兵在马背上相互沟通,协商出击的意图和出击的时机。困扰这些将领的问题是,他们无法确定其中是否有叛徒,而叛徒可以擅自改变进攻的意图或时机。在这种状态下,

详情请参阅

为了解决拜占庭将军问题,比特币创造性地引入了工作量证明(POW:Proof of Work)。工作量证明增加了发送信息的成本,降低了节点发送消息的速率,从而保证一次只有一个(或极少数)节点在广播,同时会附上自己的签名广播时。

拜占庭将军问题在 POW 方案中有几个条件:

1.A将军正在向其他将军(B、C、D……)发起进攻提议,将军B、C、D……见将军A签署的进攻提议,如果是诚实的将军将立即同意进攻性提议,不会发起他自己的新进攻性提议。

2. 假设攻占一座城堡需要多次攻击,那么每次攻击的提议必须基于之前最成功的攻击(只有这样敌人已经输得最多,而我方攻击获胜的可能性)将减少)更大),在这个协议之后,当A将军收到一个进攻性提案时,他会检查该提案是否基于最多胜利。如果不是(基于最多的胜利),A 将军不会同意这样的提议,如果是,A 将军会否决该提议。

工作量证明实际上相当于增加了成为叛徒(发布虚假区块)的成本。在工作量证明下,只有完成证明的第一个节点才能广播该块。比赛难度很大,需要很高的算力。如果不成功,它的算力就会白白浪费(算力需要成本)。如果有诚实节点这样的算力,也能得到很多好处(这就是矿工做的),这其实也没有做叛徒的动机,整个系统更加稳定因为这。

许多人批评工作量证明造成了巨大的电力浪费,促使人们探索新的共识机制。目前主要的共识机制算法有:

以太坊挖矿

当共识机制使用 POW 工作量证明算法时,那么区块链网络中的节点需要提供计算能力来竞争区块,从而维持区块链的运行,系统也会给某些节点竞争区块. 奖励矿池算力查询,这个过程形象地称为挖矿,而这些竞争者也被称为旷工。

矿池算力查询_蚂蚁矿池btc矿池_siteshilian.com 以太坊矿池算力

以太坊的发布分为四个阶段,分别是Frontier(前沿)、Homestead(家)、Metropolis(大都会)和Serenity(宁静)。前三个阶段,以太坊共识算法采用工作量证明机制(POW),第四阶段将切换到权益证明(POS)。所以现阶段以太坊还处于POW阶段。

如果你熟悉以太坊的历史,就可以知道以太坊是通过比特币众筹(即ICO)发行的。在从 2014 年 7 月 24 日开始的 42 天众筹期间,以太坊众筹地址共收到来自 8,892 个唯一地址的 8,947 笔交易(两个地址在众筹期间之外付款)。,所以这两个地址不能赚取以太币)。通过本次众筹,以太坊项目组筹集了 31,529.356,395,51BTC,当时价值约 $1800w,0.8945BTC 被销毁,1.7898BTC 用于支付比特币交易的矿工费。同时,以太坊发布后,需要向众筹参与者支付共计 60,108,506.26 Ether。2015年7月30日,众筹成功一年后,以太坊正式发布。创世块包含 8893 笔交易。因此,并非以太坊中的所有以太币都是由矿工开采的。在创建时已经创建了大约 7200 万个以太币。您可以在以下位置查看以太币的发行:

截至 2018 年 5 月 25 日,以太币总数为 99,647,528.78 个,其中 72.3 个包含在创世区块中,挖矿产生的以太币仅占不到四一部分。

以太坊在 12 秒内生成一个块。以太坊的奖励机制是:区块奖励+叔块奖励+叔块参考奖励。详细情况如下:

正常区块奖励:

固定奖励5ETH,每个普通区块有

区块中所有程序的gas费用总和

如果普通区块包含叔块,每个叔块可以获得5ETH固定奖励的1/32,即0.15625ETH。

大叔块奖励:

叔块的奖励计算有点复杂,公式为:

叔块奖励 = (叔块高度 + 8 - 包含叔块的块高度) * 正常块奖励 / 8

具体参考

此外,与比特币不同,以太币的发行总量是有上限的。但以太坊后期也会转为POS,避免无休止的算力竞争。

图形处理器

GPU(英文:Graphics Processing Unit,图形处理器)矿池算力查询,又称显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像计算工作的微处理器.)。设备。GPU 的大部分工作都是计算密集型的,需要重复多次,非常适合挖矿。

蚂蚁矿池btc矿池_矿池算力查询_siteshilian.com 以太坊矿池算力

目前,像比特币、以太坊这样的 POW 算法都是高度重复的计算任务,GPU 比 CPU 具有更多的计算能力优势。CPU作为通用计算单元,设计了分支预测单元、寄存器单元等很多模块,对提升计算能力毫无帮助。CPU根本不擅长执行并行操作,一次最多可以执行十几个任务。这与拥有数千个流处理器的 GPU 相去甚远。GPU太高了,所以大家慢慢为GPU开发了对应的GPU。用于挖掘的挖掘算法。

计算能力

我们之前一直提到计算能力。算力是衡量矿机算力和计算性能的指标,具体表示矿机整体哈希算法每秒的运算次数。算力的单位是Hash/s,一般表示为KHash/s、MHash/s:

1 KHash/s = 1000 哈希/s

1 MHash/s = 1000 KHash/s

1 GHash/s = 1000 MHash/s

1 THash/s = 1000 GHash/s

1 PHash/s = 1000 THash/s

挖矿的本质是解决一个数学计算。谁先算出来,谁就得到奖励(硬币)。这种数学计算方法也很简单,就是不断尝试与结果进行碰撞。就像你暴力破解一个手机密码(假设多次尝试后手机不会被锁定),你从111111~99999不断尝试密码直到你解锁成功,如果你能在1内尝试你的计算第二。功率为 1 次/秒。您可以在 1 秒内尝试两次。你的计算能力是2次/秒。1秒内尝试的次​​数越多,你的算力就越多,解锁的时间就越少。矿机也是如此。矿机1秒内能计算出的哈希算法越多,

不同币种的挖矿算法不同。比特币使用 sha256 算法,莱特币使用 scrypt 算法,以太坊使用 Ethash 算法,因此未使用的货币之间的计算能力彼此无关。

矿池

随着区块链的普及,比特币、以太坊等全网算力呈指数级增长,单机挖矿(单机挖矿)几乎不可能获得收益,个人只能加入矿池。共享利益。

一个矿池将分散在世界各地的矿工和矿场的算力连接起来,共同挖矿。矿池负责信息打包,入局矿场负责争夺记账权。由于聚集了众多矿工的算力,矿池算力占比较大,挖出一个区块的概率较高。矿池产生的奖励将按照每个矿工贡献的算力比例进行分配。与单独挖矿相比,加入矿池可以获得更稳定的收益。

支持以太坊的矿池有

用 CPU 挖以太坊

用CPU挖以太,因为效率和效率太低,现阶段很难挖,所以这里只是一个例子,本文是在Linux环境下进行的:

siteshilian.com 以太坊矿池算力_矿池算力查询_蚂蚁矿池btc矿池

首先将以太坊区块链与 geth 同步:

$ nohup geth \

--fast --cache=1024 \

--datadir=public_fast \

1>>eth_public_fast.log 2>>eth_public_fast.log &

同步过程运行后,您可以打开另一个窗口登录控制台:

$ geth 附加 public_fast/geth.ipc

欢迎来到 Geth JavaScript 控制台!

实例:Geth/v1.7.2-stable-1db4ecdc/linux-amd64/go1.9.2

模块:管理员:1.0 调试:1.0 eth:1.0 矿工:1.0 网络:1.0 个人:1.0 rpc:1.0 txpool:1.0 web3:1.0

>

同步需要很长时间。同步状态可以通过web3.eth.syncing查询。当 web3.eth.syncing 返回 false 时,同步完成:

> 网络3.eth.syncing

错误的

> 网络3.eth.blockNumber

5671651

蚂蚁矿池btc矿池_矿池算力查询_siteshilian.com 以太坊矿池算力

在挖矿之前,您需要有一个帐户。如果您没有,您可以创建一个帐户并将其设置为挖矿帐户。

> 网页3.personal.newAccount("密码")

“0xa736b7dc09ab53c07b01c6e23b18d2e92271d4f3”

> 网络3.eth.coinbase = "0xa736b7dc09ab53c07b01c6e23b18d2e92271d4f3"

开始挖矿,设置24个线程

> miner.start(24)

空值

挖矿开始后,可以查看日志:

INFO [05-25|09:09:56] 更新了挖矿线程threads=24

INFO [05-25|09:09:58] Commit 新的挖矿工作 number=5671670 txs=59 uncles=0 elapsed=120.660ms

您可以通过名称查询您是否正在挖矿:

> 网络3.eth.mining

真的

使用 GPU 挖掘以太坊

目前GPU单人挖矿都很难挖,建议加入矿池。本文使用Linux系统进行挖矿。机器的显卡必须是 NVIDIA 或 AMD。这篇文章是英伟达。可以使用命令查询:

$ lspci | grep -i vga

蚂蚁矿池btc矿池_矿池算力查询_siteshilian.com 以太坊矿池算力

04:00.0 VGA 兼容控制器:NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)

0b:00.0 VGA 兼容控制器:Matrox Electronics Systems Ltd. G200eR2

42:00.0 VGA 兼容控制器:NVIDIA Corporation GP104 [GeForce GTX 1070] (rev a1)

本文加入fishpond F2POOL,先下载挖矿软件Bminner

$ wget

$ tar xvf bminer -v8.0.0-32928c5-amd64.tar.xz

$ cd bminer -v8.0.0-32928c5

然后运行:

$ ./bminer \

-uri ethproxy://0xa736b7dc09ab53c07b01c6e23b18d2e92271d4f3.woker1@eth.f2pool.com:8008

具体参考

挖矿进程运行后,可以查询NVIDIA GPU的运行状态:

如果操作正常,可以在矿池页面查询账户信息:

参考

关于作者 吴龙辉,《Kubernetes in Action》作者,活跃于技术开源社区,贡献代码,撰写技术文档。

邮箱:wlh6666@qq.com