跳到主要內容

Coinhive 挖礦教學 - Javascript 網頁挖礦,讓瀏覽者幫網站主挖礦賺取門羅幣 Monero (XMR)




(6/24) 目前「台灣 Monero 礦池」亦提供 Javascript 網頁挖礦服務,延遲低、手續費優惠且針對網頁挖礦優化,詳細使用和程式碼可以參考這裡



Coinhive 提供了讓網站主在自己的網頁置入挖礦程式挖取門羅幣 Monero (XMR),做以取代傳統網頁廣告像 Google Adsense 的投置廣告,隨著 AdBlock 的普及,投放廣告早已經賺不到太多的收入,而且廣告費談判也極度失衡,完全被第三方綁架,非常不符合去中心化的概念,因此產生出了這種以網頁挖礦代替廣告的方式,借用瀏覽者部分的 CPU 效能 (不使用顯卡) 來幫網站主直接賺取虛擬貨幣收益,本站也同樣選用 Coinhive 代替網頁廣告,或許你有發現也或許沒有,但實質上造成的影響其實遠沒有想像中的大,隨著電腦配備的進步,瀏覽網頁已經是電腦的最基本功能,大部分電腦的效能在看網頁上都是遊刃有餘,只要有相關的停止措施和對行動裝置優化,我認為網頁挖礦對使用者帶來的影響反而比廣告更小。



預設的挖礦 GUI



Coinhive 網頁挖礦


  • 官網 : https://coinhive.com/
  • 挖礦幣別 : 門羅幣 Monero (XMR)
  • 起付額 : 0.02 XMR (0.5 XMR免手續費)
  • 收益算法 : (<solved_hashes>/<global_difficulty>) * <block_reward> * 0.7



可以看到 Coinhive 會抽取三成的收益,官網提到是為了支援維護費用,可以在 FAQ 裡面詳讀。但必須說我用 Coinhive 至今只碰過一次伺服器維修了幾個小時,他們也馬上在面板上發公告致歉,而且用推算的算力補足這段時間的收益,我會覺得這樣的服務品質還算值得。




註冊 (https://coinhive.com/account/signup) 完後就可以到 Settings>Sites & API Keys 建立密鑰,不同網站可以共用一個 key 沒關係,Secret Key記得不要讓他人知道,如果洩漏了可以按 revoke 重新產生。


Documentation 選擇適合自己網站的程式碼(https://coinhive.com/documentation),基本上它分為幾種,個人網站會選用的大概就是最簡單的 Simple Miner UIJavaScript Miner,如果是使用 WordPress 的用戶也可以直接裝 Plugin



最簡單的 Simple Miner UI :

<script src="https://authedmine.com/lib/simple-ui.min.js" async></script>
<div class="coinhive-miner" 
 style="width: 256px; height: 310px"
 data-key="RQjZrjeqqcG1UU4rSLBkQwKBv0oki9hZ">
 <em>Loading...</em>
</div>

基本上只要把 data-key 換成剛剛產生的 key 就可以使用了,當然它還有許多參數可以更改,如下 : 

<script src="https://authedmine.com/lib/simple-ui.min.js" async></script>
<div class="coinhive-miner" 
 style="width: 256px; height: 310px"
 data-key="RQjZrjeqqcG1UU4rSLBkQwKBv0oki9hZ"
 data-autostart="true"     /*自動開始*/
 data-whitelabel="false"   /*顯示標籤*/
 data-background="#000000" /*背景顏色*/
 data-text="#eeeeee"       /*文字顏色*/
 data-action="#00ff00"     /*動作顏色*/
 data-graph="#555555"      /*圖形顏色*/
 data-threads="4"          /*執行緒*/
 data-throttle="0.1">      /*保留的效能*/
 <em>Loading...</em>
</div>
結果就是像下面的介面。

Loading...


JavaScript Miner 更適合進階使用者,它有更多的細節和自訂介面可以設定。

這邊提供本站使用的附有開始停止和統計 hashes 的 JavaScript :

<script src="https://coinhive.com/lib/coinhive.min.js"></script><center>
<p style="font-size: 11pt;" id="status"></p>
<p style="font-size: 11pt;" id="hashesPerSecond"></p>
<p style="font-size: 11pt;" id="getTotalHashes"></p>
<p style="font-size: 11pt;" id="stopped"></p>
<p id="minerbutton"></p></center>
<script>
if (navigator.hardwareConcurrency > 1){
 var cpuConfig = {threads: Math.round(navigator.hardwareConcurrency-1)}
}else{
 var cpuConfig = {throttle:0.5}
}
var miner = new CoinHive.Anonymous('RQjZrjeqqcG1UU4rSLBkQwKBv0oki9hZ', cpuConfig);
miner.start(CoinHive.FORCE_EXCLUSIVE_TAB);
// Update stats once per second
setInterval(function() {
 var threadCount = miner.getNumThreads();
 var hashesPerSecond = Math.round(miner.getHashesPerSecond());
 var getTotalHashes = miner.getTotalHashes();
try {
 navigator.getBattery().then(function (battery) {
  if (battery.level < 0.50 && battery.charging == false) {
   miner.stop();
   document.getElementById("stopped").innerHTML = "Low Battery";
  }
 });
}catch(e){console.log(e)}
 // Output to HTML elements...
 if (miner.isRunning()) {
  document.getElementById("status").innerHTML = "Status : Using " + threadCount + " threads";
  document.getElementById("hashesPerSecond").innerHTML = "Hashrate : " + hashesPerSecond + " H/s";
  document.getElementById("getTotalHashes").innerHTML = "Total : " + getTotalHashes + " Hashes";
  document.getElementById("minerbutton").innerHTML = "<button onclick=\"miner.stop()\">Stop Mining</button>";
 }else{
  document.getElementById("status").innerHTML = "Status : n/a";
  document.getElementById("hashesPerSecond").innerHTML = "Hashrate : " + 0 + " H/s";
  document.getElementById("minerbutton").innerHTML = "<button onclick=\"miner.start(CoinHive.FORCE_EXCLUSIVE_TAB)\">Continue Mining</button>";
 }
}, 800);
</script>
它會自動偵測系統的 threads 數,並保留一個 thread 不進行挖礦以及只耗用一半的效能,以及電量不足或在充電時會自動停止挖礦,只要將 key 改成自己的就可以使用了,實際執行的樣子可以見本站右上方的介面。





而 Coinhive 提供的 Capcha 則是提供類似轉址和 proof of work 的功能,也順便解開一定量的 hashes 回饋建立連結的人,可以在 Capcha 頁面Shortlinks 找到適合自己網站使用的功能。




留言

張貼留言



這個網誌中的熱門文章

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 就會顯示在你...