En version av denna artikel publicerades ursprungligen på Medium.
I ljuset av några häftiga händelser nyligen inom Bitcoin-gruvsfären, Jag blev inspirerad att sätta upp min egen lilla, fyra miljoner hash per sekund (MH/s) solobrytning och se hur jag kunde förbättra den. Ett par av de aspekter som jag trodde kunde behöva lite arbete är relaterade till anslutning och att göra min installation till den mest ”rena” i betydelsen decentralisering och tillitslöshet.
Så jag började först gräva i hur exakt en solo bryter i dagens extremt industrialiserade gruvvärld. Jag är inte intresserad av pay-per-share pooled gruvdrift, eftersom det tar bort något av det roliga med solo mining, och introducerar ett visst förtroende. Jag vill direkt bidra med oförfalskad hashhastighetssäkerhet till Bitcoin-nätverket.
Notera: Jag antar att läsaren vet att solobrytning är otroligt svårt och att du sannolikt aldrig kommer att generera ett block. Bara fullständig avslöjande här. Med det sagt…
För flera år sedan krävde solobrytning att man satte upp en fullständig pool av industriell kvalitet som var designad för tusentals avlägset belägna enskilda gruvarbetare som slog ihop sina hashhastigheter. Jag minns att jag försökte ställa in en antingen med Eligius-koden eller ett av de andra inte lika välkända poolprojekten på GitHub och det var svårt att få alla individuella programvarukomponenter att fungera. När jag vet detta, låt oss bara säga att jag inte fick mina förhoppningar om att mining solo var lättare idag.
CK Pool har sin egen ”solo” motsvarighet (vilket jag ärligt talat älskar att detta finns), och det är en sorts pseudo-solo gruvpool där enskilda gruvarbetare får 98 % av blockbelöningen (betalar en 2 % poolavgift) när de generera ett block och de andra pooldeltagarna får 0%. Jämför detta med typisk pooled mining där alla hashhastighetsbidragsgivare får en del av blockbelöningen. Solo CK Pool är fantastisk, men i slutändan introducerar poolen ett visst förtroende som inte borde existera i en ren solo-gruvdrift. Det finns viss inkompatibilitet med den senaste Bitcoin Core-versionen och den senaste CK Pool-koden också, baserat på mitt försök att använda den för denna gruvuppställning.
Efter att ha genomsökt DuckDuckGo- och GitHub-problem, snubblade jag över BFGMiners förmåga att kommunicera med en lokal bitcoind för solo-utvinning(!). Jag hade ingen aning om att denna funktionalitet existerade eftersom BFGMiner vanligtvis användes för gränssnitt med GPU:er eller ASIC-hårdvara under gruvdrift.
Obs: CGMiner har också denna funktion. Tack Con!
Så, med denna nya BFGMiner-kunskap, kan vi eliminera all svårinstallerad poolprogramvara, eller vilken som helst pålitlig pool, och bara lita på BFGMiner och en Bitcoin Core full-nod. Det här passar för min puristiska solo-gruvkonfiguration.
Detta lämnar förbättringarna till anslutning. Hur detta kan stärkas är genom att använda Blockstream Satellite för att komplettera uppsättningen av peers som min nod använder medan min ISP fungerar, och som en failover i händelse av att min ISP blir fläckig och släpper min anslutning. På så sätt kan min gruvhårdvara veta vilket block som är det senaste blocket att bygga på och ingen ansträngning slösas bort.
Ett forskningsområde är block utträde, dock. Det finns alternativ som Starlink eller Iridium som kan användas för att sända ett nyfunnet block. Starlink är förmodligen överdrivet kostnadsmässigt på grund av sannolikheten för att faktiskt bryta ett block som ensam, och själva blocken är relativt små i storlek. Men det är ett bra alternativ. SMS är ett annat alternativ som jag kommer att utforska i framtida blogginlägg.
Hur man solo min som en chef
Guiden antar Ubuntu 20.04. Varning: viss kompilering är nödvändig.
Det är faktiskt väldigt lätt nu. Det finns inget behov av att sätta upp en fullskalig gruvpool längre. BFGMiner kan hantera allt vi behöver. Så låt oss fixa allt.
Ställ in Blockstream Satellit
Följ Blockstreams utmärkta guide för att sätta ihop en satellitantenn, justera den och installera all nödvändig programvara för att börja ta emot Bitcoin-data via geosynkron satellit.
Installera blocksat-cli och Bitcoin Satellite, den patchade Bitcoin Core-noden som Blockstream underhåller för satellitanslutning.
Ställ in BFGMiner
BFGMiner är GPU/ASIC gruvprogramvara som också stöder solo mining med en lokal bitcoind!
Denna programvara kommer att överbrygga vår gruvhårdvara till vår lokala satellit-Bitcoin-nod.
$ git klon https://github.com/luke-jr/bfgminer && cd bfgminer
För Ubuntu är allt du behöver göra att installera beroenden och sedan bygga normalt.
$ sudo apt installera automake autoconf libtool pkg-config libcurl4-gnutls-dev libjansson-dev uthash-dev
Bygg sedan den.
$ ./autogen.sh
$ ./configure
$ göra
Med din bitcoind synkroniserad och tar emot data via satellit (debug.log bör mata ut bithastighetsdata om den lyckas ta emot), peka BFGMiner till din lokala nod. Se till att ställa in server=1 och rpcuser=användare rpcpassword=pass i bitcoin.conf
$ ./bfgminer -T -D -P -o ’127.0.0.1:8332’ -O user:pass –stratum-port 3334 –generate-to
Detta kommer att berätta för BFGMiner att hämta data från din nod och vilken port att lyssna på för stratumminers (i princip alla moderna ASICs använder stratum).
När BFGminer körs, peka helt enkelt din ASIC-hårdvara till IP-adressen som din bitcoind och BFGMiner körs på (port 3334) istället för en vanlig gruvpool som Slush Pool. Du bör börja se andelar med låg svårighetsgrad som skickas in av gruvmaskinvaran i BFGminer-konsolutgången. Det är allt! Du är ensam mining som en chef och har en backup blockchain datakälla via geosynkron satellit. Hur fantastiskt är det? Lycka till med gruvdriften!
Läs mer om Blockstream Satellite här:
Detta är ett gästinlägg av Grubles. Åsikter som uttrycks är helt deras egna och återspeglar inte nödvändigtvis de från BTC Inc Bitcoin Magazine.