W tym artykule rozpoczynamy Nasz cykl artykułów, które tworzą kurs Algoranda dla początkujących. Z serii artykułów dowiesz się m.in jak skonfigurować środowisko programistyczne dla Algorand, jak zdeployować smart kontrakt na wybranej przez siebie sieci Algorand, jak napisać prosty smart kontrakt oraz jakich narzędzi i frameworków możesz używać do pracy z blockchainem Algorand.
Algorand to “zielony blockchain” uruchomiony w 2019 roku, którego nadrzędnym celem jest rozwiązanie trylematu blockchainowego przez szybkość transakcji, bezpieczeństwo oraz algorytm konsensusu zapewniający pełną decentralizację sieci.
Spis potrzebnych narzędzi i elementów:
- Visual Studio Code
- Python 3.6 lub nowszy
- Biblioteka pyTeal oraz py-teal-sdk
- Docker Desktop
- Algorand Sandbox
- Skeleton project repository
Instalacja Visual Studio Code
Visual Studio Code będzie Twoim IDE, to z pomocą tego programu będziesz pisać kod aplikacji.
Visual Studio Code (znany jako VS Code) to darmowy i otwarty edytor tekstu od Microsoft. VS Code jest dostępny dla systemów operacyjnych: Windows, Linux i macOS. Chociaż edytor jest stosunkowo lekki, zawiera kilka zaawansowanych funkcji, które uczyniły VS Code jednym z najpopularniejszych narzędzi środowiska programistycznego w ostatnim czasie.
- Przejdź na stronę https://code.visualstudio.com/download i pobierz plik instalacyjny zgodny z Twoim systemem operacyjnym.
- Zainstaluj Visual Studio Code na swoim komputerze i przejdź do następnego kroku w tym poradniku.
Instalacja Pythona
Python to uniwersalny, interpretowany język programowania wysokiego poziomu, powszechnie używany do tworzenia witryn internetowych, analizy danych i automatyzacji.
Jednym ze sposobów pisania logiki smart kontraktów dla sieci algorand jest Pythonowa biblioteka pyTeal (https://pyteal.readthedocs.io/en/stable/) pozwalająca na pisanie logiki smart kontraktów w pythonie i kompilowanie kodu do wymaganego przez AVM (Algorand Virtual Machine) kodu TEAL.
TEAL jest składnią języka asemblerowego do określania programu, który jest ostatecznie konwertowany na kod bajtowy AVM (Algorand Virtual Machine).
- W VS Code przejdź do zakładki “Extensions” służącej do instalowania dodatków do Naszego IDE.
- W pasku wyszukiwarki wpisz “Python” i zainstaluj Python extension for VS Code.
Następnym krokiem jest zainstalowanie interpretera dla Pythona. Proces ten różni się w zależności od używanego przez Ciebie systemu operacyjnego.
Windows:
- Pobierz instalator wybranej przez siebie wersji języka z oficjalnej strony Python https://www.python.org/downloads/ następnie przejdź przez standardowy proces instalacji,
- Alternatywą dla powyższego sposobu jest zainstalowanie Pythona z Microsoft Store, są tam dostępne wszystkie najnowsze wersje pythona.
MacOS:
- Aby zainstalować interpreter Pythona w systemie MacOS musimy skorzystać z menedżera paczek Homebrew,
- Jeżeli Homebrew jest już zainstalowany, otwórz wiersz poleceń i wprowadź komendę
brew install python3
.
W dystrybucjach systemu Linux, interpreter Pythona 3.x jest zainstalowany domyślnie.
Po instalacji Pythona warto sprawdzić, czy wszystko poszło zgodnie z oczekiwaniami. Aby zobaczyć aktualnie zainstalowaną wersję interpretera wprowadź w wierszu poleceń komendę
python -v
Instalacja Docker Desktop
Docker Desktop to łatwa do zainstalowania aplikacja dla środowiska MacOS, Linux oraz Windows, która umożliwia tworzenie i udostępnianie aplikacji kontenerowych i mikrousług.
Docker Desktop jest wymagany przez Algorand sandbox, czyli udostępniony przez twórców Algoranda zestaw narzędzi, który jest, niezbędny do pracy, dla każdego programisty Algorand bez znaczenia na jego poziom zaawansowania. Bez Docker Desktop nie będziesz w stanie uruchomić najważniejszego narzędzia dla deweloperów Algorand.
Pliki instalacyjne dla każdego środowiska dostępne są tutaj .
Po instalacji aplikacja Docker Desktop uruchomi się automatycznie.
Pobieranie Algorand Sandbox
Algorand sandbox to zestaw narzędzi ułatwiających komunikację oraz interakcje z blockchainem algorand. Składowymi sandboxa są m.in indexer, goal oraz algod.
Za pomocą sandboxa możesz uruchomić w trybie sieci betanet, testnet oraz mainnet, tworzyć tokeny, węzły, wykonywać transakcje, tworzyć adresy portfeli, sprawdzać stany kont, czy też deployować Twoje aplikacje na wybranej sieci.
- Przejdź na stronę https://github.com/algorand/sandbox i skopiuj link do repozytorium sandboxa
- Następnie otwórz wiersz poleceń na swoim komputerze, przejdź do wybranej lokalizacji i wprowadź komendę
git clone <adres repozytorium>
- Repozytorium sandboxa zostanie sklonowane na Twój komputer i od razu możesz zacząć go używać
Pobieranie szkieletu repozytorium
Aby odpowiednio łatwo rozpocząć pracę z algorandem, warto skorzystać ze szkieletu projektu, przygotowanego przez zespół developerski Algorand.
- Przejdź na stronę https://github.com/algorand-devrel/pyteal-course i skopiuj link do repozytorium
- Analogicznie jak w przypadku pobierania Algorand Sandbox, przejdź do wybranej lokalizacji i sklonuj repozytorium na swój komputer
Uruchomienie Python (venv)
Python venv to wirtualne środowisko Pythona, w którym zainstalowany w nim interpreter Pythona, biblioteki i skrypty są odizolowane od tych zainstalowanych w innych środowiskach wirtualnych oraz (domyślnie) wszelkich bibliotek zainstalowanych w „systemowym” Pythonie, tj. takim, który jest zainstalowany jako część systemu operacyjnego.
Aby uruchomić wirtualne środowisko Pythona wykonaj kilka prostych kroków:
- Otwórz pobrany wcześniej szkielet projektu w VS Code oraz uruchom terminal,
- Upewnij się, że znajdujesz się w głównym katalogu projektu i wprowadź komendę
python -m venv venv
, środowisko wirtualne pythona zostanie utworzone z nazwą “venv”, - Następnie w zależności od używanego przez Ciebie systemu operacyjnego wprowadź kolejną komendę aby aktywować środowisko wirtualne:
- MacOS:
source ./venv/bin/activate
, - Windows:
source ./venv/Scripts/activate
, - Aby upewnić się, że pracujemy na właściwym środowisku wirtualnym, sprawdź czy przed wierszem polecenia w terminalu pojawiła się nazwa Twojego wirtualnego środowiska.
Instalacja dodatkowych bibliotek
W przykładowym projekcie w folderze requirements.txt znajdują się dodatkowe biblioteki, które musisz zainstalować, żeby rozpocząć pisanie kodu Twojej aplikacji przy pomocy biblioteki pyTeal.
PyTeal to biblioteka języka Python do konstruowania smart kontraktów Algorand. Została stworzona jako projekt społecznościowy. Głównym celem tej biblioteki jest sprawienie, aby pisanie umów było jeszcze łatwiejsze i bardziej dostępne dla programistów, którzy preferują programowanie w Pythonie.
- Aby zainstalować dodatkowe biblioteki do Twojego wirtualnego środowiska musisz umieścić jest w głównym katalogu projektu w pliku requirements.txt,
- Najważniejszymi bibliotekami, które wykorzystamy pisząc smart kontrakty do Algoranda są pyTeal oraz py-teal-sdk,
- Gdy masz już plik requirements.txt wprowadź następującą komendę aby rozpocząć instalację dodatkowych bibliotek ,
pip install -r ./requirements.txt
.
Łączenie projektu z sandboxem
Tworząc swoją aplikację blockchainową po pewnym czasie może pojawić się potrzeba np. zdeployowania jej na wybranej przez siebie sieci. Do tego zadania będziesz potrzebować sandboxa Algorand, ale najpierw musisz w odpowiedni sposób połączyć swój projekt z sandboxem poprzez wskazanie mu m.in lokalizacji Naszego projektu.
W tym celu przejdź do folderu, gdzie znajduje się pobrany przez Ciebie wcześniej Algorand sandbox i postępuj zgodnie z poniższymi instrukcjami:
- Otwórz plik docker-compose.yml i w sekcji services.algod wprowadź dodatkowy klucz volumes z trzema dodatkowymi parametrami:
- -type: bind,
- source: <path do Twojego projektu>,
- target: /data,
- przykład na poniższej grafice:
Uruchomienie Algorand sandbox
Aby prowadzić interakcję z blockchainem Algorand z wykorzystaniem sandboxa, musisz najpierw uruchomić kontener sandboxa w aplikacji Docker Desktop.
W tym celu postępuj zgodnie z poniższymi instrukcjami:
- Otwórz wiersz poleceń na swoim komputerze i przejdź do folderu pobranego wcześniej sandboxa,
- Następnie wprowadź komendę
./sandbox up
aby uruchomić kontener sandboxa i umieścić go w Dockerze, - Domyślnie sandbox zostanie uruchomiony z obsługą sieci betanet. Aby uruchomić sandboxa z obsługą innej sieci wprowadź
./sandbox up
testnet lub./sandbox up mainnet
.
Podsumowanie
Dzięki wykonaniu wszystkich powyższych kroków, masz gotowe środowisko do rozpoczęcia pracy z biblioteką pyTeal. Możesz teraz rozpocząć pisanie swojego pierwszego smart kontraktu, oraz zdeployować go na wybranej sieci.
W kolejnym artykule przybliżymy Wam napisanie najprostszego smart kontraktu wraz z zdeployowaniem go na sieci Algorand.