主页 > token.im钱包下载 > 以太坊如何使用 CPU 挖矿?
以太坊如何使用 CPU 挖矿?
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() 取消挖掘。
为了赚取以太币,你必须有一个 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ΞΞ")
...
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'
为了将您赚取的汽油用于交易,您需要解锁账户。
> 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 &