[{"data":1,"prerenderedAt":150},["ShallowReactive",2],{"portfolio-moonshot":3},{"id":4,"title":5,"body":6,"category":129,"cover":130,"date":131,"description":132,"extension":133,"featured":134,"links":135,"meta":137,"navigation":138,"path":139,"seo":140,"status":141,"stem":142,"tags":143,"__hash__":149},"portfolio\u002Fportfolio\u002Fmoonshot.md","Moonshot Miner",{"type":7,"value":8,"toc":121},"minimark",[9,14,18,21,24,27,73,76,82,88,108,111,114],[10,11,13],"h2",{"id":12},"為什麼做這個","為什麼做這個？",[15,16,17],"p",{},"對挖礦一直有好奇：它到底是怎麼運作的？Stratum 協議長什麼樣子？hash rate 和難度的關係是什麼？",[15,19,20],{},"比起看文章，直接做一個能跑的程式更能搞清楚。CPU 挖礦的效率當然完全沒有競爭力——現代 GPU 挖礦的算力是 CPU 的幾千倍——但這不重要，目的是理解。",[15,22,23],{},"然後就順手做成一個真的能跑在系統列的桌面程式，取名 Moonshot：連續中兩次樂透頭獎的機率，大概就是這樣。",[10,25,26],{"id":26},"功能",[28,29,30,43,49,55,61,67],"ul",{},[31,32,33,37,38,42],"li",{},[34,35,36],"strong",{},"真實 Stratum 協議","：直接連到 ",[39,40,41],"code",{},"solo.ckpool.org:3333","，完整實作挖礦流程",[31,44,45,48],{},[34,46,47],{},"系統列常駐","：背景低調運行，需要時才顯示狀態視窗",[31,50,51,54],{},[34,52,53],{},"懸浮狀態視窗","：無邊框、半透明、always-on-top，隨時看算力",[31,56,57,60],{},[34,58,59],{},"精簡模式","：只佔 ~130px 高的極小視窗，適合掛機",[31,62,63,66],{},[34,64,65],{},"系統通知","：萬一哪天真的挖到了，Windows 會跳通知 🎉",[31,68,69,72],{},[34,70,71],{},"挖礦強度調整","：控制 CPU 使用率，可以在背景輕量運行",[10,74,75],{"id":75},"技術架構",[15,77,78,81],{},[34,79,80],{},"框架","：Electron（跨平台桌面）",[15,83,84,87],{},[34,85,86],{},"挖礦核心","：純 JavaScript 實作 SHA-256 double hash + nonce 暴力搜尋",[15,89,90,93,94,97,98,97,101,97,104,107],{},[34,91,92],{},"通訊","：TCP socket 連接 Stratum server，完整實作 ",[39,95,96],{},"mining.subscribe","、",[39,99,100],{},"mining.authorize",[39,102,103],{},"mining.notify",[39,105,106],{},"mining.submit"," 流程",[10,109,110],{"id":110},"心得",[15,112,113],{},"寫這個的過程比預期有趣。Stratum 協議本身並不複雜——就是 JSON over TCP——但裡面的細節很多：endianness 轉換、coinbase transaction 的組裝、merkle root 的計算……每一個步驟都是在理解比特幣挖礦的實際運作。",[15,115,116,117,120],{},"最後打包成 ",[39,118,119],{},".exe"," 安裝檔，放在桌面讓它默默跑著。偶爾看一眼算力數字，提醒自己這件事有多 Moonshot。",{"title":122,"searchDepth":123,"depth":123,"links":124},"",2,[125,126,127,128],{"id":12,"depth":123,"text":13},{"id":26,"depth":123,"text":26},{"id":75,"depth":123,"text":75},{"id":110,"depth":123,"text":110},"experiment",null,"2026-01-09T00:00:00.000Z","用 CPU 慢慢挖比特幣的桌面程式。機率渺茫如登月，所以叫 Moonshot。這輩子大概挖不到，但通知跳出來的那天一定很爽。","md",false,{"github":136},"https:\u002F\u002Fgithub.com\u002Fharry18456\u002Fmoonshot",{},true,"\u002Fportfolio\u002Fmoonshot",{"title":5,"description":132},"active","portfolio\u002Fmoonshot",[144,145,146,147,148],"Electron","Node.js","JavaScript","Stratum Protocol","Bitcoin","VVVdkMSiIZwSg5BN0r6xyQby_B8tCbyccvi9TTEnWdw",1774434898178]