Storj 挖礦教學 – 共享硬碟空間賺取加密貨幣
我們許多人都在努力創造收入,尤其是被動收入,如果你有一台 24 小時運作的電腦,你就可以安裝 Storj 工具成為節點,將額外的硬碟空間出租,賺取被動收入。
什麼是 Storj ?
Storj 是一個 DCS (Decentralized Cloud Storage, 分散式雲存儲) 服務商,其保存的文件不在中央數據庫,而是分散在世界各地的節點中。
這些文件被加密然後分割成碎片分佈在不同節點上,單一碎片無法得知文件內容,每個文件分為 80 份,但恢復一個文件只需要其中 29 份存在即可。
Storj 提供用戶免費 150 GB 的空間,比起其他雲端存儲服務商 Google Drive, ASUS WebStorage , Dropbox 等等高出許多。
成為 Storj 節點預期收益
如果你有意願想要成為 Storj 節點賺取回報,你可以先評估一下投資回報是否滑算,這裡有一份官方提供的預期收益表讓你參考,Excel 連結
成為節點需求
以下列出成為 Storj 挖礦節點的需求。
硬體需求
- 至少 1 個專用於節點的 CPU
- 最少 500 GB 以上,最大 24 TB 的硬碟空間
- 網路頻寬上傳大於 5 Mbps,下載大於 25 Mbps
- 每月 99.5 % 的正常運行時間
要提供 Storj 節點挖礦,最主要準備的是大容量硬碟空間,而 Storj 限制一個 CPU 核心可以運行一個節點,而一個節點最多使用 8 TB 的空間,如果要提供 16 TB 硬碟挖礦,就需要二個 CPU 核心。
而維持電腦運作至少要一個 CPU 核心,所以扣除一個 CPU 核心之後,剩下的就可以提供給 Storj 使用。
例如一個四核心的 CPU,扣除一個給系統運作,其他三個核心提供給 Storj 使用,那最多可以提供 24 TB 的硬碟空間來挖礦。
記憶體要求不高,我實測每個節點使用記憶體在 1 G 以下。
每月最低正常運行時間要求是 99.3%,每月最長停機時間是 5 小時,如果時間達不到要求,可能當月就沒有收益。
作業系統要求
Storj 節點支援 Windows, Linux, macOS 三個平台都行。
網路要求
Storj 需要可由外面直接連線的網路,使用固定 IP 是很好的選擇,但如果是浮動 IP 的話,例如中華電信撥號,那可以申請 No-IP 服務來指向浮動 IP。
如果是區域網路,例如是 192.168 類型的網路就不行了。
ETH 以太坊錢包
Storj 的加密貨幣是以太坊上的 ERC-20 代幣,在挖礦之前需要先擁有 ETH 錢包地址。
如果還沒有以太坊錢包的話,可以使用 MetaMask 來建立錢包。
Storj 另外提供 Layer 2 網路 zkSync 來收款回報,這樣做可以節省以太坊的高手續費成本。
防火牆與 DNS 設定
當節點運作時,需要開通指定 Port 連線與固定 IP 或 DNS 連線到此主機。
我以下使用的環境是 Ubuntu 20.04 環境做為教學。
開通防火牆 28967 Port
Storj 節點使用 TCP 與 UDP 的 Port 都是 28967,要開通此 Port 才可以運行節點。
Ubuntu 預設沒有啟用防火牆,但我認為這樣是比較危險的,建議要開啟防火牆,然後針對有需要的 Port 開通,其它的就關閉。
檢查防火牆狀態指令:
sudo ufw status
如果防火牆沒有啟用的話,可以開啟防火牆指令:
sudo ufw enable
允許 Port 28967 可連線指令:
sudo ufw allow 28967
設定 DNS
如果你的主機擁有固定 IP,那你可以忽略此設定,如果你的主機每次開機會有不同對外 IP,例如中華電信撥號上網一樣,那建議你可以申請 NoIP 服務,使你的主機擁有 DNS 指向這台主機。
NoIP 是一個免費的服務,可以提供一組 DNS 給你並自動更新你的浮動 IP 地址,但如果是免費帳號,需要每 30 天手動更新一次。。
開啟 NoIP DNS 頁面,執行「Create Hostname」。
「Hostname」 輸入網域名稱,「Domain」 選擇網域,可以下拉選不同網址,「Record Type」 選「DNS Host」,「IP v4 Address」 輸入目前對外的 IP。
完成後會得到你的新網域。
Ubuntu 安裝 NoIP 工具
輸入以下指令,在執行之前確保使用管理者權限,可以使用 sudo su
切換至管理員。
cd /usr/local/src/
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make install
如果你在執行 make install
時發生了錯誤,可能是 make 與 gcc 尚未安裝,可以用以下指令先安裝。
apt install make
apt install gcc
執行 make install
之後需要設定你 NoIP 帳戶。
首先會先詢問你的對外網路名稱是什麼,我的網路有 0 1 2 可以選擇,其中 ppp0 是我的對外網路,這是撥接後才會有的名稱,你可以透過 ifconfig
指令來查詢你的對外網路名稱。
接著輸入 NoIP 的帳號密碼,使用的 DNS 名稱,還有設定檔名稱。
這裡 NoIP 就安裝好了,接著要設定開機自動啟用。
新增一份檔案,指令:
sudo nano /etc/systemd/system/noip2.service
在文件裡面輸入以下內容
[Unit] Description = noip2 daemon After = NetworkManager-wait-online.service network.target network-online.target dbus.service Wants = NetworkManager-wait-online.service network-online.target Requires = dbus.service [Service] ExecStart = /usr/local/bin/noip2 ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy = multi-user.target
執行 <ctrl+o> <Enter> <ctrl+x>
儲存後,執行指令:
sudo systemctl enable noip2
這樣下次開機後,不需要登入即會自動執行了。
安裝 Storj 節點工具與設定
這裡會取得節點憑證、下載安裝 Storj 節點工具。
取得授權令牌
開啟官網取得授權令牌網頁,輸入 Email 取得授權碼。
輸入後會收到類似這樣的令牌。
將自己的授權令牌存儲下來,等等會用到。
下載身份憑證工具
在 Ubuntu 用使用者身份 (不是 Root) 執行以下的指令,每行逐一執行。
下載檔案
curl -L https://github.com/storj/storj/releases/latest/download/identity_linux_amd64.zip -o identity_linux_amd64.zip
解壓縮檔案
unzip -o identity_linux_amd64.zip
賦予執行權限
chmod +x identity
移動檔案
sudo mv identity /usr/local/bin/identity
執行後就會安裝身份工具在 /usr/local/bin/ 目錄。
生成身份憑證
執行以下指令可能要等待數小時,取決於你機器的速度。
輸入指令:
identity create storagenode
完成之後會在電腦上產生 CA 憑證。
授權身份憑證
執行指令:
identity authorize storagenode <email:characterstring>
請將 <email:characterstring>
取代為剛剛獲得的授權令牌。
執行以下指令確認是否已正確授權身份。
grep -c BEGIN ~/.local/share/storj/identity/storagenode/ca.cert
grep -c BEGIN ~/.local/share/storj/identity/storagenode/identity.cert
當正確授權時,第一個指令會回傳 “2”,第二個指令會回傳 “3”。
你可以備份此憑證,當你想要更換電腦執行時,可以複製此憑證至新電腦上使用。
安裝 Docker
Storj 將許多複雜的設定都封裝在 Docker 內,以方便執行節點服務,如果你的 Ubuntu 尚未安裝 Docker,使用以下步驟安裝 Docker,若你已安裝 Docker 則建議將 Docker 更新至最新版本。
執行此指令可以安裝 Docker:
sudo apt-get install docker.io
安裝之後可用此指令確認是否已啟動:
service docker status
將使用者帳號加入 Docker 群組,執行指令:
sudo usermod -aG docker $USER
newgrp docker
下載 Storj Docker 容器
下載 Storj Docker 容器至 Docker 內,執行指令:
docker pull storjlabs/storagenode:latest
執行 Storj Docker 容器
在第一次執行節點前,我們先設置 Docker 參數,其中一些設定要更換為你的設定。
指令是:(注意,此為一行指令)
docker run --rm -e SETUP="true" \
--user $(id -u):$(id -g) \
--mount type=bind,source="<identity-dir>",destination=/app/identity \
--mount type=bind,source="<storage-dir>",destination=/app/config \
--name storagenode storjlabs/storagenode:latest
你需要將 <identity-dir>
取代為剛剛授權身份憑證目錄,以我上面的範例路徑為 /home/mars/.local/share/storj/identity/storagenode/。
將 <storage-dir>
取代為要共享的硬碟空間路徑,也就是容量較大的硬碟空間,此目錄如果是外接硬碟,建議要先執行靜態掛載,否則可能會有資料審核失敗的風險。
接著以下是執行節點的指令,其中一些設定要更換為你的設定。(注意,此為一行指令)
docker run -d --restart unless-stopped --stop-timeout 300 \
-p 28967:28967/tcp \
-p 28967:28967/udp \
-p 127.0.0.1:14002:14002 \
-e WALLET="0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-e EMAIL="[email protected]" \
-e ADDRESS="domain.ddns.net:28967" \
-e STORAGE="2TB" \
--user $(id -u):$(id -g) \
--mount type=bind,source="<identity-dir>",destination=/app/identity \
--mount type=bind,source="<storage-dir>",destination=/app/config \
--name storagenode storjlabs/storagenode:latest
將 WALLET
錢包地址的值更換為你的 ETH 地址。
將 EMAIL
的值更換為你的 EMAIL
將 ADDRESS
的值更換為你的固定 IP 或是 NoIP 的網址,後面帶有 Port 號。
將 STORAGE
的值更換為你要共享的硬碟容量,如果共享容量等於硬碟空間總容量,建議共享容量要少 50 GB 比較好。
將 <identity-dir>
取代為剛剛授權身份憑證目錄。
將 <storage-dir>
取代為要共享的硬碟空間路徑。
成功執行後,會回傳一段代碼。
如何檢查執行狀態
開啟網頁就可以檢查執行狀態了,在瀏覽器上輸入 http://127.0.0.1:14002/ 會出現節點運作狀態,以及獲利資訊。
狀態 「STATUS」 值為 "Online" 表示正在運作中。
關於狀態數據的說明,可至官網查詢。
如何停止與啟動節點運作
當要關機前或是重開機之後,可以執行以下指令來停止或啟動。
停止指令:
docker stop -t 300 storagenode
啟動指令:
docker start storagenode
當你做到這裡,恭喜你已經開始執行 Storj 節點挖礦,有任何問題可以在下面留言,我也是初次接觸,對於許多設定不甚了解,可以一起討論。
相關學習文章