実験•2026年1月9日
Moonshot Miner
用 CPU 慢慢挖比特幣的桌面程式。機率渺茫如登月,所以叫 Moonshot。這輩子大概挖不到,但通知跳出來的那天一定很爽。
稼働中ElectronNode.jsJavaScriptStratum ProtocolBitcoin
為什麼做這個?
對挖礦一直有好奇:它到底是怎麼運作的?Stratum 協議長什麼樣子?hash rate 和難度的關係是什麼?
比起看文章,直接做一個能跑的程式更能搞清楚。CPU 挖礦的效率當然完全沒有競爭力——現代 GPU 挖礦的算力是 CPU 的幾千倍——但這不重要,目的是理解。
然後就順手做成一個真的能跑在系統列的桌面程式,取名 Moonshot:連續中兩次樂透頭獎的機率,大概就是這樣。
功能
- 真實 Stratum 協議:直接連到
solo.ckpool.org:3333,完整實作挖礦流程 - 系統列常駐:背景低調運行,需要時才顯示狀態視窗
- 懸浮狀態視窗:無邊框、半透明、always-on-top,隨時看算力
- 精簡模式:只佔 ~130px 高的極小視窗,適合掛機
- 系統通知:萬一哪天真的挖到了,Windows 會跳通知 🎉
- 挖礦強度調整:控制 CPU 使用率,可以在背景輕量運行
技術架構
框架:Electron(跨平台桌面)
挖礦核心:純 JavaScript 實作 SHA-256 double hash + nonce 暴力搜尋
通訊:TCP socket 連接 Stratum server,完整實作 mining.subscribe、mining.authorize、mining.notify、mining.submit 流程
心得
寫這個的過程比預期有趣。Stratum 協議本身並不複雜——就是 JSON over TCP——但裡面的細節很多:endianness 轉換、coinbase transaction 的組裝、merkle root 的計算……每一個步驟都是在理解比特幣挖礦的實際運作。
最後打包成 .exe 安裝檔,放在桌面讓它默默跑著。偶爾看一眼算力數字,提醒自己這件事有多 Moonshot。