主页 > token.im钱包下载 > 以太坊如何使用 CPU 挖矿?

以太坊如何使用 CPU 挖矿?

token.im钱包下载 2023-02-25 07:47:00

CPU挖矿

您可以使用计算机的中央处理器 (CPU) 开采以太币。 由于 GPU 矿工的效率提高了两个数量级以太坊cpu挖矿,因此它不再有利可图。 但是,您可以在 Morden 测试网或私有链上使用 CPU 挖掘来创建测试合约和交易所需的以太币,而无需在实时网络上花费真实的以太币。

注意:测试网以太币除了用于测试目的外没有任何价值。

使用geth

使用 geth 启动以太坊节点时,默认不挖矿。 要启用 CPU 挖矿模式,您可以使用 --mine 命令行选项。 -minerthreads 参数可用于设置并行挖掘线程的数量(默认为处理器内核总数)。

geth --mine --minerthreads=4

您还可以在执行期间使用控制台启动和停止 CPU 挖矿。 miner.start 采用矿工线程数的可选参数。

> miner.start(8)
true
> miner.stop()
true

请注意,如果您与网络同步,则挖掘真正的以太币才有意义(因为您是在共识区块之上挖掘)。 所以以太坊区块链下载器/同步器延迟挖掘直到同步完成,之后挖掘自动开始,除非你用 miner.stop() 取消挖掘。

以太坊cpu挖矿_以太坊挖矿全教程_n卡以太坊挖矿教程

为了赚取以太币,你必须有一个 etherbase(或 coinbase)地址集。 此 etherbase 默认为您的第一个帐户。 如果你没有 etherbase 地址,geth --mine 将不会启动。

您可以从命令行重置 etherbase:

geth --etherbase 1 --mine 2>> geth.log // 1 is index: second account by creation order OR
geth --etherbase '0xa4d8e9cae4d04b093aac82e6cd355b6b963fb7ff' --mine 2>> geth.log

您还可以在控制台中重置 etherbase:

miner.setEtherbase(eth.accounts[2])

请注意,您的 etherbase 不必是本地帐户地址以太坊cpu挖矿,只要它是现有的即可。

有一个选项可以将额外数据(仅 32 字节)添加到您开采的区块中。 按照惯例,它被解释为 Unicode 字符串,您可以设置短期虚荣标签。

miner.setExtra("ΞTHΞSPHΞΞ")
...

以太坊cpu挖矿_以太坊挖矿全教程_n卡以太坊挖矿教程

debug.printBlock(131805) BLOCK(be465b020fdbedc4063756f0912b5a89bbb4735bd1d1df84363e05ade0195cb1): Size: 531.00 B TD: 643485290485 { NoNonce: ee48752c3a0bfe3d85339451a5f3f411c21c8170353e450985e1faab0a9ac4cc Header: [ ... Coinbase: a4d8e9cae4d04b093aac82e6cd355b6b963fb7ff Number: 131805 Extra: ΞTHΞSPHΞΞ ...

以太坊挖矿全教程_以太坊cpu挖矿_n卡以太坊挖矿教程

}

您可以使用 miner.hashrate 查看哈希率,结果以 H/s(每秒哈希操作数)表示。

> miner.hashrate
712000

成功挖出一些区块后,可以查看etherbase账户中的以太币余额。 现在假设您的 etherbase 是本地帐户:

> eth.getBalance(eth.coinbase).toNumber();
'34698870000000'

为了将您赚取的汽油用于交易,您需要解锁账户。

> personal.unlockAccount(eth.coinbase)
Password

n卡以太坊挖矿教程_以太坊挖矿全教程_以太坊cpu挖矿

true

您可以在控制台上使用以下代码片段检查特定矿工(地址)开采了哪个区块:

function minedBlocks(lastn, addr) {
  addrs = [];
  if (!addr) {
    addr = eth.coinbase
  }
  limit = eth.blockNumber - lastn
  for (i = eth.blockNumber; i >= limit; i--) {
    if (eth.getBlock(i).miner == addr) {

以太坊挖矿全教程_n卡以太坊挖矿教程_以太坊cpu挖矿

addrs.push(i) } } return addrs } // scans the last 1000 blocks and returns the blocknumbers of blocks mined by your coinbase // (more precisely blocks the mining reward for which is sent to your coinbase). minedBlocks(1000, eth.coinbase); //[352708, 352655, 352559]

请注意,经常会发生找到一个块但无法将其制成规范链的情况。 这意味着你在本地包含挖出的区块,当前状态会显示归属于你账户的挖矿奖励,但是过一段时间后,会找到更好的链,我们切换到不包含你的块的链,所以没有挖矿奖励将记入贷方。 因此,很有可能矿工在监控coinbase余额时,会发现它出现了相当大的波动。

nohup geth --nodiscover  --identity "meiguo110"  --rpc  --rpccorsdomain "*" --datadir /data/ethbase --port "30303"  --rpcapi "db,net,personal,web3,eth,debug" --networkid 314590 -rpcaddr 172.26.0.3 --rpcport 8545 --mine --minerthreads=1 &