鍍金池/ 教程/ Linux/ 如何使用GPU和礦池挖礦?
創(chuàng)建安全多簽名錢包及高級設(shè)置
以太坊發(fā)展歷史回顧
如何使用CPU挖礦?
導(dǎo)入預(yù)售錢包,更新、備份、恢復(fù)賬號
錢包、以太幣、Gas介紹
公有鏈、聯(lián)盟鏈、私有鏈及網(wǎng)絡(luò)配置介紹
以太坊客戶端的選擇與安裝
以太坊社區(qū)、基金會、貢獻(xiàn)者介紹
以太坊賬戶管理
什么是挖礦和Ethash算法?
如何使用Homestead文檔及以太坊路線圖
如何使用GPU和礦池挖礦?
以太坊是什么?
Web 3:去中心化應(yīng)用平臺
什么是以太幣?如何獲取?
以太坊Go、Java、Python、Ruby、JS客戶端介紹
搭建測試網(wǎng)絡(luò)和私有鏈
以太坊C++客戶端的安裝與定制(一)

如何使用GPU和礦池挖礦?

文章出于:http://wangxiaoming.com/blog/2016/07/18/e20/

GPU挖掘

硬件

算法是內(nèi)存難解的,為了使DAG適合內(nèi)存,每個GPU需要1-2GB內(nèi)存,如果你得到錯誤提示:Error GPU mining. GPU memory fragmentation? 說明你沒有足夠的內(nèi)存。GPU挖礦軟件是基于OpenCL實(shí)現(xiàn)的,AMD GPU會比同一水準(zhǔn)的NVIDIA GPU更快。ASIC和FPGA相對低效因而被阻攔。要給芯片集成平臺獲取openCL,嘗試:

  • AMD SDK openCL
  • NVIDIA CUDA openCL

Ubuntu Linux設(shè)置

對于這個快速指南,你會需要Ubuntu 14.04或15.04以及fglrx圖像驅(qū)動器。你也可以使用NVidia驅(qū)動器和其他平臺,但是你必須要找到自己的方式來獲得有效的OpenCL安裝,比如Genoil的ethminer分叉。

如果你在用15.04,到"軟件與更新〉額外的驅(qū)動器"設(shè)置為"從fglrx為AMD圖形加速器使用視頻驅(qū)動器"。

如果你在用14.04,到"軟件與更新〉額外的驅(qū)動器"設(shè)置為"從fglrx為AMD圖形加速器使用視頻驅(qū)動器"。很遺憾,對于一些人來說,這種方法可能不管用,因?yàn)閁buntu 14.04.02中有個已知的程序錯誤會阻止你轉(zhuǎn)換到GPU挖礦所必須的專屬圖形驅(qū)動器。

所以,如果你遇到這個程序錯誤,先到"軟件與更新〉更新"選擇"預(yù)發(fā)行的可靠更新提議"。然后,回到"軟件與更新〉額外的驅(qū)動器"設(shè)置為"從fglrx為AMD圖形加速器使用視頻驅(qū)動器"。重啟之后,值得檢查一下現(xiàn)在確實(shí)正確安裝了驅(qū)動器(例如通過再到"額外驅(qū)動器")。

不管做什么,如果你在用14.04.02,一旦安裝之后,就不要改變驅(qū)動器或者驅(qū)動器配置。例如,aticonfig –initial的使用(尤其是-f, –force選項(xiàng))會"破壞"你的設(shè)置。如果你偶然改變了配置,會需要卸載驅(qū)動器,重啟,再次安裝驅(qū)動器并重啟。

Mac設(shè)置

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

查看冷卻狀態(tài):

aticonfig --adapter=0 --od-gettemperature

Windows設(shè)置

下載最新的Eth++安裝,在安裝界面的"選擇組件"頁面選擇ethminer。

http://wiki.jikexueyuan.com/project/ethereum/images/e20.png" alt="20" />

用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的默認(rèn)RPC端口)和geth溝通。你可以通過給geth—rpcport選項(xiàng)來改變這種情況。ethminer會在任何端口發(fā)現(xiàn)geth。注意你需要用—rpccorsdomain localhos設(shè)置CORS標(biāo)題。你也可以用-Fhttp://127.0.0.1:3301在ethminer設(shè)置端口。如果你想要在同一個電腦上挖幾個實(shí)例,設(shè)置端口是必需的,盡管有些沒有意義。如果你在私有鏈上測試,我們推薦你用CPU挖掘代替。

注意:你不需要把—mine選項(xiàng)給geth,或者在控制臺開啟挖礦,除非你想要在GPU挖掘頂端做CPU挖掘。

如果ethminer的默認(rèn)無效,試試用—opencl-device X來規(guī)定OpenCL裝置,其中X是{0, 1, 2,…}。用-M(基礎(chǔ)測試程序)運(yùn)行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

在單獨(dú)的GPU上挖礦

為了在單獨(dú)的GPU上挖礦,只需要用以下參數(shù)運(yùn)行eth:

eth -v 1 -a 0xcadb3223d4eebcaa7b40ec5722967ced01cfc8f2 --client-name "OPTIONALNAMEHERE" -x 50 -m
  • -v 1 將冗長的信息設(shè)置為1。不要被信息刷屏。
  • -a YOURWALLETADDRESS 設(shè)置挖礦獎勵會去的coinbase。以上地址只是一個例子。這一參數(shù)十分重要,確保不要在錢包地址出錯,否則會接收不到以太幣支出。
  • —client-name "OPTIONAL" 設(shè)置可選擇的客戶端名稱,在網(wǎng)絡(luò)上確定身份。
  • -x 50 請求大量的端點(diǎn)。幫助在開始找到端點(diǎn)。
  • -m on 在挖礦開啟的狀態(tài)下實(shí)際啟動。
  • -G 打開GPU挖掘。

客戶端運(yùn)行時,你可以用geth附屬或[ethconsole]和它互動(https://github.com/ethereum/ethereum-console)。

在多個GPU上挖礦

用多個GPU和eth挖礦與用geth和多個GPU挖礦十分相似。確保eth節(jié)點(diǎn)和正確設(shè)置的coinbase地址一起運(yùn)行: eth -v 1 -a 0xcadb3223d4eebcaa7b40ec5722967ced01cfc8f2 —client-name "OPTIONALNAMEHERE" -x 50 -j

注意我們也添加了-j參數(shù)以使客戶端有可用的JSON-RPC服務(wù)器與ethminer實(shí)例溝通。此外由于ethminer可以為我們挖礦,我們移除了與挖礦相關(guān)的參數(shù)。每個GPU都會執(zhí)行一個不同的ethminer實(shí)例:

ethminer --no-precompute -G --opencl-device X

X是索引號碼,與你想ethminer用{0, 1, 2,…}的OpenCL裝置一致。為了輕松獲取OpenCL裝置列表,你可以執(zhí)行ethminer —list-devices,它會提供一個OpenCL可以檢測到的所有裝置,以及每個裝置的一些附加信息。

下面是一個樣本輸出:

[0] GeForce GTX 770
CL_DEVICE_TYPE: GPU
CL_DEVICE_GLOBAL_MEM_SIZE: 4286345216
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 1071586304
CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024

最終—no-precompute參數(shù)請求ethiminers不要提前創(chuàng)建下一個epoch的DAG。盡管不推薦這樣,因?yàn)槊看蝒poch過渡的時候,你都會有一個挖礦中斷。

基準(zhǔn)測試程序

挖礦能力通常以內(nèi)存帶寬衡量。我們的實(shí)現(xiàn)寫在OpenCL上,很典型地在NVidia上被AMD GPU支持得更好。實(shí)驗(yàn)證據(jù)確認(rèn)了在價格方面,AMD GPU比對應(yīng)的NVidia挖礦表現(xiàn)更好。

用基準(zhǔn)程序測試單一裝置設(shè)置,你可以在基準(zhǔn)測試程序模式下通過-M使用ethminer。

ethminer -G -M

如果你有很多裝置,你會喜歡分別用基準(zhǔn)程序測試,可以用–opencl-device選項(xiàng),與之前章節(jié)相似: ethminer -G -M —opencl-device X 用ethminer —list-devices來列出可能的數(shù)字替代X {0, 1, 2,…}。 開始在Windows上挖礦,首先要下載geth windows binary。

  • 解壓縮Geth (單擊右鍵選擇打開),啟用命令提示符。用cd 導(dǎo)航到 Geth數(shù)據(jù)文件夾的位置(例如cd / 到C: 盤)
  • 輸入geth —rpc開啟geth。 進(jìn)入以后,以太坊區(qū)塊鏈會開始下載。有時候防火墻肯能會阻止同步進(jìn)程(阻止時會有提示)。如果被阻止,點(diǎn)擊"允許進(jìn)入"。
  • 首先下載安裝ethminer, C++挖礦軟件 (防火墻或Windows本身可能會有反應(yīng),允許進(jìn)入)
  • 打開另一個命令提示符 (保持第一個運(yùn)行!)輸入cd/Program Files/Ethereum(++)/release改變目錄。
  • 確保eth完成區(qū)塊鏈同步。如果同步不再進(jìn)行,就可以在命令提示符輸入ethminer -G開啟挖礦進(jìn)程。

此時可能會出現(xiàn)一些問題。如果有錯誤發(fā)生, 可以輸入Ctrl+C來中斷礦工。如果錯誤顯示(提示)"內(nèi)存不足",就說明沒有足夠的GPU內(nèi)存來挖以太幣。

礦池挖礦

礦池挖礦是旨在通過聯(lián)合參與礦工的挖礦力來解決預(yù)期收益問題的合作社(挖礦的礦工的算力來解決預(yù)期收益問題的合作組織)。作為回報,通常收取0-5%的挖礦獎勵。挖礦池從中央賬戶用工作量證明提交區(qū)塊并按照參與人貢獻(xiàn)的挖礦力比例來重新分配獎勵。

警告:大多數(shù)挖礦池包含第三方,中心組件,意味著他們是不需信任的。換言之,挖礦池操作人可以把你的收入拿走。謹(jǐn)慎操作。有很多具備開源數(shù)據(jù)庫、不需信任的、去中心化的挖礦池。

警告:挖礦池只會外包工作量證明運(yùn)算,他們不會使區(qū)塊生效或運(yùn)行虛擬機(jī)來檢查執(zhí)行交易帶來的狀態(tài)過渡。 這能有效地使挖礦池在安全方面像單個節(jié)點(diǎn)一樣表現(xiàn),他們的增長會造成51%攻擊的中心化威脅。確保遵守網(wǎng)絡(luò)能力分配,不要讓挖礦池長得太大。

礦池

  • coinotron
  • nanopool
  • ethpool — 可預(yù)測的單獨(dú)挖礦,非常規(guī)支出機(jī)制,附屬于etherchain.org。
  • supernova
  • coinmine.pl
  • eth.pp.ua
  • talkether — 非常規(guī)支出機(jī)制,部分去中心化
  • weipool
  • ethereumpool
  • pooleum
  • alphapool
  • cryptopool
  • unitedminers
  • dwarfpool — 盡量避免(目前超過網(wǎng)絡(luò)的50%)
  • laintimes — 停止使用

挖礦相關(guān)資源匯總

  • 過去24小時以太幣鏈上領(lǐng)先的礦工
  • 2015年8月挖礦池散表率分配
  • 論壇上未維護(hù)的挖礦池列表
  • cryptocompare上的挖礦盈利能力計(jì)算器
  • cryptowizzard上的挖礦盈利能力計(jì)算器
  • etherscan上的挖礦盈利能力計(jì)算器
  • In The Ether上的挖礦盈利能力計(jì)算器
  • etherscan上的挖礦難度表

POS vs POW

參考資料:

文章中的列表對應(yīng)的鏈接可以參考《Ethereum Homestead Documentation》第67頁1.6.4 GPU mining