以太坊如何使用GPU和矿池挖矿?

GPU挖掘

硬件

算法是内存难解的,为了使DAG适合内存,每个GPU需要1-2GB内存,如果你得到错误提示:Error GPU mining. GPU memory fragmentation? 说明你没有足够的内存。GPU挖矿软件是基于OpenCL实现的,AMD GPU会比同一水准的NVIDIA GPU更快。ASIC和FPGA相对低效因而被阻拦。要给芯片集成平台获取openCL,尝试:

  • AMD SDK openCL
  • NVIDIA CUDA openCL

Ubuntu Linux设置

对于这个快速指南,你会需要Ubuntu 14.04或15.04以及fglrx图像驱动器。你也可以使用NVidia驱动器和其他平台,但是你必须要找到自己的方式来获得有效的OpenCL安装,比如Genoil的ethminer分叉。

如果你在用15.04,到"软件与更新〉额外的驱动器"设置为"从fglrx为AMD图形加速器使用视频驱动器"。

如果你在用14.04,到"软件与更新〉额外的驱动器"设置为"从fglrx为AMD图形加速器使用视频驱动器"。很遗憾,对于一些人来说,这种方法可能不管用,因为Ubuntu 14.04.02中有个已知的程序错误会阻止你转换到GPU挖矿所必须的专属图形驱动器。

所以,如果你遇到这个程序错误,先到"软件与更新〉更新"选择"预发行的可靠更新提议"。然后,回到"软件与更新〉额外的驱动器"设置为"从fglrx为AMD图形加速器使用视频驱动器"。重启之后,值得检查一下现在确实正确安装了驱动器(例如通过再到"额外驱动器")。

不管做什么,如果你在用14.04.02,一旦安装之后,就不要改变驱动器或者驱动器配置。例如,aticonfig –initial的使用(尤其是-f, –force选项)会"破坏"你的设置。如果你偶然改变了配置,会需要卸载驱动器,重启,再次安装驱动器并重启。

Mac设置

wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.29_mac.pkg
sudo installer -pkg ~/Desktop/cuda_7.0.29_mac.pkg -target /
brew update
brew tap ethereum/ethereum
brew reinstall cpp-ethereum --with-gpu-mining --devel --headless --build-from-source

查看冷却状态:

aticonfig --adapter=0 --od-gettemperature

Windows设置

下载最新的Eth++安装,在安装界面的"选择组件"页面选择ethminer。


用geth使用ethminer

eth account new // Set-up ethereum account if you do not have one
geth --rpc --rpccorsdomain localhost 2>> geth.log &
ethminer -G // -G for GPU, -M for benchmark
tail -f geth.log

ethminer在端口8545(geth的默认RPC端口)和geth沟通。你可以通过给geth—rpcport选项来改变这种情况。ethminer会在任何端口发现geth。注意你需要用—rpccorsdomain localhos设置CORS标题。你也可以用-Fhttp://127.0.0.1:3301在ethminer设置端口。如果你想要在同一个电脑上挖几个实例,设置端口是必需的,尽管有些没有意义。如果你在私有链上测试,我们推荐你用CPU挖掘代替。

注意:你不需要把—mine选项给geth,或者在控制台开启挖矿,除非你想要在GPU挖掘顶端做CPU挖掘。

如果ethminer的默认无效,试试用—opencl-device X来规定OpenCL装置,其中X是{0, 1, 2,…}。用-M(基础测试程序)运行ethminer时,你会看到这样的文字:

Benchmarking on platform: { "platform": "NVIDIA CUDA", "device": "GeForce GTX 750 Ti", "version": "OpenCL 1.1 CUDA" }
Benchmarking on platform: { "platform": "Apple", "device": "Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.7

为geth排错:

geth --rpccorsdomain "localhost" --verbosity 6 2>> geth.log

为矿工排错:

make -DCMAKE_BUILD_TYPE=Debug -DETHASHCL=1 -DGUI=0
gdb --args ethminer -G -M

注意:GPU挖矿时,散列率信息在geth上不可用。

用ethminer检查散列率,miner.hashrate总会报告0。

用eth使用ethminer

在单独的GPU上挖矿

为了在单独的GPU上挖矿,只需要用以下参数运行eth:

eth -v 1 -a 0xcadb3223d4eebcaa7b40ec5722967ced01cfc8f2 --client-name "OPTIONALNAMEHERE" -x 50 -m
  • -v 1 将冗长的信息设置为1。不要被信息刷屏。
  • -a YOURWALLETADDRESS 设置挖矿奖励会去的coinbase。以上地址只是一个例子。这一参数十分重要,确保不要在钱包地址出错,否则会接收不到以太币支出。
  • —client-name "OPTIONAL" 设置可选择的客户端名称,在网络上确定身份。
  • -x 50 请求大量的端点。帮助在开始找到端点。
  • -m on 在挖矿开启的状态下实际启动。
  • -G 打开GPU挖掘。

客户端运行时,你可以用geth附属或[ethconsole]和它互动(https://www.reddit.com/r/ethereum/comments/38db1z/eli5_the_difference_between_pos_and_pow/

https://www.reddit.com/r/ethereum/comments/42o8oy/can_someone_explain_the_switch_to_pos_how_and_when/

参考资料:

文章中的列表对应的链接可以参考《Ethereum Homestead Documentation》第67页1.6.4 GPU mining

猜你喜欢

转载自blog.csdn.net/metal1/article/details/80996522