Wstęp do Ethereum

Wstęp do Ethereum

Rozpocznij swoją przygodę z najpopularniejsza platforma do budowania inteligentnych kontraktów. Za całym projektem Ethereum stoi Vitalik Buterinpolecam prezentację Vitalika, w której opowiada o Ethereum w 25 minutEthereum dodatkowo generuje swoją kryptowalutę Ether (skrót ETH).

Przed rozpoczęciem tego rozdziału polecam zapoznać się z technologią blockchain.

Wstęp do Ethereum

Zakładam, że znasz podstawowe zasady działania blockchaina.

W Ethereum konta dzielimy na dwa rodzaje, zwykłych użytkowników oraz kontrakty. Wyobraź sobie, że do konta typu kontrakt dodajemy nasz kawałek kodu (robimy deploy i nasz kod jest przypisany do danego kontraktu). Za uruchomienie naszego kodu odpowiada Ethereum Virtual Machine (EVM).

Nasz program, który będzie coś realizował, zostanie przypisany do kontraktu (innymi słowy, będzie hostowany na kontrakcie albo żeby było łatwiej można to porównać do serwera, na który wrzuciliśmy nasz kod). Inne konta w sieci za pomocą klucza publicznego (adres naszego kontraktu) będą mogły zacząć się z nim komunikować.

Gdy inni użytkownicy wejdą w interakcję z naszym kontraktem i nasz kod zacznie integrować się z innymi kontraktami, to ktoś w zdecentralizowanej sieci musi ten kod wykonać i potwierdzić autentyczność transakcji. Niektóre osoby w sieci udostępniają swoje moce obliczeniowe, ten proces nazywamy potocznie miningiem. Za część operacji musi zapłacić nasz kontrakt (czyli de facto my!). Płacimy walutą gas, jest ona zakupowana automatycznie za Ether znajdujące się na naszym kontrakcie. Gdy wyczerpiemy wszystkie środki na naszym koncie, to wykonanie niektórych operacji będzie niemożliwe. Dodam, że możemy zaprogramować różne typy interakcji z naszym kontraktem i tylko za niektóre płacimy a pozostałe mamy gratis (o tym później).

Całą sieć Ethereum można porównać do chmury AWS, Azure czy Google. Wykupujemy wybrane usługi i jesteśmy obciążani za określone operacje, a niektóre dostajemy w pakiecie.

Porównanie chmury do blockchaina:

  • baza danych = blockchain
  • Function as a Service (FaaS) = kontrakt
  • płacimy za określony ruch = płacimy za określony ruch
  • scentralizowana sieć z centralnym zarządzaniem* = zdecentralizowana sieć peer-to-peer

* warto dopisać że dostawcy chmury mają różne zabezpieczenia swoich usług i proponują różne rozwiązania rozrzucenia ruchu po innych regionach

Najważniejsze aspekty Ethereum:

  • mamy dwa rodzaje kont, zwykłe oraz kontrakty
  • możemy pisać nasz własny kod i umieszczać go w sieci Ethereum
  • nasz kod przypisany jest do konta typu kontrakt
  • musimy wynagrodzić sieć (użytkowników) za wykonanie naszej transakcji (płacimy w walucie gas)
  • niektórzy użytkownicy udostępniają dla sieci swoje moce obliczeniowe – mining
  • gdy zabraknie środków na naszym kontrakcie, to wykonanie niektórych operacji będzie niemożliwe
  • za uruchomienie naszego programu odpowiada Ethereum Virtual Machine (EVM)
  • z kontraktami możemy się komunikować, bo mamy ich klucz publiczny

Teoria za nami, czas stworzyć swój pierwszy kontrakt!