跳到主要內容

使用更穩定快速的 Ubuntu Server 作業系統挖礦 (XMR / ETN)、Compile XMR Stak 教學



一般挖礦可能都是使用 Windows 7 或 Windows 10 作為系統,但其實 Win 系列向來都有穩定性不足的問題,而且如果對於慣用 Linux 的人來說使用起來應該會覺得非常、非常麻煩,自訂性非常的差、一堆莫名其妙的進程關都不關不掉,更不要說使用的如果不是專業版的 Windows 還會碰到莫名其妙的亂更新、亂重組硬碟和一堆有的沒的系統維護排程,這對於應該 24HR 全速運轉的礦機來說是非常不必要也會造成收益的損失。

那要挑選哪個 Linux 系統呢?其實先前有介紹過「Hive OS」這個專為礦機所設計的 Linux 發行版,但有人回饋說這個系統的穩定度也是不太 OK,那就得回歸古法來使用 Ubuntu 或習慣的發行版了,其中更適合的是安裝「無 GUI」的作業系統,因為老實說礦機並不需要圖形介面輸出更不需要外接螢幕來浪費電,那能直接使用 SSH (或不習慣的人可以用 VNC) 操控是最好的,所以就選擇了 Ubuntu Server 來做操作。


Ubuntu 作業系統的安裝可以參考這篇,並且記得改為下載 Ubuntu Server 的 ISO 檔。



挖礦程式


XMR Stak
GitHub: https://github.com/fireice-uk/xmr-stak 
那又會以 CryptoNight 算法的挖礦程式 XMR Stak 作為範例,這個挖礦程式在先前已經介紹非常多遍了,可以拿來挖 Monero、Electroneum ...等匿名加密貨幣,也會自行 Compile 無手續費的版本讓挖礦收益能最大化。



建置環境


CUDA Toolkit: https://developer.nvidia.com/cuda-downloads
APP SDK: https://developer.amd.com/amd-accelerated-parallel-processing-app-sdk
首先在 Ubuntu 的環境需要先安裝「CUDA 8.0+」(Nvidia GPU) 或「APP SDK 3.0」(AMD GPU),這邊會以 Nvidia 的來做示範,只要安裝和自己顯卡對應的套件即可,不需要兩個都安裝。


wget https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda-repo-ubuntu1604-9-1-local_9.1.85-1_amd64
sudo dpkg -i cuda-repo-ubuntu1604-9-1-local_9.1.85-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
上述指令是安裝 CUDA 9.1 (N卡),對應的是 Ubuntu 16.04 版本,64 位元 CPU,如果和我的建置環境不同切勿照抄這些指令,得到 CUDA 頁面重新選擇自己的對應版本並且 wget 下載回來並使用下載頁下方附註的指令。



Compile XMR Stak


sudo apt install libmicrohttpd-dev libssl-dev cmake build-essential libhwloc-dev
git clone https://github.com/fireice-uk/xmr-stak.git
mkdir xmr-stak/build
cd xmr-stak/build
cmake ..
make install
安裝完成 CUDA 或 APP SDK 後就可以來 Compile XMR Stak 了,我遇到的情況是因為沒有建置 OpenCL 的環境所以造成 cmake 錯誤,但其實在我之前測試的結果裡好像並不需要 OpenCL 的,所以就加上了 -DOpenCL_ENABLE=OFF 這個參數直接將它關閉。


cd bin
./xmr-stak
然後可使用的 XMR Stak 就會出現在 bin 資料夾內,使用指令就可以開啟挖礦程式並執行產生 Config 的嚮導,只要照提問填寫即可,如果想挖 ETN 的話礦池可以參考「台灣 ETN 礦池」


設定完成後就會開始挖礦了,也一樣可以按「r、h、c」來查看挖礦狀況。


sudo vim cpu.txt (config.txt / nvidia.txt / amd.txt)
至於要將挖礦程式設定到最佳化的部分可以先使用 ls 指令查看資料夾內所有的 Config 檔再用 vim 或習慣的編輯器進行改寫,就如同 Windows 版的設定一樣,可以參考之前寫過的介紹進行編輯。




留言



這個網誌中的熱門文章

Linux (Ubuntu) 查詢硬碟容量、剩餘大小指令

在 Ubuntu Desktop 版本或有安裝 GUI 像 Xfce 的 Server 版本當然可以直接從圖形介面查看硬碟容量和已經使用的大小, 但如果是在純 CLI 版本或使用 SSH 連線時呢?那就需要用到指令了。 顯示硬碟容量、已使用、可用大小。 df -h 查詢資料夾所占硬碟的大小。 du -h 查詢檔案大小 ls -l

吃光硬碟讀寫的大怪獸 - Superfetch 是什麼?可以關嗎?

Superfetch 是 Windows 內建的硬碟快取功能,它會預先將檔案讀取起來到 Ram 裡方便稍後做使用,所以常常在工作管理員內都可以看到 Superfetch 往往占掉了不少的硬碟使用量,那這樣的情形是好的嗎?其實理論上並不會有太大影響,畢竟 Superfetch 只是將等會要讀取的內容先預置在 Ram 中,如果不趁硬碟負載小的時候優先讀取,之後反而可能忙不過來呢。當然如果你是使用 SSD 的話可能會為使用壽命擔心, 高頻率的讀取可能加速固態硬碟老化,那在讀取速度原本就很快的 SSD 當然就相對的沒有必要開啟 Superfetch 了。 Superfetch 在電腦待機時吃掉大部分硬碟使用量是很常有的事。 要關閉也很簡單, Win+R > services.msc 打開「服務」,找到 Superfetch。 右鍵 > 內容,將它更改為「 已停用 」後確定即可。

TLS / SSL 金鑰轉檔,「.crt / .key」如何轉成「.pem」?( OpenSSL 教學)

不管是哪個 Certificate Authority (CA) 發的憑證多半金鑰檔都是給「.crt / .key」格式的檔案,像是「ca_bundle.crt」、「 certificate.crt」和「.private.key」這種檔案, 但是在實際使用 (Nginx、Apache...等伺服器) 卻會需要的是「.pem」檔 ,那要怎麼轉換呢?其實可以直接使用 OpenSSL 這個軟體和幾行指令來達成。 OpenSSL 官方網站 :  https://www.openssl.org 下載頁面 :  https://www.openssl.org/source sudo apt-get install openssl 以 Linux (Ubuntu / Debian ...等) 為例,可以直接使用 apt-get 指令下載安裝 OpenSSL,如果是其他系統可以參考官方網站的說明。 openssl rsa -in private.key -text > private.pem openssl x509 -inform PEM -in certificate.crt > certificate.pem openssl x509 -inform PEM -in ca_bundle.crt > ca_bundle.pem 以前述所提到的「ca_bundle.crt」、「 certificate.crt」和「.private.key」三個檔案為例,就可以用上方的指令完成轉檔,其實同副檔名的轉檔指令都相同,所以兩個「.crt」的指令其實是重複的,也要記得套換成自己的檔案名稱。 如果需要申請免費的 SSL 憑證也可以參考之前介紹過的 SSL For Free ,它是使用「Let's Encrypt」核發的憑證,以及如果覺得申請憑證和定期更新太麻煩,也可以考慮自動化的 Caddy Server 能自動幫網站升級 HTTPS。