跳到主要內容

圖解架設 Monero (XMR) 礦池教學,所有 CryptoNight 算法的加密貨幣通用礦池 (Mining Pool),趕快架來讓人挖礦!



隨著 GPU 挖礦越來越難回收成本很多人選擇乾脆自己來開礦池讓別人挖,一來你只需要負擔伺服器營運成本 (比挖礦電費少非常多),也不需要購入太昂貴的硬體 (和挖礦設備相比更是天壤之別),那究竟要滿足什麼條件才能開礦池呢?而實際操作又是如何?這篇將以「門羅幣」 Monero (XMR) 礦池為例來教大家怎麼從無到有架設一個礦池,而且這是一個 CryptoNight 通用礦池,換句話說你也能拿這套來挖 ETNTRTL、ITNS ...等同樣算法的貨幣,可以說是 CP 值超高的礦池啊!

(一個架好的 TRTL 礦池範例) 

node-cryptonote-pool 就是一個基於 Node.js 的礦池系統,它能適用於每個 CryptoNote 的加密貨幣 (Bytecoin, Monero, QuazarCoin, HoneyPenny, etc..),基本上你目前看到的 CryptoNote 礦池大多都是使用這套系統所架設的,它不但提供了現成的網頁介面,還能讓使用者隨時查詢挖礦進度,當然這套系統也有不少 Fork 的版本,這次使用的是最原版的作為範例。

node-cryptonote-pool
GitHub : https://github.com/zone117x/node-cryptonote-pool




安裝套件

這次會選擇架設在 Linux (Ubuntu) 系統上,如果是使用其它發行版的 Linux 基本上操作也都是一樣的,可能只有少部份的指令需要更改,Windows 的話則多半需要手動到網站上下載相關套件 (Packages),使用上比較麻煩一些但理論上也都是可行的。

安裝礦池會需要以下套件,在 Windows 系統會需要逐一安裝,而 Linux 可以略過這個步驟,等會統一使用指令安裝即可。比較需要注意的是它要求的是 v0.10+ 的 Node.js 版本,建議你就乖乖的裝遠古時代的 v0.10 版畢竟 Node.js 不同版本間的相容性問題很容易報錯。

sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev
sudo apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh -o install_nvm.sh
bash install_nvm.sh
source ~/.profile
nvm install 0.10.48
nvm use 0.10.48
nvm alias default 0.10.48
nvm use default
Linux 直接打上述指令即可完成全部的相關套件的安裝,要注意這會將 Node.js 預設為使用 v0.10.48 版本方便你之後使用 node-cryptonote-pool ,如果之後有別的用途要使用新版的 Node.js 記得再改回來。




同步 Monerod


再來就是到 Monero 官網下載適合你作業系統的 CLI 錢包,要注意這是需要同步區塊鏈的錢包,而且之後架設礦池也都必須隨時同步在最新的區塊高度。


cd monero
./monerod
下載回 CLI 錢包後,CD 到它的路徑並測試看看能不能連上 Monero 並且同步區塊,你可以就放著給它同步 (可能跑個一整天),或是直接下載所有的區塊資料回來匯入,這會在下一步解釋。


wget -c --progress=bar https://downloads.getmonero.org/blockchain.raw
使用指令可以將區塊數據下載回來,可以看到我 ^C 再重啟並且確認了它是可以續傳的,所以你未必要一次下載完,有事可以先關掉之後在同路徑下繼續下載,這個過程會比直接同步來的快很多,但仍然需要數個小時。


./monero-blockchain-import --verify 0 --input-file ./blockchain.raw
下載完成後就能用上述指令匯入並讀取,這個過程也是滿花時間的,確定匯入成功之後你就可以把 blockchain.raw 這個檔案給刪掉了,如果匯入失敗你還把它刪掉,那恭喜你可以再下載一次...。


./monerod --detach
然後使用上述指令能在背景運行 monerod,這樣就不需要佔一個終端機在那邊礙眼了,如果想關掉的話只要使用 ./monerod exit 即可。



安裝、啟動礦池

git clone https://github.com/zone117x/node-cryptonote-pool.git pool
cd pool
npm update
再來就可以將礦池 Clone 回來並安裝啦,當然你也可以自己到 GitHub 下載完整檔案,要記得使用 v0.10.48 的 Node.js 安裝,如果剛剛在安裝套件時已經有設定好就沒有問題了。


cp config_example.json config.json
接著將資料夾內的 config_example.json 複製並改名成 config.js,並且用文字編輯器開啟把裡面包括要挖的貨幣、礦池地址 (就是你剛剛同步好的錢包)、預設難度 ...等修改好,可以參考原作者在 GitHub 有附上註解的文件來修改。要特別注意 Daemon 和 Wallet 的 Port 設定,不同貨幣的預設 Port 會不一樣,最保險的方式就是在開啟 monerod 時就加上 --rpc-bind-port 18081 強制它開在某一個 Port。


node init.js
現在就終於可以啟動你的礦池啦,正常來講應該能如上圖運作,如果出現錯誤可能是區塊尚未同步完成或 config.json 有沒有填妥的地方。這時候的礦池已經可以正常接收 Shares 了,但是還沒有 Host 前端的介面。


之後打開 website_example/config.js 設定你的礦池網站,由於我只是開來作個示範所以架在 127.0.0.1 (Localhost),雖然理論上也應該會 Forward 到外網,但如果是要供別人挖礦的話可以直接換成你自己的「靜態」外網 IP,還沒有申請固定 IP 的話可以暫時用 DDNS 之類的服務來達成。


service apache2 start
那要怎麼 Host 這個前端網站呢?如果你有自己習慣的架站套件可以略過這步,我是使用 Ubuntu 就有內建的 Apache 架站組合包,Windows 也可以自己去下載回來裝。使用上述指令先開啟 Apache,如果沒裝的話則先用 sudo apt-get install apache2 安裝。


sudo chmod 777 -R /var/www/html
而架好的 Apache server 的根目錄就在 /var/www/html,我們先用上述指令取得這個路徑的修改權限方便之後的作業。


有修改權限後就能到 /var/www/html 內把原本 Apache 說明文件的 index.html 刪掉再將剛剛 website_example 的檔案都複製過來。


然後你到 http://localhost 就可以看到自己架的前端網站啦 (不過 XMR 區塊真的同步太久,所以我偷懶先開一個 TRTL 的當示範),如果有和礦池同步的話應該要可以看到 Network 裡面目前全網算力、區塊高度等訊息,那如果你想要別人也能看到你的礦池網站記得將防火牆的 Port 打開 (理論上 Apache 應該會幫你做),也要記得使用 SSL 架站以確保安全,這部份的話可以去參考 Cloudflare 等免費網站憑證。



基本上架礦池很簡單,只是大部份時間都花在同步區塊鏈上,當然後續怎麼找到人來挖礦也是難題,還得先自己測試出金 (多半都會去 Nicehash 買算力),那如果你看完之後覺得太麻煩了還是乖乖挖礦就好,可以參考這篇用 XMR-STAK 來挖 Monero 或其它 CryptoNight 的貨幣。








留言



這個網誌中的熱門文章

WinRAR - 繁體中文版、免費版,別再破解了,老牌壓縮軟體直接免費給你用

WinRAR 應該對於所有 Windows 使用者一點都不陌生,可能也是很多人壓縮、解壓縮檔案的首選,舉凡 RAR、ZIP、7-Zip、TAR ...等檔案格式都可以處理,製作自解壓縮 (.EXE) 檔也沒問題,也算是最老牌的解壓縮軟體之一。 WinRAR 官方網站 :  https://www.win-rar.com 繁體中文版 :  https://rar.tw/download.html 永久免費簡體版 :  http://www.winrar.com.cn/download.htm 其實我也不太理解為什麼一個 WinRAR 可以有這麼多版本、不同語系的官網,畢竟在最原始的官網內也有「漢語」(簡體中文) 的選項,所以其他的國家自己的官網算代理商嗎? 如果真的要說我會比較建議到 英文版的官網 下載,畢竟這種軟體轉了一手又一手,加了什麼都不知道。

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

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

如何領取 Monero 分叉幣 MoneroV?附 Remote Node 免下載區塊鏈、快速同步

MoneroV 在先前已經完成分叉,目前也有在一兩間小型的交易所上市可以買賣,只要在  Monero 區塊高度 1,564,965 時持有 XMR 就可以得到十倍的 XMV, 但必須得是在自行保管私鑰的錢包、MyMonero 或有支援的交易所才能領的到 ,前兩項可以自行領取,交易所則得等所方派發,但如果你使用的交易所沒有支援這項 Fork 那當然就領不到啦。 MoneroV Wallet GitHub :  https://github.com/monerov/monerov GUI Wallet :  https://github.com/monerov/monerov-gui 上方的連結是 GitHub 原始碼,不知道為什麼在 GitHub 上 MoneroV 並沒有 Release 成可以直接使用的執行檔,但在官方網站上還是有提供的,可以到 官網 找到自己對應系統的錢包下載,如果不熟指令介面可以選擇 GUI Wallet。 開啟 GUI Wallet 後選擇 「Restore wallet from keys or mnemonic seed」 來匯入原本的 Monero 錢包,如果不放心將私鑰匯入可以先將 Monero 錢包內的餘額移出,已經產生過快照就不需要擔心沒辦法 Claim 自己的 XMV 了。 如果是使用私鑰來匯入的話則依序填入公開地址、View key、Spend key,以及選擇錢包名稱和儲存在哪個路徑, 即使是錢包檔也應該要好好保管,否則之後就得靠私鑰再匯入一次。 接著設定密碼,這就是開啟這個錢包檔的鑰匙,但如果錢包檔遺失了這個密碼也沒辦法將 XMV 取回,只能靠私鑰再重新匯入。 5.199.161.136 : 9538 接著選擇使用 Remote node,這樣就不必自己下載數十 GB 的區塊鏈檔案和花一大堆時間驗證、同步。 使用別人的 Daemon 來交易和領取 XMV 並不會有安全疑慮 ,只是在連接時對方可以知道的 IP。但其實就算是自己 Host Full Node 也是相同的,仍然會需要 P2P 的和它人連接也將 IP 暴露在公網上。 接著就會開始和遠端的 Node 同步了,左下角可以看到同步進度,完成後 XMV 就會顯示在你...