2017年9月12日 星期二

在 ConoHa 上以 Ubuntu 16.04 LTS 架設 Hentai@Home 分散式運算系統

應該蠻多人知道所謂「E 變態」或是那個暗號「熊貓」,這篇就是在講這個

exhentai
這張應該可以稱作是另類的世界名畫了

所謂的「E 變態」,全名是 E-hentai,是一個非營利性質的圖片分享平台,註冊用戶可以上傳同人誌、畫冊掃圖、Cosplay 攝影集等資源,當然網站的內容大多數是工口向的同人本就是了

在 E-hentai 充滿了紳士們最愛的工口向同人本,還有一部分的歐美作品、正常向同人本以及連載漫畫和原畫集、設定集的掃圖,偶爾會有少量 Cosplay 攝影集,E-hentai 也是最大的同人本資源分享社群網站、最大的同人本翻譯資源集散地

這邊就不講給新手聽了,來講一點高手向的東西,Hentai@Home

看到 @Home 這個關鍵字,熟悉電腦與網路歷史的人應該已經猜到了,是的,Hentai@Home 是一款分散式的運算軟體,將 P2P 使用者檔案共享技術與知名的分散式運算軟體 SETI@home 做融合,讓一般電腦都可以幫 E-hentai 網站分攤龐大的運算量與使用者流量

當然純粹的消耗頻寬與運算資源就跟作慈善沒什麼兩樣,因此 Hentai@Home 提供了很多的福利,以惠於提供運算能力的人在 E-hentai 經濟圈裡面成為大佬,要說最直接的福利,分別是跟山一樣的 Gallery Points( GP ),強大的 Hath 與 H@H Downloader

所謂 Gallery Points( GP )是 E-hentai 經濟圈裡面的基礎貨幣,最主要的用途是拿來下載圖庫(以打包的方式)與重置檢視影像的限制計數器(算是一種減輕伺服器負載的作法,而 GP 可以重設計數器),而每當一個使用者透過你擁有的 Hentai@Home 客戶端存取圖庫,每存取一次你就可以獲得 1 GP,別小看累積的數字,一天累積 40,000 GP 是可以的甚至更高,也就是說如果你沒有玩 HV 這個文字冒險遊戲的話,跑 Hentai@Home 賺到的 GP 你這輩子可能花不太完

而 Hentai at Home( Hath )是 E-hentai 經濟圈裡面的最具價值的貨幣,它可以兌換某些要透過實體貨幣(當然要先轉成 BTC 等數位貨幣才能餵到 E-hentai 裡面)才能獲得的功能,比如說網站內建的去廣告,簡單來說就是用你的電腦來幫你賺點福利

而 H@H Downloader 則是讓你可以直接下載圖庫到你的 Hentai@Home 裡面,只要簡單按個鍵,晚點去收成就好,下載的檔案會以資料夾(目錄)的方式存放,如果是遠端主機的話可以直接開 SFTP 把它拉回自己的電腦

講了這麼多,再來就講一下怎麼在遠端主機架設 Hentai@Home,剛好一直有一台在運行 OpenVPN-AS 的 Ubuntu Server,稍微拉一點資源出來跑 Hentai@Home 也是可以,其實單板機都跑的動,不過這是後話


2017_09_12_181549
首先打開 E-hentai 網站,在 My Home 選擇 Hentai@Home 來申請客戶端
2017_09_12_181423
都忘了主機的網路位址是多少了,趕快看一下
2017_09_13_164710
先確定一下你的主機可以 Ping 到 google.com 跟 Google Public DNS 的 8.8.8.8

申請 Hentai@Home 需要幾個條件,分別是
  • 每秒最大爆發頻寬至少 200KB
  • 每小時總傳輸量至少 300MB
  • 資料儲存容量至少 10GB
  • 需要 SpeedTest 測試結果佐證

    接下來講如何申請

    2017_09_12_180309
    測速可以使用一個 speedtest_cli.py 腳本
    2017_09_12_180557
    一直在想為什麼跑不動,後來發現要改用 speedtest.py
    2017_09_12_180730
    python speedtest.py --share 就可以看到結果,產生的網址是測試結果的圖檔

    看到那個數字別太高興,那個頻寬雖然有達到 ConoHa 官方說的 100 MBps,但那是同一個實體主機下面的所有虛擬主機共享(想成那個實體主機對外是走 1 Gbps 到對外路由器就好),如果真的用那個數字去跑 Hentai@Home,大概沒幾下子就因為佔用過多網路頻寬與運算資源被 ConoHa 官方砍伺服器單位跟鎖帳號,所以申請完成後要對 Hentai@Home 作設定

    而提交申請報告時就要用 trickle 這個限速模組去作管制(當然是針對 speedtest.py 而已


    2017_09_12_181708
    sudo apt-get install trickle
    2017_09_12_181811
    在 python speedtest.py --share 前面加個限速指令,單位是 KB/s
    2017_09_12_182722
    這樣就會產生一份低調的報告
    2017_09_12_183710
    把剛剛的測試結果貼在最下面,然後填入你想提供的頻寬、流量與容量,申請成功會看到綠色字樣
    2017_09_13_163236
    等個一兩天就會看到通過申請的字樣,這時可以進入 Hentai@Home 細部設定頁面,最上面有重要的編號與金鑰

    再來是比較複雜的建立 Hentai@Home 運作環境,我在找相關的中文資料時只有找到中國大陸那邊的資料,雖然照著弄是可以跑,但是後來想想,是踏了蠻多冤枉路的,但畢竟各家主機商的預設環境不一樣,細部難免會有變化

    以下流程需要支援 SFTP 的軟體如 FileZilla 跟你前面的終端機( Windows 環境建議使用 PuTTY 連線)

    其實用終端機是可以完成全部操作,包括下載必須資源與解壓縮、安裝,但甲骨文官方是沒有提供真實網址來直接下載的,所以還是建議乖乖用 SFTP 扔上主機,畢竟有圖形化操作就是不一樣


    2017_09_13_163622
    首先 java -version 查一下 Java 環境,應該是這樣
    2017_09_13_163729
    再來是 sudo apt-get install default-jre,安裝 Java Runtime Environment
    2017_09_13_164206
    再來 sudo apt-get install default-jdk,安裝 Java SE Development Kit
    2017_09_13_163822
    再跑一次 java -version,應該是這樣
    2017_09_13_173155
    到這個網址去下載官方的 Java SE Development Kit 壓縮檔,依照你的主機類型選擇
    2017_09_13_173356
    用 SFTP 把他扔去主機的根目錄,記住檔名
    2017_09_13_183846
    tar -zxvf 指令解壓縮,目標檔案是剛剛上傳的壓縮檔
    2017_09_13_184306
    使用 cp 指令把解壓縮的檔案搬移到資源庫的 jdk 資料夾
    2017_09_13_184827
    注意最上面的三行,要設定代替連結來導向
    2017_09_13_184901
    輸入 update-alternatives --config java 、update-alternatives --config javac 與 update-alternatives --config javaws
    2017_09_13_185802
    上面可能有選擇錯誤,正確是要像是這樣都選剛剛安裝導入的 1.8.0_144 版本,執行 java -version 則要像最底這樣
    2017_09_13_191257
    sudo apt-get install unzip,準備安裝 Hentai@Home,因為下載下來是壓縮檔

    用於執行 Hentai@Home 的運作環境差不多就建立完成,再來就是下載 Hentai@Home,在 E-hentai 網站個人頁面選擇 Hentai@Home,在頁面的下方就可以看到最新穩定版本的 Hentai@Home,這邊提供 1.4.2 穩定版 Hentai@Home 1.4.2

    2017_09_13_191354
    一樣是把壓縮檔案用 SFTP 扔到根目錄去,不在本地端解壓縮是避免節外生枝
    2017_09_13_192330
    使用 unzip 指令解壓縮,應該會有三個檔案
    2017_09_13_193453
    重新整理遠端就會看到三個檔案,包括那個 bat 檔
    2017_09_13_193929
    使用 cp 指令把解壓縮的檔案搬移到指定位址,官方建議建立一個專屬帳號 hentai 跟執行 Hentai@Home 的 hath 目錄
    2017_09_13_193915
    去遠端翻找資料夾就會看到被搬移過去的檔案,如果遠端沒有螢幕那其實把 HentaiAtHomeGUI.jar 跟那個 bat 檔刪掉也可以
    2017_09_13_194228
    sudo java -jar /home/hentai/hath/HentaiAtHome.jar 就會開始執行 Hentai@Home
    2017_09_13_194310
    輸入前面提到的客戶端編號與金鑰
    2017_09_13_194327
    沒意外的話 Hentai@Home 已經開始順利執行了

    接著就可以開始等待 GP 跟 Hath 入袋了,提醒一下如果這時關閉終端機是會讓 Hentai@Home 停止運作的,建議在 Hentai@Home 順利開始運作後先使用 Ctrl+C 終止一次 Hentai@Home,改用 nohup java -jar /home/hentai/hath/HentaiAtHome.jar &來讓 Hentai@Home 在背景運作,或是安裝 screen 這個神奇的終端機分頁套件讓 Hentai@Home 在虛擬分頁裡運作

    更多的資訊,可以參閱英文資料
    Hentai@HomeInstalling H@H on Ubuntu
  • 1 則留言:

    1. 請問站長用什麼方式付費給conoha呢?我每次設定信用卡自動扣款或是直接買點數給他扣都會卡很久要不然就是失敗很久... 都不確定到底有沒有成功Orz...

      回覆刪除