Konfiguracja węzła (node) i forging w Infinity Economics

 

Podstawowe pojęcia z dziedziny blockchain w kontekście platformy Infinity Economics.

Blockchain
Łańcuch bloków – łańcuch bloków informacji. Informacje o transakcjach grupowane są w bloki informacji, których spójność, powiązanie i bezpieczeństwo zapewnia kryptografia. Kolejne bloki są powiązane ze sobą poprzez kryptografię w taki sposób iż powstanie kolejnych bloków wymaga specjalnych informacji z poprzednich bloków wraz ze znacznikami czasu i dlatego stanowią nierozerwalny łańcuch bloków informacji.

Node
Węzeł sieci, w technologi blockchain – komputer z dostępem do Internetu z własnym stałym adresem IP i uruchomionym oprogramowaniem danego blockchain. Po zsynchronizowaniu z siecią i samym blockchain, stanowiący jeden z węzłów w rozproszonej sieci w danym blockchain.
 Na nodach przechowywany jest blockchain, im większa liczba rozproszonych nodów tym bezpieczniejsza jest sieć i blockchain.

Account
Konto, numer konta, numer portfela w formacie XIN-XXXX-XXXX-XXXX-XXXXX

Wallet
Portfel elektroniczny, aplikacja, która umożliwia nam dostęp do naszego konta i operowanie na naszych zasobach (kryptowaluta, udziały, aliasy, wiadomości, itd.).

XIN
Jednostka kryptowaluty oparta na blockchain Infinity Economics.

PoS – Proof-of-Stake
Algorytm służący do osiągnięcia konsensusu w rozproszonej sieci z technologią blockchain. Twórca następnego bloku wyłaniany jest na podstawie kombinacji takich kryteriów jak zasobność, wiarygodność, wiek – czyli na podstawie dowodu stawki.
PoS jest nowoczesnym, ekologicznym algorytmem gdyż w przeciwieństwie do PoW (Proof-of-Work) nie wymaga współzawodnictwa w byciu pierwszym w znalezieniu rozwiązania zagadnienia matematycznego z użyciem ogromnej mocy obliczeniowej.

Forging
Geneza słowa – proces polegający na kształtowaniu metalu z użyciem sił ściskających – wydobywanie kształtu.
Pozyskiwanie waluty XIN.

 

Informacje i wymagania.

Oprogramowanie blockchain platformy Infinity Economics stworzone zostało w środowisku Java.
Takie rozwiązanie pozwala nam uruchomić oprogramowanie pod kontrolą dowolnego systemu operacyjnego dla którego istnieje środowisko Java Runtime (Linux, Windows, macOS, Solaris).

Uruchomienie własnego noda sprowadza się zatem do uruchomienia oprogramowania w środowisku Java na komputerze podłączonym do Internetu z własnym publicznym adresem IP.

Aby utrzymanie noda miało jakiś wymierny sens dla IE i dla nas (np. podnoszenie bezpieczeństwa czy wiarygodności i wydajności sieci IE) musi to być maszyna przystosowana do pracy ciągłej podłączona do Internetu z własnym publicznym i stałym adresem IP. Takie podejście umożliwi nam zajęcie wyższego miejsca w rankingu nodów http://www.infinity-economics.org/peer/#/peers
Po spełnieniu tych warunków możemy użyć naszego noda w celu skutecznego wydobywania XIN dla nas.

W praktyce dziś minimalna konfiguracja, na której możemy uruchomić node, to np. maszyna wirtualna z systemem Linux, 1 rdzeń, 1GB RAM, 16GB dysk czyli np. tzw. VPS (Virtaul Privat Server), którego ceny przy takiej konfiguracji zaczynaja się od kilkunastu zł/mc.
Wydajność maszyny ma jednak wpływ na miejsce w rankingu i przyszłe potrzeby związane z rosnącą liczbą transakcji w blockchain’ie IE. Dlatego taka konfiguracja może służyć tylko celom “poznawczo-badawczym”.
Aby efektywnie uczestniczyć w sieci IE i pozyskiwać XIN’y trzeba użyć maszyny z większą wydajnością i dopasowywać ją do aktualnych potrzeb.

 

 

Uruchomienie własnego węzła (node)

Przygotowanie komputera/serwera z systemem operacyjnym Debian i środowiskiem Java RE

Instalacja systemu operacyjnego Linux Debian na komputerze

Opis przeznaczony jest dla osób, które nie mają doświadczenia w instalacji systemu Debian ale posiadają podstawową wiedzę z zakresu Informatyki. Potrzebny będzie komputer (sprawny stabilny) z napędem optycznym, dyskiem twardym (dane zostaną utracone!), przeznaczony tylko do obsługi węzła, z dostępem do Internetu, ze stałym łączem i rzeczywistym stałym adresem IP. Skonfigurujemy go do pracy pod systemem Linux z dystrybucją Debian.

Potrzebujemy obraz płytki CD z instalacją systemu, najlepiej bieżący, stabilny, na moment tworzenia tego opisu np.:
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.2.1-amd64-netinst.iso
Obraz nagrywamy na CD, uruchamiamy komputer tak aby wystartował z naszej płyty CD.
Nasz node powinien mieć stały adres IP świadomie nadany więc aby uniknąć komplikacji z późniejszą konfiguracją adresu możemy odłączyć interfejs sieciowy od sieci z usługą DHCP.
Po udanym starcie powinniśmy zobaczyć listę opcji, wybieramy drugą 

Install 

czyli bez sytemu graficznego.
Następnie wybieramy język (w tym przykładzie użyjemy polskiego)

Polish - Polski

, kraj –

Polska,
układ klawiatury - polski

.
Jeśli w sieć, do której podłączony jest komputer, jest usługa DHCP to zostanie przydzielony adres IP.
W przeciwnym przypadku pojawi się komunikat: 

Automatyczna konfiguracja sieci nie powiodła się

 i możemy przejść

Dalej

aby wybrać

Konfiguruj sieć ręcznie

.
Wprowadzamy adres IP, maskę sieci, bramę sieciową, serwer nazw/DNS, nazwę hosta i nazwę domeny.
Jeśli wcześniej odłączyliśmy interfejs sieciowy teraz możemy go podłączyć.
Konfigurujemy hasło administratora (użytkownika root) oraz nazwę i hasło pierwszego użytkownika – nasze konto, np. podając imię w nazwie użytkownika.
Teraz dysk – Uwaga, przedstawiona tu procedura powoduje utratę danych na dysku!
Jeśli przeznaczamy cały dysk na ten system wybieramy opcję

Przewodnik - cały dysk

, wskazujemy dysk i wybieramy

Wszystko na jednej partycji

, następnie

Zakończ partycjonowanie i zapisz zmiany na dysku

.
Pojawi się pytanie

Zapisać zmiany na dyskach?

z domyślnym

Nie

– zmieniamy na

Tak

i potwierdzamy.

Przeskanować inną płytę CD lub DVD? - Nie
Kraj serwera lustrzanego - Polska
Serwer lustrzany z archiwum Debiana - pierwszy z listy - ftp.pl.debian.org
Dane serwera pośredniczącego - puste - Dalej
Chcesz wziąć udział w konkursie na najpopularniejszy pakiet? - Nie
Wybierz oprogramowanie do instalacji: 

potrzebujemy tylko

Podstawowe narzędzia systemowe

i ewentualnie

Serwer SSH

jeśli chcemy łączyć się zdalnie z naszym komputerem. Resztę opcji wyłączamy i

Dalej
Zainstalować program rozruchowy GRUB w głównym rekordzie rozruchowym? - Tak

Wybieramy naszą partycję (najprawdopodobniej druga opcja) np.

 /dev/sda
Instalacja zakończona 

– wyjmujemy CD i

 Dalej

Komputer wykona restart i załadaju świeżo-zainstalowany system.
Gratulacje!

Wirtualna maszyna VPS

Drugą możliwością jest zakup usługi u operatorów świadczących usługę VPS (Virtual Private Server). W przeglądarce wystarczy wpisać VPS i ukaże się nam cała lista usługodawców.
W takim rozwiązaniu dostaniemy, w zależności od wyboru, maszynę z preinstalowanym systemem operacyjnym.

 

Przykład konfiguracji węzła (node)

Po uruchomieniu systemu logujemy się jako root i instalujemy niezbędne oprogramowanie.
Instalujemy oprogramowanie do rozpakowania archiwum

apt-get install unzip

Potrzebujemy dobrej synchronizacji czasu

apt-get install ntp

zgadzamy się na dodatkowe pakiety

T

Konfigurujemy swoją strefę czasową

dpkg-reconfigure tzdata

Teraz środowisko Java

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-get install dirmngr
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install oracle-java8-installer

zgadzamy się na dodatkowe pakiety

T

zgadzamy się na licencję i warunki Oracle

TAK

ściągamy oprogramowanie Infinity Economics, obecna wersja 0.1.1 (niedługo ukaże się upgrade)

cd /root
wget http://www.infinity-economics.org/download/core-build-0.1.1.zip

Weryfikujemy sumę kontrolną sha256

shasum -a 256 core-build-0.1.1.zip

porównujemy wynik polecenia z sumą kontrolną

f582ea6f30240cc605e212ab501f09be4953f8bea9cccdbaa2409635a08c1766

odpowiednią tylko dla tej wersji oprogramowania widoczną na stronie http://www.infinity-economics.org/download/#!/main
Jeśli się zgadza – rozpakowujemy nasze oprogramowanie

unzip core-build-0.1.1.zip

powinien zostać utworzony katalog core z oprogramowaniem, zmieniamy katalog

cd /root/core/bin

Edytujemy plik konfiguracyjny

pico conf/custom.properties

usuwamy # przed tymi linijkami i koniecznie tworzymy (dowolne) i wpisujemy hasło admina zamiast ciągu znaków *myPassword*

xin.allowedBotHosts=*; 127.0.0.1; localhost; [0:0:0:0:0:0:0:1];
xin.apiServerHost=0.0.0.0
xin.adminPassword=*myPassword*

Zapisujemy

Ctrl + X

i potwierdzamy

T

i Enter

Aby łatwiej operować w jednym oknie terminala użyjemy polecenia screen, które wcześniej zainstalujemy

apt-get install screen

zgadzamy się na dodatkowe pakiety

T

Teraz możemy uruchomić oprogramowanie i podłączyć nasz węzeł do sieci IE

screen

Enter

cd /root/core/bin
./core

Pojawi się sporo komunikatów i oprogramowanie zacznie ściągać i synchronizować blockchain co przy minimalnej konfiguracji w zależności też od szybkości łącza – może to potrwać nawet 2 godziny, m.in. dlatego do praktycznych zastosowań 4 rdzenie i 4GB RAM to rozsądna konfiguracja na dziś.
W tym czasie powinniśmy już zobaczyć naszego noda w explorerze, na ostatnich miejscach rankingu http://www.infinity-economics.org/peer/#/peers
Możemy podziwiać logi z pracy naszego noda lub wyjść do naszej konsoli ze screen (zostawiając procujący core) kombinacją klawiszy

Ctrl+A
Ctrl+D

 

Konfiguracja forgingu

Potrzebujemy nr konta (XIN-…) które będzie nośnikiem dowódu stawki. Na to konto również będziemy otrzymywali nasze XIN’y za forging. Ponieważ przy konfiguracji trzeba podać nasz klucz prywatny do tego konta, najbezpieczniej jest wydzierżawić środki z innego konta na konto podpięte do forgingu. Dzierżawy można dokonać na max. 45 dni. Aby środki z konta były uznane za ważne do dowodu stawki muszą znajdować się w dyspozycji konta min. 24 godziny.
Teraz przystąpimy do utworzenia tzw. Hallmark i uruchomimy forging z pomocą polecenia curl, które można wydać z innego komputera ale zostańmy przy naszej maszynie.
Jeśli nie opuściliśmy screen w poprzrdnim punkcie to robimy to teraz kombinacją klawiszy Ctrl+A Ctrl+D a następnie instalujemy curl

apt-get install curl

zgadzamy się na dodatkowe pakiety

T

Prosimy o wygerowanie Hallmark, podajemy naszą frazę do portfela, adres IP naszego noda i bieżącą datę

curl -d requestType=markHost -d secretPhrase="nasz klucz prywatny/fraza do konta/passphrase" -d host=adresIPnoda -d weight=1 -d date=rrrr-mm-dd http://adresIPnoda:23457/api

W odpowiedzi otrzymamy coś podobnego

{"hallmark":"15e66..długi ciąg znaków..8b56","requestProcessingTime":4}

wklejamy tylko ten długi ciąg znaków (to co jest między uszami) do naszego pliku configuracyjnego w linijce po znaku =

xin.myHallmark=
pico /root/core/bin/conf/custom.properties

Zapisujemy

Ctrl + X

i potwierdzamy

T

i Enter
Następnie restartujemy naszego noda aby pobrał plik konfiguracyjny

screen -r
Ctrl+C

czekamy na zakończenie procesu, komunikat w stylu

... INFO - Logger.logShutdownMessage: Server 0.1.1 stopped.

następnie dla pewności zmienimy ścieżkę i startujemy noda

cd /root/core/bin
./core

Po chwili node wystaruje a w wyświetlanych logach mignie nam m.in.

My peer info:
{"hallmark":"15e66...nasz_długi_ciąg_znaków...8b56","apiPort":23457,"application":"XIN","services":"5","version":"0.1.1","platform":"Linux amd64","shareAddress":true}

po ponownym zsynchronizowaniu z blockchain możemy uruchomić forging.
Wychodzimy ze screen kombinacją klawiszy

Ctrl+A Ctrl+D

Teraz uruchamiamy forging podając naszą frazę do portfela i adres IP naszego noda

curl -d requestType=startForging -d secretPhrase="nasz klucz prywatny/fraza do konta/passphrase" http://ADRES_IP_NODA:23457/api

W odpowiedzi otrzymamy coś w stylu

{"requestProcessingTime":5,"deadline":0,"hitTime":0}

O ile wcześniej tego nie zrobiliśmy, dzierżawimy na nasze konto XIN-… środki z innego konta aby stawka była możliwie największa. Operację taką możemy wykonać na min. 24h i max. 45 dni i nie możemy jej cofnąć.

Opisany tu proces jest możliwie najprostrzym przykładem uruchomienia noda i forgingu. Proces uruchamiania oprogramowania i forgingu np. po restartcie komputera można zautoamtyzować a konfigurację dopasować do własnych potrzeb i wymagań.

Udanego forging’u i góry XIN’ów !

  Data: Listopad 20th, 2017

  Autor: Super Redaktor

  Komentarzy: