Przejdź do głównej zawartości
Change page

Wprowadzenie do stosu Ethereum

Ostatnia edycja: @raxveil(opens in a new tab), 15 sierpnia 2023

Podobnie jak każdy stos oprogramowania, kompletny stos Ethereum będzie się różnił w zależności od projektu w zależności od Twoich celów biznesowych.

Istnieją jednak podstawowe technologie Ethereum, które pomagają stworzyć model interakcji oprogramowania z blockchainem Ethereum. Zrozumienie warstw stosu pomoże Ci zrozumieć różne sposoby integracji Ethereum z projektami oprogramowania.

Warstwa 1: Wirtualna Maszyna Ethereum

Wirtualna Maszyna Ethereum (Ethereum Virtual Machine, EVM) jest środowiskiem uruchomieniowym inteligentnych kontraktów w Ethereum. Wszystkie inteligentne kontrakty i zmiany stanu w blockchain Ethereum są wykonywane przez transakcje. EVM obsługuje cały proces przetwarzania transakcji w sieci Ethereum.

Podobnie jak w przypadku dowolnej maszyny wirtualnej, EVM tworzy poziom abstrakcji pomiędzy kodem wykonującym a maszyną wykonującą (węzeł Ethereum). Obecnie EVM działa w tysiącach węzłów rozmieszczonych na całym świecie.

EVM używa zbioru instrukcji kodów operacyjnych w celu wykonywania konkretnych zadań. Tych (140 unikatowych) kodów operacji pozwala EVM na kompletność Turinga(opens in a new tab) co znaczy tyle, że EVM jest w stanie przetworzyć praktycznie wszystko, jeśli posiada wystarczająco dużo zasobów.

Jako programiści zdecentralizowanych aplikacji nie musimy wiedzieć zbyt wiele na temat EVM poza tym, że istnieje i że niezawodnie zasila wszystkie aplikacje w Ethereum bez przestojów.

Warstwa 2: Inteligentne kontrakty (Smart Contracts)

Inteligentne kontrakty to programy wykonywalne, które działają w łańcuchu bloków Ethereum.

Inteligentne kontrakty są napisane przy użyciu określonych języków programowania , które kompilują do bytecode EVM (niskopoziomowe instrukcje maszynowe zwane opcode).

Inteligentne kontrakty służą nie tylko jako biblioteki open source, ale są to zasadniczo otwarte usługi API, które działają 24/7 i nie mogą zostać zlikwidowane. Inteligentne kontrakty zapewniają funkcje publiczne, z którymi aplikacje (dapps) mogą wchodzić w interakcje bez konieczności uzyskania zezwolenia. Każda aplikacja może zintegrować się z wdrożonymi inteligentnymi kontraktami w celu stworzenia funkcjonalności (takich jak kanały danych lub zdecentralizowana wymiana). Każdy może wdrożyć nowe inteligentne kontrakty do Ethereum w celu dodania niestandardowych funkcji, aby zaspokoić potrzeby ich aplikacji.

Jako dewelopera dapp musisz zapisać inteligentne kontrakty tylko wtedy, gdy chcesz dodać niestandardowe funkcje w blockchainu Ethereum. Możesz znaleźć że możesz osiągnąć większość lub wszystkie potrzeby swojego projektu jedynie poprzez integrację z istniejącymi inteligentnymi kontraktami, na przykład jeśli chcesz wspierać płatności w stabilnych monetach lub włączyć zdecentralizowaną wymianę tokenów.

Warstwa 3: Węzły Ethereum

Aby aplikacja mogła komunikować się z blockchainem Ethereum (np. pobierać dane z blockchainu lub wysyłać transakcje do sieci), musi być podłączona do węzła w sieci Ethereum.

Węzły Ethereum są komputerami, które obsługują oprogramowanie - klienta Ethereum. Klient jest implementacją Ethereum, która za zadanie ma weryfikację wszystkich transakcji w kolejnych blokach, utrzymywać bezpieczeństwo sieci i poprawność danych. Węzły Ethereum SĄ blockchainem Ethereum. Kolektywnie przechowują stan sieci Ethereum i ustalają konsensus nad transakcjami, aby zmienić stan blockchainu.

Poprzez połączenie swojej aplikacji z węzłem Ethereum (przez specyfikację JSON RPC), nasza aplikacja jest w stanie czytać dane pochodzące z blockchinu (takie jak bilans konta użytkownika), jak również rozgłaszać nowe transakcje do sieci (jak transfer ETH pomiędzy kontami użytkowników lub wykonywanie inteligentnych kontraktów).

Warstwa 4: Interfejsy API klienta Ethereum

Wiele wygodnych bibliotek (zbudowanych i utrzymywanych przez otwartą społeczność Ethereum) pozwala aplikacjom dla użytkowników końcowych na połączenie i komunikowanie z blockchianem Ethereum.

Jeśli twoja aplikacja skierowana do użytkownika jest aplikacją internetową, możesz wybrać npm install a JavaScript API bezpośrednio w Twojej witrynie. Możemy także wybrać zainstalowanie tej funkcji po stronie serwera przy użyciu Pythona lub Javy.

Chociaż API te nie są niezbędnymi elementami stosu, odsuwają one wiele bezpośrednich interakcyjnych złożoności z węzłem Ethereum. Zapewniają one także użyteczne funkcje (np. konwersję ETH na Gwei), dzięki czemu jako programiści możemy spędzić mniej czasu na zajmowaniu się zawiłościami klientów, a skupić się w głównej mierze na unikalnej funkcji naszej aplikacji.

Warstwa 5: Aplikacje użytkownika końcowego

Na samej górze stosu są aplikacje komunikujące się bezpośrednio z użytkownikiem. Są to standardowe aplikacje regularnie używane i budowane w dzisiejszych czasach: głównie aplikacje webowe i mobilne.

Sposób, w jaki tworzone są te interfejsy użytkownika, pozostaje w gruncie rzeczy niezmieniony. Często użytkownicy nie muszą wiedzieć, że używana przez nich aplikacja została utworzona przy użyciu blockchainu.

Gotowy do stworzenia swojego stosu?

Sprawdź w przewodniku, w jaki sposób przygotować lokalne środowisko deweloperskie dla Twojej aplikacji na Ethereum.

Dalsza lektura

Znasz jakieś zasoby społeczności, które Ci pomogły? Wyedytuj tę stronę i dodaj je!

Czy ten artykuł był pomocny?