以太坊如何使用CPU挖矿?

CPU挖掘

你能够用电脑的中央处理器(CPU)挖以太币。自从GPU矿工的效率高出两个数量级,它就再也不盈利了。然而你能够用CPU挖掘在Morden测试网或私有链上挖矿,以便建立你测试合约和交易所须要的以太币, 而无需花费实时网络上的真实以太币。web

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

使用geth

用geth启动以太坊节点时,并非默认挖掘。在CPU挖掘模式开启,你会用—mine命令行选项。-minerthreads参数能够用于设置平行于挖掘线程的数量(默认为处理器核心的总数)。网络

geth --mine --minerthreads=4

你也能够在执行期间用控制台开启或中止CPU挖掘。miner.start取一个矿工线程数量的可选参数。cors

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

注意挖掘真实以太币只有在你与网络同步时才有意义(因为你是在共识区块顶部挖矿)。所以以太区块链下载器/同步器会延迟挖掘直到同步完成,此后挖掘自动开始,除非你用miner.stop()取消挖矿。dom

为了赚取以太币,你必须有etherbase(或coinbase)地址集。这个etherbase默认为你的第一个帐户。若是你没有etherbase地址,geth –mine就不会开启。ide

你能够在命令行从新设置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没必要是本地帐户地址,只要是现存的就能够。spa

有一个给你挖掘过的区块添加额外数据的选项(只有32字节)。按照惯例,它被解释为统一码字符串,你能够设置短时间虚荣标签。命令行

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

你能够用miner.hashrate检查散表率,结果用H/s表示(每秒散表操做)。

> miner.hashrate 712000

成功挖掘一些区块之后,你能够检查etherbase帐户中的以太币余额。如今假定你的etherbase是个本地帐户:

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

为了花费你赚的gas来交易,你须要解锁帐户。

> personal.unlockAccount(eth.coinbase) Password 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) {  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 &
相关文章
相关标签/搜索