Kriptovaluta bányászat profiknak, pontos eredmények felhőalapú bányászatról


Hozzáadva: 2020. Június 30. Megtekintve: 137

Az első kriptovaluta megjelenése óta iszonyatos sebességgel fejlődnek a bányászatra specializálódott hardverek is. Egy bányásznak alapvetően három lehetőség közül kell választania, amikor kriptovalutát szeretne bányászni és annak költségét szeretné optimalizálni. Ezek a CPU, a GPU és az ASIC alapú bányászatok. A Bitcoin megjelenése idején népszerű volt a CPU alapú bányászat, hiszen csak az SHA-256-os hash függvényt kellett kiszámolni, viszonylag sokszor a bányászat során. Maga a költség attól függött, hogy hány Bitcoin bányagépet tudott az ember beállítani és adott egység elektromos energia felvétele mellett mennyi hash-t tudott legenerálni. A Bitcoin mutánsok (altcoinok) megjelenésével a helyzet egy kicsit megváltozott.


A Bitcoin hatalmas népszerűségnek örvend és a felhasználók százezrei figyelik árfolyamának alakulását napi szinten. Fontos ez is, hiszen a bányászat megtérülését jelentősen befolyásolja az adott kriptovaluta napi árfolyama is. Ezek mellett figyelni kell az elektromos energia árára és a bányagépek bekerülési költségeire is.


Mivel a Bitcoin bányászatát ma már szinte lehetetlen pozitív profittal kivitelezni inkább nézzünk egy másik érdekes, néhány éve megjelent kriptovalutát, az Zcash-t.


Zcash bányászata a Google felhőben


Zcash bányászata során az eredetileg ASIC biztosnak vélt Equihash algoritmust kell futtatnunk eszközeinken. Ennek viszonylag nagy a memórai igénye és ez adja strapabíróságát, amikor is ASIC-el próbálják támadni. Mindezek ellenére a kínai Bitmain cég megjelentetett olyan Antminer-t, amely képes magas hatásfokkal bányászni az Equihash alapú kriptovalutákat. Ezeket az eszközöket több mint egy millió forintért árusítják és rögtön kifogy a készletük. Emiatt csak előrendeléssel lehet a kínai cégtől megvásárolni. A rendeléstől számítva legalább egy hónapot kell várni, amíg megérkezik a bányagép és senki sem garantálja a bányászandó kriptovaluta árfolyamának stabil szinten maradását.


Ezzel főleg az a probléma, hogy ha egy idő után nem kifizetődő egy adott kriptovalutát bányászni egy ilyen ASIC bányagéppel, akkor nem nagyon lehet vele mit kezdeni. Hasonló a helyzet akkor is, amikor a kriptovaluta rendszerében történik valami változás és az ASIC nem tudja azt lekövetni.


Nyilván sokkal praktikusabb egy erős számítógépet, neadjisten szervert beállítani és azon bányászni. Ekkor választhatunk CPU és GPU alapú bányászatot is.


A napokban kíváncsi voltam a CPU alapú Zcash bányászatra és szeretném veletek megosztani tapasztalataimat. Ez a cikk azoknak fog mondani valakit, akik már elkezdtek bányászni valamilyen kriptovalutát, vagy legalább egyszer megpróbálták feltelepíteni a Zcash programot.


A Bitcoin bányászata viszonylag jól párhuzamosítható, mert az SHA-256 hash értékek generálása során nincs szükség a hash értékek letárolására és ezáltal azokra nem kell hivatkozni. Elképzelhető egy olyan felállás, amelyben sok CPU vagy GPU próbálja hitelesíteni a blokkot és amelyiknek sikerül az értesíti a többit, hogy álljanak le a munkával. Emiatt feltételezem, hogy a Bitcoin bányászata során a hashráta nagyjából lineárisan nő a munkára fogott CPU-k vagy GPU-k számával. Ha viszont memória igényes kriptográfiai algoritmusokról beszélünk, amelyek futása során el kell tárolni a számítások köztes eredményeit (lásd pl. Ethereum, ahol irányított aciklikus részgráfokat kell tárolni a memóriában), akkor egy kicsit más lesz a helyzet. Ezt a jelenséget szerettem volna kipróbálni és erre használtam a Google Cloud szolgáltatását, ahol tetszőlegesen bérelhetünk magunknak szervert.


Az amerikai régióban nem sikerült 16 CPU-nál nagyobb szervert bérelni, ezért a következő konfigurációt választottam:


Egy 16 CPU-s virtuális gép a Goolgle felhőben.

Ismeretes, hogy a Zcash blokklánc letöltéséhez minimum 25 Gb szabad hely kell, így 50 Gb-ot foglaltam és memóriát is bőségesen igényeltem, 60 Gb mennyiségben. A virtuális szerverben 16 darab Intel Xeon processzor van és ezeket szerettem volna Zcash bányászatra beállítani. Ez a virtuális gép egy hónapra 390 dollárba kerülne és csak ez lenne a bányászat költsége.


A Google Cloud-ban a virtuális gép létrehozása pillanatok alatt megtörtént és a legújabb Ubuntu rendszer inicializálása után letöltöttem a Zcash kódot, ahogyan azt a múltkor már bemutattam.


Miután lefordult a forráskód elindítottam a szoftvert és tudtam, hogy itt most sokat kell várni, mert a blokklánc hatalmas és a 25 Gb közeli adat letöltése majdnem 1 napot vett igénybe.


Innentől kezdődhetett a Zcash bányászat. A konfigurációs fájlban át lehet állítani az alkalmazott szálak számát és ezt próbáltam ki 1-16-ig, hiszen a virtuális gép 16 CPU-val rendelkezik.


Azt is tudjuk, hogy a Zcash bányászó program kiírja a lokális bányászati sebességünket Sol / s egységben, ami tulajdonképp azt jelenti, hogy egy másodperc alatt hány megoldást tud kiszámolni az eszközünk. Ez az a szám, amit egyébként be lehet írni az online kalkulátorokba is, amikor arra vagyunk kíváncsiak, hogy mennyit tudnánk kriptovaluta bányászattal keresni.


Nem húznám tovább az időt, inkább bemutatom a grafikus eredményeket. Ez a megoldás per másodperc adat a processzorok számának függvényében:


A Zcash algoritmus sebessége.

Láthatjuk, hogy az eredmény borzasztó. A probléma nem csak azzal van, hogy nagyon alacsony sebességet produkál a program, hanem azzal is, hogy hiába teszünk alá több processzort, nem nagyon skálázódik a dolog. Az ábrán látszik a sebesség maximuma is. Ez 8 szál körül van, de ekkor is csak 0.1-0.2 megoldást tud kiszámolni egy másodperc alatt. Csak referencia céljából mondom, hogy a Bitmain legújabb Antminer-e 420.000 megoldást ad egy másodperc alatt.


Érdekességként bemutatom a Zcash program memóriaigényét is:


A Zcash memóraigénye.


Sajnos a szálak számának növelésével nő ez is és a nagyobb tartományokban már akár 20 Gb memóriára is szükség lehet.


Ha elolvassuk a Zcash szoftver leírását láthatjuk, hogy az alapértelmezett kriptovaluta bányászatra használt algoritmus ugyan stabil, de nagyon lassú.


Gyors Zcash bányászalgoritmus


Ne csüggedjünk, mert van megoldás erre is!


Használjuk a holland matematikus John Tromp megoldó algoritmusát a következő parancs kiadásával:


echo 'equihashsolver=tromp' >> ~/.zcash/zcash.conf


Tromp megoldója állítólag sokkal jobban skálázódik több processzor használatával és errre voltam kíváncsi.


Nézzük az eredményeket!


Először is a megoldások száma másodpercenként Tromp algorimusával:


A Tromp algoritmus sebessége.

És hasonlóan a memóriaigényt is megvizsgáltam:


A Tromp algoritmus memóriaigénye.

Láthatjuk, hogy a Tromp algoritmusával végzett Zcash bányászat sokkal jobban skálázódik és memóriaigénye sem olyan jelentős. Már akár egy CPU-n is legalább tízszer gyorsabb, mint az alapértelmezett megoldó algoritmus, illetve látjuk meglehetősen kedvező skálázódási tulajdonságait is. A kezdeti szakaszban minden egyes CPU hozzáadása 1-1.5 megoldás per másodperces sebesség javulást eredményez. Mindezek ellenére a kezdeti 4-4.5 Gb-os memóriaigény nem változik jelentősen.


Világos továbbá az is, hogy az alapértelmezett megoldó algoritmus alkalmazásával 4-5 CPU mellett már megközelítőleg 10 Gb memóriára volt szükség, ami nagyon megnehezíti az ilyen virtuális szerveren való kriptovaluta bányászatot. Ennél természetesen nagyobb problémát jelent az alacsony Sol / s érték.


A kérdés mindig felmerül. Meddig tart a skálázódás? Milyen jó lenne, ha a végtelenségig menne. Ez általában nincs így. Főleg azért, mert egy idő után azok a feladatok lesznek az időigényesek, amelyek nem párhuzamosíthatóak jól és ezek fogják kitenni az algoritmus futási idejének jelentős részét.


Ha meg nézzük a Tromp algoritmus skálázódását, láthatjuk, hogy 8 szálig szinte tökéletesen skálázódik a dolog és utána kicsit leromlik a hatásfok. Ez valószínűleg a memóriával való kommunikáció következménye. Szerepet játszhat itt továbbá a számítási feladatok egyenletlen eloszlása is (load balancing), amely lehet egyébként algoritmikus probléma is.




Hozzászólások (0)


Érdekes bejegyzéseink

Partnereink írták

Scroll to Top