跳到主要內容

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 UI 和 JavaScript 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 找到適合自己網站使用的功能。




留言

張貼留言



這個網誌中的熱門文章

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

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

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 可以有這麼多版本、不同語系的官網,畢竟在最原始的官網內也有「漢語」(簡體中文) 的選項,所以其他的國家自己的官網算代理商嗎? 如果真的要說我會比較建議到 英文版的官網 下載,畢竟這種軟體轉了一手又一手,加了什麼都不知道。

MinerGate - 一鍵懶人挖礦程式 (CPU+GPU),自動找出最適合的算法和挖礦貨幣 (支援 BTC、ETH、LTC、XMR...等)

MinerGate 自行開發了一個圖形化介面的挖礦程式,對第一次挖礦的新手來說滿友善的,幾乎不需要任何的設定就會自動找出你的硬體最適合的算法和要挖哪種幣,然後也不必急著申請錢包才能挖,Balance 都會先存在 MinerGate 的伺服器上,要領出才需要錢包,你也隨時都可以上官網來看自己的挖礦進度,但必須說這種挖礦方式雖然很方便但只適合輕度玩家,像是你可能電腦還要拿來做別的事就在背後加減挖一點那種, 如果真的要將機子的效能運用最大化還是得去下載 Claymore、ccminer...等專業的挖礦程式。 (4/26) MinerGate 在許多挖礦社群都被反應有收益偏低的問題,懷疑可能是官方收取了超過表定的手續費。目前推薦直接到礦池挖礦,可以參考 0.1% 超低礦池費的 「台灣 Monero 礦池 」。 MinerGate 官方網站 :  https://minergate.com 推薦連結 : https://minergate.com/a/0fd29cc7b4239115347b993e 註冊頁面 :  https://minergate.com/reg 下載頁面 :  https://minergate.com/downloads/gui 挖礦幣種 : Bitcoin、Ethereum、Zcash、Litecoin、Monero...等 分潤方法 : PPLNS fee 1% 到 註冊頁面 註冊完後就可以下載   MinerGate 專用的挖礦程式 。它有分成 GUI miner 和 Console miner,分別是圖形化介面挖礦程式和指令介面的, 我建議就用 GUI 版本就好了,如果要用控制台挖礦不如去用更專業的  Claymore 。 安裝完後輸入剛剛註冊時的 Email 登入,然後就可以開始挖礦了,像我的就自動偵測成挖 Monero (XMR),以及可以針對自己的硬體調整執行緒來試出最好的設置。 也能在 官網的 Dashnoard 查看自己的挖礦進度,挖到的 shares 會需要一段時間確認後才會顯示在 Balance 裡,如果沒有馬上看到進帳也不用擔心。 根據不同的幣種有不一樣的起付額,達到了之後就可以按 With...