W świecie kryptowalut każdy projekt oparty na technologii blockchain ma swoją sieć. Sieć składa się z węzłów, które służą do przechowywania łańucha bloków. Każdy blok może przechowywać różnego rodzaju informacje takie jak na przykład transakcje rozliczeniowe. Węzeł to komputer, na którym uruchomiony jest odpowiedni program. Głównymi zadaniami takiego programu to szyfrowanie danych, sprawdzanie ich i rozwiązywanie konfliktów.

Masternode to właśnie taki węzeł, który wspiera sieć poprzez przechowywanie kompletnej kopii łańcucha bloków. Może on też wykonywać różnego rodzaju operacje w zależności od programu przygotowanego przez autorów danego projektu krypto. W zamian za to taki węzeł na swoje konto dostaje odpowiednią ilość kryptowaluty w stałych odstępach czasowych. Inaczej mówiąc dostaje zapłatę za swój wkład w utrzymanie sieci. To jest bardzo dobra alternatywa do kopania.

Sieć technologii blockchain

Poniżej przedstawię krok po kroku jak taki węzeł odpowiednio przygotować i uruchomić.

Zamówienie serwera

Najtańszym i najprostszym sposobem na uruchomienie serwera jaki znam jest jego wydzierżawienie. Są różne sposoby i serwery jakie można dzierżawić, ale do naszego celu najbardziej odpowiednim będzie serwer VPS. Virtual Private Server, bo o nim mowa to jak sama nazwa wskazuje prywatny serwer wirtualny. Jego przeciwieństwem jest serwer fizyczny, który jest ściśle związany z maszyną na której stoi. W przypadku serwera wirtualnego warstwa sprzętowa jest odseparowana dlatego na jednej maszynie może być uruchomionych wiele serwerów wirtualnych.

Na rynku jest wiele dostawców tego typu usług. Ja przy wyszukiwaniu odpowiedniej oferty przyjąłem kilka kryteriów – cenę, niezawodność, i polski oddział. Należy też zawsze sprawdzić czy projekt w którym chcemy założyć masternode nie ma specjalnych wymagań i odpowiedni VPS je spełnia. Zdecydowałem się ostatecznie na ofertę OVH VPS SSD 1. Samo złożenie zamówienia jest bardzo proste i składa się z kilku kroków:

  • Ustawienia opcji
  • Podsumowania
  • Konfiguracji
  • Akceptacji regulaminów
  • Płatności

Opcje

Wybór kategorii i produktu – zostawiłem domyślnie (ustawia się to zgodnie z tym co wybraliśmy wcześniej – VPS SSD 1)
Wybór lokalizacji serwera VPS – nie ma większego znaczenia
System operacyjny – wybór podyktowany rekomendacją z dokumentacji projektu w jakim chcemy założyć masternode
Opcje dla VPS – nie są potrzebne

Podsumowanie

W podsumowaniu mamy podgląd zamówienia. Można tam wybrać okres trwania umowy.

Okres trwania umowy

Można też wprowadzić kod promocyjny o ile taki posiadamy.

Sekcja VPS

Jak widać koszt dzierżawy na jeden miesiąc to 10,99 zł netto (13,52 zł brutto). Niestety długość trwania umowy nie wpływa na koszt w przeliczeniu na jeden miesiąc – zawsze jest to 10,99 zł netto. Z drugiej strony nie musimy od razu inwestować dużej kwoty i możemy co miesiąc przedłużać dzierżawę.

Konfiguracja

Można zdefiniować użytkowników i ich role w zarządzaniu serwerem.

Funkcje

Regulaminy

W tym kroku musimy zaakceptować regulaminy.

Płatność

Na tym etapie dokonujemy płatności. Po zrealizowaniu zapłaty po kilku do kilkunastu minutach powinniśmy dostać wiadomość email z informacjami konfiguracyjnymi do naszego serwera VPS. Powinniśmy mieć też dostęp do panelu klienta, w którym również są dostępne te informacje.

OVH – panel klienta, serwery VPS

Konfiguracja serwera

Połączenie

Do połączenia z serwerem używam klienta Bitvise SSH Client. Po jego zainstalowaniu i uruchomieniu ustawiamy nowy profil według danych jakie otrzymaliśmy w wiadomości z danymi konfiguracyjnymi z OVH.

Bitvise SSH Client – definiowanie profilu

Ustawiamy następujące pola według wartości z wiadomości email:

  • Host wpisujemy adres IP – Adres IPv4 serwera VPS
  • Username wpisujemy nazwę użytkownika – najprawdopodobniej root
  • Initial method zmieniamy na password
  • Password – pojawi się po zmianie initial method – należy tam wprowadzić hasło do konta administracyjnego

Po wprowadzeniu ustawień klikamy przycisk Login a na następnie Accept and Save w oknie weryfikacji klucza hosta. Jeśli wszystko przebiegło poprawnie to powinny otworzyć się dwa okna – konsoli i eksploratora plików SFTP. Zapisujemy profil klikając na przycisk Save profile as. Wybieramy lokalizację pliku, wprowadzamy nazwę i klikamy przycisk Save a następnie OK w oknie Saving Sensitive Information. Nasz profil powinien zostać zapisany i dzięki temu nie będziemy musieli ponownie wprowadzać danych po ponownym uruchomieniu klienta SSH.

Zabezpieczenie

Kolejnym krokiem będzie lepsze zabezpieczenie dostępu do naszego węzła tak żeby nikt niepowołany nie włamał się do niego i nie wprowadził niepożądanych modyfikacji. W tym celu w konsoli xterm wprowadzamy poniższą komendę:

ssh-keygen -t rsa -b 2048

Po wprowadzeniu komendy i naciśnięciu Enter zostaniemy poproszeniu o podanie ścieżki gdzie chcemy żeby nasz plik z kluczem ssh został zapisany – domyślnie plik zostanie zapisany w katalogu (/root/.ssh/id_rsa). Jeśli chcemy to zmienić to wprowadzamy inną ścieżkę.

Generowanie klucza ssh – podanie ścieżki

Naciskamy Enter i dwukrotnie wprowadzamy passphrase. Najlepiej wpisać sobie go np. w notatniku i skopiować do schowka a następnie w odpowiednim polu w konsoli xterm kliknąć prawym przyciskiem myszy – wartość ze schowka zostanie skopiowana do odpowiedniego pola w konsoli.

Generowanie klucza ssh – podanie passphrase

Następnie musimy zmienić nazwę pliku z kluczem ssh za pomocą komendy:

mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

i zmienić uprawnienia do niego za pomocą polecenia:

chmod 600 ~/.ssh/authorized_keys

Następnie należy otworzyć okno eksploratora plików Bitvise client (SFTP window) i skopiować wygenerowane klucze na swój komputer.

Bitvise SFTP – kopiowanie kluczy z serwera na swój komputer

Po kliknięciu prawym przyciskiem myszki wybieramy z menu kontekstowego opcję Download.


Bitvise SFTP – opcje plików

Następnie usuwamy klucz prywatny z serwera za pomocą komendy:

rm ~/.ssh/id_rsa

Teraz musimy wyłączyć dostęp za pomocą hasła dla root przez ssh. W tym celu musimy wyedytować plik sshd_config za pomocą komendy:

pico /etc/ssh/sshd_config

Modyfikacja sshd_config – wyłączenie dostępu za pomocą hasła dla root przez SSH

Zmieniamy linijkę PasswordAuthentication tak żeby obok było słowo no a przed nie było znaku #. Po zmianie powinno to wyglądać tak jak na screen-ie powyżej. Po wykonaniu modyfikacji zapisujemy zmiany w pliku za pomoc klawiszy Ctrl + x a następnie naciskamy “Y” i Enter.

Kolejnym krokiem jest restart usługi ssh za pomocą komendy:

systemctl reload sshd

a następnie restartujemy maszynę za pomocą polecenia:

reboot

Teraz musimy zmienić profil do logowania do naszej maszyny w Bitvise SSH Client. W pierwszej kolejności musimy zaimportować klucz który wcześniej pobraliśmy. Musimy kliknąć przycisk “Client key manager”:

Bitvise SSH Client – Client key manager

Następnie musimy kliknąć przycisk Import i wskazać odpowiedni plik id_rsa.

Bitvise Client Key Management – import klucza

i wprowadzić nasz passphrase który wprowadziliśmy podczas generowania klucza na maszynie.

Bitvise Client Key Management – wprowadzanie passphrase

Po wpisaniu passphrase klikamy Continue i zamykamy okno Client Key Management. Wracamy do okna profilu i zmieniamy pole Initial method na publickey – pojawi się pole Client key, w którym wybieramy klucz który zaimportowaliśmy wcześniej.

Wprowadzamy po raz kolejny Passphrase w polu o takiej nazwie i klikamy Login. Jeśli wszystkie kroki wykonaliśmy poprawnie to logowanie powinno zakończyć się sukcesem i tak samo jak podczas logowania za pomocą hasła powinny otworzyć się dwa okna – jedno z konsolą xterm a drugie z eksploratorem plików SFTP.

Zwiększenie pamięci serwera

Na koniec w oknie konsoli xterm wprowadzamy po kolei komendy:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab

Konsola xterm – ustawienie pliku swap

Ma to na celu zwiększenie dostępnej pamięci operacyjnej – jest to wymagane dla maszyn które posiadają mniej niż 2 Gb RAM jakie są wymagane dla naszego węzła.

Uruchomienie masternode

Na początek, i w zasadzie od tego powinniśmy zacząć ten wpis, powinniśmy wybrać projekt, który chcemy wesprzeć zakładając masternode. Bowiem w każdym projekcie zakładanie i wymagania co do masternode mogą być różne. Na podstawie odpowiednich wytycznych powinniśmy dobrać właściwy serwer. Nie jest to jednak mój pierwszy masternode, dlatego zamawiając serwer z góry wiedziałem jakie oprogramowanie tam zainstaluję.

Warto jednak poświęcić trochę czasu na analizę różnych projektów ponieważ uruchomienie masternode wymaga pewnej inwestycji. Musimy bowiem oprócz dzierżawy serwera zakupić odpowiednią ilość kryptowaluty danego projektu, żeby węzeł mógł zostać uruchomiony. Jest to tak zwane zabezpieczenie (collateral), które przez cały czas uruchomienia węzła musi znajdować się na wskazanym adresie.

Zestawienie różnych projektów, które umożliwiają uruchomienie masternode jest dostępne na stronie masternode.online. Są tam linki do odpowiednich projektów oraz między innymi wolumen, procentowa stopa zwrotu z inwestycji, ilość monet jaka jest potrzebna do uruchomienia i orientacyjna wartość takiego węzła na start. Na potrzeby tej instrukcji wybrałem projekt który jest w miarę pewny – stosunkowo długo na rynku i stosunkowo duża społeczność i wolumen – czyli SmartCash.

SmartCash – instalacja i uruchomienie portfela

Jest wiele portfeli na których można trzymać SmartCash. Wszystkie są wylistowane tutaj. Natomiast na potrzeby masternode trzeba zainstalować Node Client, który też jest portfelem, ale wymaga pobrania całego łańcucha bloków. Dzięki temu ma nieco więcej funkcji. Node Client można pobrać ze strony z listą portfeli lub klikając na link. Po instalacji i uruchomieniu klienta musimy poczekać aż cały łańcuch bloków zostanie pobrany. Może to potrwać kilkanaście do kilkudziesięciu minut.

Czekamy aż portfel się całkowicie zsynchronizuje a w prawym dolnym rogu klienta pojawi się fajeczka:

Node Client – stan zsynchronizowanego portfela

SmartCash – konfiguracja portfela

Następnie otwieramy okna adresów odbioru Plik => Adresy odbioru i klikamy przycisk “Nowy”. Pojawi się okno w którym wprowadzamy etykietę dla adresu:

Node Client – nowy adres odbioru

Klikamy OK i na liście pojawi się nowy wpis z etykietą o nazwie, którą wprowadziliśmy i odpowiednim adresem.

Node Client – adresy odbioru

Klikamy prawym przyciskiem myszki na adresie i kopiujemy adres do schowka i zapisujemy go do notatnika.
Następnie otwieramy okno debugowania: Pomoc => Okno debugowania i klikamy zakładkę “Konsola“.

Node Client – okno debugowania – konsola

W konsoli na dole w polu tekstowym wprowadzamy komendę:

smartnode genkey

Wygenerowany na ekranie klucz również kopiujemy do notatnika obok wcześniej skopiowanego adresu. Następnie należy zaszyfrować portfel za pomocą hasła. Można to zrobić klikając w menu Preferencje => Zaszyfruj portfel. Pojawi się okno do wprowadzenia hasła. Po podaniu hasła klikamy OK. Następnie w oknie ostrzegawczym potwierdzamy że chcemy zaszyfrować portfel i w oknie informacyjnym klikamy ponownie OK. Ta operacja jest nieodwracalna więc bardzo ważne jest żeby nie zgubić hasła ponieważ stracimy dostęp do wszystkich swoich monet na portfelu. Po zamknięciu klienta uruchamiamy go ponownie.

Możemy teraz przelać odpowiednią ilość monet na zapisany wcześniej w notatniku adres. W jednej transakcji musimy przelać dokładnie 10000 monet – nie mniej i nie więcej. Monety możemy kupić na kilku giełdach. Ja polecam giełdę CryptoBridge (zdecentralizowana, wolna, mały wolumen), albo HitBTC (zcentralizowana, szybka, duży wolumen). Po przelaniu monet otwieramy ponownie okno debugowania na zakładce konsola i wprowadzamy komendę:

smartnode outputs

Ponownie kopiujemy wygenerowaną w konsoli wartość do notatnika – chodzi głównie o pole collateral_output_txid. Jest to identyfikator naszej transakcji na 10000 monet. Wskazuje on na transakcję, która stanowi zabezpieczenie potrzebne do uruchomienia węzła.

SmartCash – instalacja oprogramowania na serwerze

Wracamy do naszego wcześniej przygotowanego serwera otwierając okno konsoli. Pobieramy skrypt instalacyjny za pomocą komendy:

wget https://rawgit.com/smartcash/smartnode/master/install.sh

zostanie pobrany skrypt instalacyjny który uruchamiamy poleceniem:

bash ./install.sh

Zaraz po uruchomieniu skryptu zostaniemy poproszeni o podanie portu SSH, ale dla domyślnego portu 22 można to pominąć klikając Enter.

Konsola xterm – uruchomienie instalacji oprogramowania smartcash na serwerze

Następnie zostaniemy poproszeni o podanie naszego klucza z portfela, który wygenerowaliśmy wcześniej za pomocą komendy genkey.

Konsola xterm – wprowadzanie klucza genkey wygenerowanego w Node Client

Wklejamy tam nasz klucz (kopiujemy z notatnika do schowka i klikamy w konsoli prawym przyciskiem myszki i Enter). Rozpocznie się instalacja która potrwa kilkadziesiąt sekund. Po instalacji program smartcashd uruchomi się automatycznie. Status działania programu można sprawdzić za pomocą komendy:

smartcash-cli getinfo

Powinna pojawić się na ekranie informacja o statusie synchronizacji, gdzie w polu blocks będzie liczba zsynchronizowanych bloków.

Aby węzeł zaczął działać cały łańcuch bloków musi zostać pobrany a więc liczba bloków powinna być zgodna z tą zapisaną w eksplorerze:

Smartcash – uruchomienie węzła w portfelu

W czasie oczekiwania na synchronizację wracamy do naszego portfela i wprowadzamy informację o naszym węźle. W zakładce SmartNodes klikamy przycisk Create Smartnode.

Node Client – tworzenie węzła
Node Client – wprowadzanie danych węzła

I w polach Alias wprowadzamy nazwę naszego węzła (dowolna), a w polu IP-Address wprowadzamy adres IP naszego serwera VPS. Następnie na dole w polu Smartnode Key klikamy przycisk Custom SmarnodeKey i wprowadzamy w okienku nasz klucz który wygenerowaliśmy wcześniej za pomocą polecenia genkey. Ten sam klucz podaliśmy również podczas instalacji programu na naszym serwerze. Trzeba też z listy wybrać zabezpieczenie (collateral) w postaci naszej transakcji 10000 SMART i na koniec kliknąć przycisk Apply. Jeśli wszystko przebiegnie poprawnie to na liście My SmartNodes pojawi wpis zgodny z tym co wprowadziliśmy. Będzie to wyglądać mniej więcej tak:

Node Client – moje węzły

SmartNode03 to nowo uruchomiony węzeł który nie ma jeszcze zsynchronizowanego łańcucha bloków. Dlatego ma status MISSING. Inaczej mówiąc nie został jeszcze aktywowany. W celu jego aktywacji musimy wybrać dany węzeł i kliknąć przycisk Start MISSING i potwierdzić tą operację.

Node Client – Start MISSING

Po uruchomieniu status powinien zmienić się na PRE_ENABLED a po zsynchronizowaniu danych łańcucha bloków na ENABLED. Możemy monitorować status węzła na serwerze za pomocą polecenia:

smartcash-cli smartnode status

Konsola xterm – status węzła przed aktywacją
Konsola xterm – status węzła po aktywacji i synchronizacji

Podsumowanie

Proces instalacji i konfiguracji masternode może wydawać się skomplikowany. Myślę jednak, że nawet ktoś bez zaawansowanej wiedzy technicznej jest w stanie przejść przez ten proces i cieszyć się z rezultatów. Wiele jest różnych projektów, które umożliwiają uruchamianie tego typu węzłów i stale ich przybywa. W niektórych projektach proces uruchamiania jest dużo prostszy. Nie każdy jednak projekt zasługuje na uwagę pod kątem analizy fundamentalnej i rzeczywistej stopy zwrotu.

2 komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *