Dzisiejszy wpis jest o temacie kryptowalut i ich wydobywaniu przy pomocy „normalnych komputerów”. O kryptowalutach zostało powiedziane już prawie wszystko. Nikt nie był jeszcze na tyle dziwny by kopać to przy pomocy CPU na bezdyskowym klastrze dlatego musiałem to zrobić.

Kopanie kryptowalut przy pomocy klastra – wprowadzenie

Kopanie kryptowalut w dużym uproszczeniu polega na odgadywaniu kolejnych bloków które odszyfrowujemy zgadując ciąg bazujący na SHA-256. Czyli w prostych słowach nasza maszyna zgaduje coś zakodowanego w danym bloku i jeżeli tam jest blok zawierający bitcoina to zarobiliśmy kasę.

Kopanie SOLO czy w kopalni

Jeżeli chcemy wydobywać kryptowaluty to drogi do tego są dwie. Możemy kopać samodzielnie i liczyć na szczęście że uda nam się trafić odpowiedni blok (nagroda jest wtedy wielka – obecnie 12,5 BTC) lub kopać w tzw kopalni która skupia podobnych nam świrów z tym że nagroda za kopanie jest dzielona na górników. Kopanie solo to w 2018 roku już zabawa dla prawdziwych maniaków – szansa na to że coś wykopiemy jest niższa niż trafienie dwóch szóstek w totka – lepiej ewentualną kasę na zakup koparki, zainwestować w kupony Lotto. Oczywiście nie byłbym sobą gdybym i tego nie próbował – niestety poległem na konfigurowaniu własnej kopalni i pod debianem wydało mi się to niebezpieczne.

Druga opcja czyli kopanie w kopalni to połączenie sił z innymi górnikami i wspólna praca. Po wykopaniu waluty jest ona dzielona na górników. Ta metoda jest też łatwiejsza w konfiguracji i instalacja gotowego noda kopiącego na CPU to jakieś 30 minut roboty


Slush Pool - kopalnia BTC, Zcash

Czy kopanie jest opłacalne?

Zdecydowanie nie na domowym PC – przy najpopularniejszych walutach jak BTC czy ETH nic nie zarobimy bez olbrzymiej inwestycji w sprzęt. Koparka która pozwoli nam wydobywać musi być oparta na wydajnych kartach graficznych (kartach w liczbie mnogiej) lub musi to być dedykowana koparka na układach ASIC – takie rzeczy kosztują już po kilkanaście tysięcy złotych więc doliczając do tego nawet najtańszy prąd jaki się da to w obecnych czasach nie ma szans wyjść na zero. Trzeba też pamiętać że jedna koparka to w dzisiejszych czasach bardzo niewiele. Mimo bardzo wysokiego kursu Bitcoina jeżeli doliczymy koszt prądu (a koparki potrzebują prądu jak do spawania) to jedyną szansą na zarobek jest wielki wzrost wartości kryptowalut w przyszłości. Może się udać ale nie musi – dla mnie to jedna wielka spekulacja 🙂
Mało kto pamięta też że wraz z wzrostem mocy obliczeniowej koparek trudność kopania wzrasta a sama nagroda za blok spada o połowę co 4 lata.

Bitcoin - logo

Czy kopanie na komputerze na CPU ma sens?

Jeżeli samo kopanie przy pomocy GPU czy dedykowanych układów jest raczej ryzykownym pomysłem (dla najpopularniejszych walut) to kopanie przy pomocy CPU to już totalne dziwactwo. Dlatego właśnie to testuje 🙂

Jaka waluta?

Najpopluarniejszy jest oczywiście bitcoin zaraz po nim ethereum (kurs obecnie to około 3000 USD). Kryptowalut jest w tej chwili bardzo dużo więc jest w czym wybierać. Na potrzeby zabawy skupiłem się na BTC i Zcash.

Bezdyskowa koparka kryptowalut

Do kopania Zcash wykorzystałem klaster bezdyskowy który prezentowałem w artykule:
https://supercomputers.pl/moj-wlasny-diskless-klaster-typu-beowulf
Przeszedł on modyfikacje polegające na wymianie głównej jednostki, zmianie systemu na Debiana 9, 64bit oraz dodaniu software’owego RAID 1 na głównym komputerze. Komputer z którego zaciągany jest system na nody wyposażony jest w dwie karty sieciowe: pierwsza to kontakt ze światem druga to połączenie z nodami i DHCP.

Bezdyskowy klaster debian

Konfiguracja:
Master:
CPU: Core 2 duo
RAM: 4 GB
HDD: 2×80 GB RAID 1
2x LAN

RAID master

Nody:
6x FS P4 HT 2GB RAM
1x DELL P4 HT 2 GB RAM
2x DELL C2D 2 GB RAM
1x HP AMD 3Core 8 GB RAM

Sieć
2 switche 8 port 1 Gbit
2 x WAN (LTE + DSL) – DSL postawowe,  LTE zapasowe łącze.

Sumując: mamy 10 fizycznych CPU, 26 GB RAM. Wszystko pracuje pod kontrolą Debiana 9 64Bit.

Każda maszyna to osobny komputer który uruchamia się poprzez sieć ładując system z komputera master. Każdy node ma odpalone polecenie do uruchomienia kopania.

Klaster uruchomiony

Jak zacząć kopać – przygotowania

Wybieramy walutę – jest tego już chyba 1500 i przy wyborze waluty kierowałbym się przeczuciami (!!), tym czy jest nowa (wtedy łatwiej coś wykopać) oraz opiniami w internecie (ale bez przesady). Ja postawiłem na zcash i trochę na BTC.
Nim zaczniemy kopać powinniśmy oczywiście zadbać o jakiś portfel dla naszej kryptowaluty – tutaj najważniejsze żeby wybrać możliwie najbezpieczniejsze rozwiązanie. W przypadku Bitcoina korzystałem z Bitcoin Core który mam postawiony na ubuntu na maszynie wirtualnej backupowanej codziennie.
Kolejna sprawa to wybór kopalni. Polecana do BTC jest p2pool ja jednak skorzystałem z SlushPool – po prostu ma bardzo fajny panel, apkę na iOS i androida dzięki czemu dostaje powiadomienia o nowym bloku, mogę skontrolować czy mój klaster wykonuje swoją robotę prawidłowo i ogólnie jest cool. Pozwala też na kopanie obu kryptowalut którymi się zainteresowałem

ZACASH – kopanie na linuxie

Do kopania ZCASH korzystam z programu nheqminer – ważne dla mnie jest to że mogę w wierszu poleceń ustawić ile wątków ma być wykorzystywanych co pozwala mi na łatwiejsze zarządzanie zasobami na nodach.

Opis instalacji zcash w debianie 9:
Instalujemy najpierw podstawowe pakiety:
apt-get install screen cmake git make build-essential libboost-all-dev

Pobieramy z gita nheqminer
git clone --recursive https://github.com/kost/nheqminer.git

Przechodzimy do katalogu w którym mamy nheqminer i tworzymy katalog build:
cd nheqminer/nheqminer
mkdir build
cd build

Teraz wydajemy polecenie:
cmake -DXENON=1 ..

i na koniec:
make

Teraz rejestrujemy się w slushpool lub innej kopalni, podajmy adres do wypłat i w przypadku slush pool konfigurujemy połączenie z kopalnią korzystając z takiego adresu:

stratum+tcp://eu.zec.slushpool.com:4444

U mnie polecenie uruchamiające kopanie w screen wygląda następująco:

screen -dmS sh /nheqminer/nheqminer/build/nheqminer -l eu.zec.slushpool.com:4444 -u USER.NAZWA_NODA -t 1

Dzięki poleceniu screen możemy zamknąć terminal i powrócić do niego wpisując:
screen -ls

Parametr -t oznacza liczbę wątków które przeznaczamy na kopanie.

Wpisujemy nazwę naszej sesji i mozemy obserwować czy kopiemy

Teraz żeby na nodach odpalało się przy starcie systemu edytujemy crona
crontab -e

I dodajemy polecenie:

@reboot screen -dmS sh /nheqminer/nheqminer/build/nheqminer -l eu.zec.slushpool.com:4444 -u USER.NAZWA_NODA -t 1

W zasadzie kopanie ZCASHa na nodzie mamy uruchomione. Jeżeli dodaliśmy to w cronie przy starcie to robimy reboot i już kopiemy

Kopanie Bitcoin przy pomocy CPU

Tak jak wspomniałem wcześniej kopanie Bitcoinów jest kompletnie bezsensowne ale chodzi przecież o eksperyment.

Do kopania Bitcoina wykorzystałem skrypt cpuminer

Instalację rozpoczynamy od instalacji niezbędnych pakietów:
apt-get install gcc make libcurl4-openssl-dev screen

Potem pobieramy pakiet i instalujemy:
wget https://github.com/pooler/cpuminer/releases/download/v2.5.0/pooler-cpuminer-2.5.0.tar.gz
tar xzf pooler-cpuminer-*.tar.gz
cd cpuminer-*
./configure CFLAGS="-O3"
make

Po instalacji musimy dowiedzieć się jaki jest adres URL w slushpool do kopania. W przypadku europy wygląda on następująco:

stratum+tcp://eu.stratum.slushpool.com:3333

Kompletne polecenie wygląda tak:

screen -dmS sh /cpuminer-2.5.0/minerd --url=stratum+tcp://eu.stratum.slushpool.com:3333 -u USER.NAZWA_NODA -a sha256d

Oczywiście tu podobnie jak w przypadku nheqminer możemy uruchamiać przy starcie naszego linucha umieszczając to w crontabie

@reboot screen -dmS sh /cpuminer-2.5.0/minerd --url=stratum+tcp://eu.stratum.slushpool.com:3333 -u USER.NAZWA_NODA -a sha256d

Efekty kopania kryptowalut

Test 1 – cały klaster kopie ZCASH 1 wątek per nod

Po instalacji skryptów odpaliłem wszystkie nody. Trzeba chwile poczekać aż wszystko się połączy i zostanie wykryte w kopalni.

Po chwili już pojawiły się pierwsze wyniki:

Kopalnia kryptowalut

Jak widać moc obliczeniowa mojego klastra została oceniona na pomarańczowo czyli „LOW”.

1.448 h/s przy mocy całej kopalni ZCASH na poziomie 3,442 Mh/s i ponad 5500 aktywnych workerach to naprawdę bieda.

Maksymalnie podskoczyło mi do 5,500 h/s czyli raczej mało 🙂

 

Test 2 – cała kopalnia kopie ZCASH – 2 wątki per nod.

W tej konfiguracji nody z procesorami P4 wykorzystują praktycznie całą swoją moc obliczeniową.

Dwa wątki zcash

 

Czekamy aż się rozkręci:

Zcash kopanie kryptowaluty

 

Czyli jeden ZCASH wykopiemy za paredziesiąt lat 🙂

Test 3 – cała kopalnia kopie ZCASH – wyciskamy TURBO MOC

Ostatni test w którym ustawiłem liczbę wątków na 4 co przy P4 jest bez sensu ale na maszynie HP znacznie poprawia wydajność.

Po 15 minutach od odpalenia ostatniego noda jest na zielono:

Zcash sukces

 

Niestety oznacza to tylko tyle że jest lepiej niż na ledwo działającej koparce na którą ktoś właśnie wylał kubek kawy 🙂

 

Kryptowaluty a ciepło

To jest niestety często pomijany aspekt. Samo odprowadzanie ciepła można zrealizować poprzez dokładanie kolejnych wentylatorów jednak problemem jest chłodzenie pomieszczenia w którym znajduje się nasza maszyna kopiąca. Powiem tak: w tej chwili przy włączonych wszystkich nodach bez dyskow twardych generujących ciepło, przy otwartym oknie (-5 stopni na zewnątrz) mam w nieogrzewanym pomieszczeniu temperaturę 24 stopnie 🙂

 

Kopanie Bitcoin.

Tutaj co do sensowności kopania na takich maszynach posłużę się dość wymownym obrazkiem:

Bitcoin kopalnia

Jeżeli to nie działa na wyobraźnie to opiszę to przez porównania.

Eh/s to skrót od Eksa. wg. przedrostów SI to 10 do 18 potęgi czyli trylion !

Teraz najważniejsze- najpopularniejsza koparka Bitcoin na świecie czyli Antminer s9
ma mocy obliczeniowej 13,5 Th/s. czyli tera = 1 000 000 000 000 = 10 do potęgi 12 czyli po naszemu bilion.

Koparka kosztuje około 12000 zł i ma pobór mocy około 1300 W.

Wystarczy policzyć koszt zakupu + koszt prądu przy spojrzeniu na to jak niewielki udział ma taka koperka w mocy tylko tej jednej kopalni !!!

Ile kasy „zeżre” nam ta koparka:

Jeżeli nasza stawka za prąd to powiedzmy 0,57 do 0,60 zł za 1 kw/h (enea, pge) to na godzinę zużywamy prądu za 1 zł. Czyli na dobę 24 zł x 30 dni to za sam prąd 720 zł.
Czyli przy obecnym kursie BTC na poziomie powiedzmy 28000 zł musielibyśmy wykopać 0,02 BTC żeby pokryć zużycie energii. Nie ma na to szans ale tutaj nadzieją na urobek jest spekulacja.

Jeżeli Bitcoin będzie za 100000 zł to żeby opłacić prąd musielibyśmy wykopać tylko 0,007 BTC. Niestety drobnym druczkiem dopisuje – nie uwzględniam kosztów serwisowania koparki, amortyzacji oraz tego że trudność cały czas wzrasta a nagroda się zmniejsza.

Ten kto kopał w dawniejszych czasach kiedy bitcoin powstawał już dawno jest milionerem ten kto teraz wchodzi w ten biznes kupując koparkę w leasing, wynajmując ją czy kupując za gotówkę zdecydowanie naraża się na olbrzymie ryzyko że utraci całe zainwestowane środki.

Jaki czas na wykopanie jednego BTC pokazał mi moj klaster?

Uwaga Uwaga Uwaga: w pierwszym rzucie pokazało mi że 0,1 BTC (2800 zł) wykopie za 240 tys lat. TAK 240 000 lat.

Klaster widok z bliska

Podsumowanie o kopaniu kryptowalut

Jak widzicie kopanie używając CPU pomimo dość dużej liczby użytych komputerów i ich dość sporej mocy obliczeniowej jest kompletnie bez sensu. Moc takiej liczby kompów można wykorzystać w całkowicie inny sposób lepiej ją monetyzując.

Kopanie przy pomocy koparek, kart graficznych jest bardzo opłacalna w pierwszym okresie powstania waluty pod warunkiem że stanie się ona popularna i jej kurs będzie wzrastał. Później gdy liczba kopiących daną walutę wzrasta nasz zarobek znacznie się zmniejsza. Wchodzenie w interes kopania Bitcoina w tym momencie jest kompletnie bez sensu.

Czy dorobiłem się milionów na zcash?

Oczywiście nietrudno wydedukować że nie i kompletnie nie o to mi chodziło – blockchain to coś fajnego, ciekawego. Dawno nie zdarzyło się w światku IT zjawisko na taką skalę które pasjonuje nawet ludzi niezwiązanych z branżą. Chciałem spróbować, pobawić się i uważam że było warto.
Co do zarabiania to postaram się w najbliższym czasie uruchomić koparkę opartą na GPU jednak cały czas zbieram karty i szukam wolnej chwili to poskładać. Chciałem też dołożyć kolejne nody na xeonach ale to już trochę przesada:

Dodatkowe nody na xeonach

Obserwacje, teorie spiskowe

Kurcze muszę o tym napisać ! Większość ludzi zdaje sobie sprawę że Bitcoin i kryptowaluty to bańka na której Ci co mieli zarobić już dawno zarobili a Ci co zainwestowali teraz to prawdopodobnie stracą. Oby nie ale trochę tak to wygląda.
Moja teoria spiskowa dotyczy jednak samej konstrukcji koparek. Wszystkie koparki to oparte są na dedykowanych układach ASIC i są już skonfigurowane do użytku po podłączeniu do prądu. Wrzucamy ustawienia kopalni, jakiś adres do wypłat przez interfejs webowy i that’s it. A co jeśli w koparkach zaszyty jest soft który daje do niej dostęp z zewnątrz i pozwala na niej wywołać dowolne polecenie? Wyobrażacie sobie jeżeli okazało by się to prawdą to w rękach jakiegoś MEGA MÓZGA jest moc obliczeniowa większa niż najlepszych superkomputerów na świecie razem wziętych.

michal
Jestem wielkim fanem technologii,jak to moja babcia mnie zawsze nazywała "informatykiem". Moimi największymi pasjami jest wykorzystanie automatyzacji, technologii do usprawnienia procesów w e-commerce. Uwielbiam retro komputery, budowanie klastrów. Ogólnie jestem trochę dziwakiem

Artykuły autora | Strona www autora

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.