Jak stworzyć inteligentny kontrakt “Hello World” za pomocą Solidity?

Maciej Zieliński

29 wrz 2022
Jak stworzyć inteligentny kontrakt “Hello World” za pomocą Solidity?

Aby zostać specjalistą z zakresu smart kontraktów i programistą technologii blockchain trzeba wykonać pierwszy krok. Niniejszy poradnik przedstawia to, w jaki sposób zbudować kontrakt  "Hello World" przy użyciu języka programowania Solidity. Warto podkreślić, że do wykonania tej czynności nie trzeba posiadać specjalistycznej wiedzy. Osoba, która nie jest zawodowym programistą podążając za naszymi krokami stworzy swój własny smart kontrakt korzystając z języka Solidity. 

Czym są inteligentne kontrakty?

Smart kontakt, to program komputerowy, który jest publikowany i wykonywany w technologii blockchain. W związku z faktem działania na blockchainie, może on być uruchomiony bez serwera, bądź centralnej strony. Gdy stworzymy smart kontrakt nie ma możliwości jego zaktualizowania, bądź wprowadzenia w nim zmian. Wynika to z niezmienności blockchaina. Istnieje opcja, że smart kontrakt może być zaprogramowany funkcjami do zmiany danych. Oznacza to, że informacje mogą zostać zapisane w jednym bloku, lecz usunięte w innym. Takie zachowanie nie wyklucza prześledzenia historii zmian. 

Czym jest język programowania Solidity?

Solidity jest pierwszym językiem tworzącym smart kontrakty. Jedną z najważniejszych rzeczy, o których należy pamiętać podczas nauki Solidity, jest to, że jest on językiem zaprojektowanym specjalnie z myślą o Ethereum Virtual Machine, czyli EVM. Solidity jest zbliżone do JavaScript. Warto w tym miejscu wskazać, że jeżeli potrafisz programować w Javie, to Solidity będzie w nauce łatwiejsze. Co prawda występują różnice w składni, jednak patrząc na polecenia i koncepcje  - oba języki są do siebie zbliżone. Język natywny Ethereum, Ma wbudowane polecenia. To jest wykonane dla Solidity  celem uzyskania dostępu do blockchaina np. znacznika czasu, bądź adresu bloku. Takie funkcje pomagają łatwo programować smart kontrakty Solidity. Co więcej, język, który jest zorientowany na kontrakty na pewno będzie różnić się od języków zorientowanych obiektowo np. 

  • Java,
  • C++, 

jednak głównie kładzie się tutaj nacisk na kontrakty i funkcje. Solidity jest typowany w sposób statyczny. Obsługuje także biblioteki i inne funkcje zdefiniowane dzięki użytkownikowi, które posiadają tendencję do bycia skomplikowanymi. Język kompiluje wszelkie instrukcje do bytecode, co pozwala odczytywać i interpretować informacje w sieci Ethereum.

Smart kontrakty w Solidity

Celem Ethereum jest rozwiązywanie i wykonywanie transakcji na poziomie ludzkim, podobnie jak ambicja pełnej maszyny Turinga. Wymaga to z jednej strony przyjęcia logiki na poziomie człowieka z przyjazną dla programistów prostotą, a z drugiej realizacji inteligentnych kontraktów Solidity w kompletnym systemie zwanym Wirtualną Maszyną Turinga, co pozwala na niespotykaną dotąd złożoność i determinizm. Moc obliczeniowa tej „wirtualnej” maszyny jest wbudowana w implementację węzła, niezwykłe osiągnięcie decentralizacji i produkt innowacji ruchu blockchain. Inteligentne kontrakty Solidity programowo ustalają reguły transakcji biznesowych i robią to w uproszczonym języku czytelnym dla maszyn. Ta bezprecedensowa zdecentralizowana koncepcja jest zautomatyzowana i może działać 24/7 na całym świecie, bez nadzoru człowieka i zaufanych stron. Dlaczego warto znać język Solidity? Gdyż jest bardziej zaawansowany i skuteczny w tworzeniu Smart Kontraktów, a ponadto próbuje czegoś, czego nigdy wcześniej żaden język nie próbował — mianowicie stosuje połączenia rozumowania ludzkiego i maszynowego. Ponadto Solidity ułatwia wyrażanie się w kodzie, a także przekształcanie naszego kodu czytelnego dla człowieka w funkcjonalność biznesową. 

Remix - wdrożenie do Solidity 

Remix to narzędzie internetowe, które służy do pisania, kompilacji oraz wdrażania i debugowania  kodu Solidity. Remix zawiera środowisko  JavaScript VM, które pełni funkcję symulatora blockchaina działającego w przeglądarce. Poniżej przedstawiamy praktyczny poradnik tego, jak tworzy się smart kontrakty przy użyciu Solidity. Zapraszamy! 

Jak stworzyć inteligentny kontrakt? 

Jak na razie bedziemy uzywac wspomnianego wyżej remixa do kompilowania i deployowania naszego kodu.  Odpalamy więc remixa i tworzymy nowy plik ja go nazwę Hello World, ale możesz go nazwać jak chcesz. Zacznijmy od zdefiniowania wersji solidity, którą bedziemy uzywac. Ja w tym tutorialu będę używał wersji 0.8.0 w górę, więc na gorze pliku pisze : pragma solidity ^0.8.0;

Solidity

Po zdefiniowaniu wersji mozemy zaczac pisac nasz pierwszy smart contract. 

Definiujemy contract o nazwie HelloWorld Contract, to w nim będzie się znajdować cala funkcjonalność naszego smart contractu.

W środku naszego smart contractu tworzymy funkcję say Hello World, będzie ona publiczna czyli,że każdy będzie mógł ją wywołać, pure co oznacza, że funkcja nie zczytuje ani nie modyfikuje żadnych danych z blockchaina  i zwracała stringa. 

Solidity

Chcemy aby funkcja zwróciła nam string “Hello World!”, więc musimy tylko wpisać w środku funkcji : return “Hello World”.

Teraz żeby zdeplyować nasz smart contract na lokalny blockchain, musimy najpierw go skompilować. 

Klikamy w sekcje solidity compiler i klikamy w przycisk compile HelloWorld.sol.

Jak już mamy skompilowany nasz plik, to możemy zdeployować nasz smart contract.

Klikamy w sekcje Deploy & Run Transactions.

Solidity
Solidity

Gdy wybierzemy nasz smart contract klikamy deploy i koniec ! Nasz inteligentny kontrakt został z deployowany ! W sekcji Deployed Contracts powinien ci się pokazać twój smart contract z możliwością wywołania funkcji sayHello World, która zwróci ci “Hello World”.

Zalety programowania Solidity

Pomijając podstawową funkcjonalność oprogramowania z Solidity, jest kilka dodatkowych elementów, które dają mu przewagę nad innymi językami Ethereum. Można wskazać, że zalety są następujące:

  • Programowanie akceptuje złożone zmienne członkowskie i złożone dane.
  • Program posiada interfejs binarny aplikacji, celem zapewnienia stosownego bezpieczeństwa - Jeśli kompilator odkryje niedopasowany typ danych dla dowolnej zmiennej, ABI generuje błąd. 
  • Program porównuje się do budowy języka naturalnego, która jest wykorzystywana do konwersji specyfikacji zorientowanych na użytkownika na język łatwy do zrozumienia przez maszyny.

Podsumowanie 

Solidity, to narzędzie ułatwiające stworzenie smart kontraktów. Dzięki niemu programowanie w technologii blockchain jest proste, transparentne i przydatne. Dodatkowo programowanie akceptuje złożone zmienne dane, posiada interfejs binarny i jest zbliżony do języka naturalnego. 

Most viewed


Never miss a story

Stay updated about Nextrope news as it happens.

You are subscribed

Ekonomia Ethereum – Analiza

Kajetan Olas

05 mar 2024
Ekonomia Ethereum – Analiza

Ekonomia Ethereum obejmuje mechanizmy ekonomiczne kierujące zachowaniem uczestników blockchainu. Dotyka ona kwestii kwestii dotyczących m.in. jej waluty (Ether), po rolę sieci w ułatwieniu funkcjonowania smart contractów i zdecentralizowanych aplikacji.

Zrozumienie Ekonomii Ethereum

Ekonomia Ethereum została zaprojektowana, aby zrównoważyć skalowalność, bezpieczeństwo i decentralizację, często określane jako trylemat blockchainu. Natywna kryptowaluta sieci, ETH, jest czymś więcej niż środek wymiany. Jest ona także kluczowym komponentem protokołu konsensusu Ethereum - Proof of Stake.  Ekonomia Ethereum obejmuje również podejście platformy do opłat transakcyjnych (opłat za gaz), politykę monetarną i mechanizmy wpuszczania nowego ETH do systemu. Razem, te czynniki wpływają na wartość płynącą z używania sieci.

Dynamika Popytu i Podaży

Dynamika popytu i podaży w ramach ekonomii Ethereum jest kluczowa dla zrozumienia wartości rynkowej sieci oraz incentyw do uczestnictwa w sieci.

Strona Podażowa

  • Emisja ETH: Całkowita podaż ETH zależy od tempa emisji sieci, które ewoluowało z czasem. W przeciwieństwie do Bitcoina, Ethereum nie ma ustalonej maksymalnej podaży ETH, ale różne ulepszenia (szczególnie London Hard Fork i EIP-1559) wprowadziły mechanizmy mające na celu umiarkowanie wzrostu podaży.
  • Ethereum 2.0 i Staking: Przejście na Ethereum 2.0 wprowadza staking, gdzie walidatorzy blokują swoje ETH jako depozyt zabezpieczający, aby uczestniczyć w konsensusie sieci. Ta zmiana z Proof of Work na Proof of Stake nie tylko zmienia model bezpieczeństwa, ale także zmniejsza podaż ETH w cyrkulacji.

Strona Popytowa

  • Smart Contracty i dApps: Użyteczność Ethereum jako platformy do wdrażania smart contractów i zdecentralizowanych aplikacji tworzy podstawowy popyt na ETH. Jest on wymagany do płacenia za opłaty transakcyjne i usługi obliczeniowe.
  • Zdecentralizowane Finanse (DeFi) i NFT: Eksplozywny wzrost DeFi i rynku NFT na blockchainie Ethereum znacząco zwiększył popyt na ETH. Te aplikacje często wymagają ETH jako collateral (zabezpieczenie), a czasami jest on środkiem wymiany w ich ekosystemach.

Wzajemne oddziaływanie podaży i popytu jest urozmaicane przez ulepszenia sieci, zmiany w opłatach transakcyjnych oraz ogólną adopcję aplikacji opartych na Ethereum. W miarę upływu czasu, szczególnie przy pełnej implementacji Ethereum 2.0, te dynamiki będą kształtować się inaczej. Zaprezentują one nowe możliwości dla użytkowników, inwestorów i deweloperów.

Polityka Monetarna Ethereum

Polityka monetarna Ethereum jest kluczowym aspektem jego modelu ekonomicznego. Skupia się na zarządzaniu podażą Etheru w celu zapewnienia bezpieczeństwa sieci i zachęcenia do zrównoważonego uczestnictwa. W przeciwieństwie do tradycyjnych systemów monetarnych lub nawet innych kryptowalut z ustalonym limitem podaży, Ethereum przyjmuje bardziej adaptacyjne podejście.

Opłaty Transakcyjne

EIP-1559, wdrożony jako część Londyńskiego Hard Forka w 2021 roku, znacząco zmienił politykę monetarną Ethereum. Wprowadził nowe mechanizmy dotyczące ustalania opłat transakcyjnych. Podzielił je na 2 komponenty: Base Fee i Priority Fee.

Base Fee (Opłata Bazowa)

Base Fee jest dynamicznie ustalane na podstawie przeciążenia sieci i jest spalana (burning). Jej wysokość opiera się na dwóch czynnikach: jak bardzo sieć jest przeciążonai jak długo była w takim stanie. Oznacza to, że Base Fee będzie rosło, dopóki aktywność w sieci nie wróci do docelowego średniego poziomu. Ponieważ Base Fee jest spalane, oznacza to również, że ETH ma tendencję deflacyjną, gdy aktywność w sieci jest wysoka.

Priority Fee (Opłata Priorytetowa)

Priority Fee to dodatkowa opłata, która służy jako napiwek dla validatorów (osób weryfikujących transakcje). Jest ustalana przez użytkownika, aby zachęcić validatorów do przetworzenia jego transakcji. Wyższa opłata oznacza, że transakcja zostanie zweryfikowana przed innymi transakcjami. Priority Fee powinno być wyższe niż 0, ponieważ validatorzy muszą mieć jakąś zachętę do włączenia transakcji do bloku.

Opłaty transakcyjne na przestrzeni czasu, dostęp na 05.03.2024, https://bitinfocharts.com/comparison/ethereum-transactionfees.html#3y

Staking i Ethereum 2.0

Przejście na Ethereum 2.0 i związany z nim Proof of Stake, wprowadza nagrody za staking jako nowy sposób emisji ETH. Validatorzy lokują minimum 32 ETH, aby uczestniczyć w protokole konsensusu i przyczynić się do bezpieczeństwa sieci.. Wysoka bariera wejścia przyczynia się do faktu, że tylko 26% całkowitej podaży ETH jest stakowane. Jest to niższa wartość niż w niektórych innych blockchainach, np. Cardano (64% stakowane).

dostęp na 05.03.2024, https://www.coinbase.com/earn/staking/ethereum

Kary

Ethereum zapewnia, że validatorzy działają w najlepszym interesie sieci, wprowadzając zestaw kar za niepożądane zachowania.

Slashing

Slashing to kara za naruszenie zasad protokołu i angażowanie się w nieuczciwe zachowania. Część ETH validatora jest zabierana, jeśli próbuje on

  • zaproponować dwa różne bloki
  • Zaświadczyć o kilku sprzecznych wersjach blockchainu (zaświadczanie oznacza głosowanie jak zdaniem validatora wygląda w danej chwili stan blockchainu).

Kary za Nieaktywność

Jeśli weryfikator jest nieaktywny i nie uczestniczy np. w zaświadczaniu bloków, stopniowo traci stakowane ETH. Zapewnia to, że stakerzy aktywnie uczestniczą w zabezpieczaniu sieci. Zapobiega to sytuacji, gdy pewna liczba weryfikatorów regularnie ignoruje swoje obowiązki i przyczynia się do destabilizacji sieci.

Podsumowanie

Przyjrzenie się ekonomii Ethereum powoduje podziw dla jej złożoności. Robi wrażenie, jak precyzyjni w swojej pracy musieli być deweloperzy Ethereum. Znaleźli parametry, które bardzo dobrze zrównoważyły jego ekosystem (np. to jak zdecydowali, że staking dokładnie 32ETH jest lepszy niż 28ETH). Oprócz parametrów ilościowych interesująca jest również logika stojąca za strukturą opłat, karami, itp. To wszystko sprawia, że ekonomia Ethereum jest doskonałym studium przypadku dla inżynierów tokenów i deweloperów Web3.

FAQ

Jaką rolę odgrywa Ether (ETH) w ekonomii Ethereum? 

  • ETH jest nie tylko środkiem wymiany - służy również do zapewnienia bezpieczeństwa sieci. W modelu PoS to, co powstrzymuje validatorów przed nieuczciwymi zachowaniami, to fakt, że mogą stracić stakowane ETH.

Jakie zmiany wprowadziło EIP-1559 do opłat transakcyjnych na Ethereum? 

  • EIP-1559 wprowadziło dwuczłonową strukturę opłat z opłatą bazową i opłatą priorytetową. Opłata bazowa jest spalana, co przyczynia się do potencjalnie deflacyjnego charakteru Ethereum przy wysokiej aktywności. Natomiast opłata priorytetowa motywuje validatorów do uwzględnienia transakcji w bloku.

Jaka jest strategia Ethereum w zakresie skalowania i rozwiązywania problemów z przeciążeniem sieci? 

  • Strategia Ethereum polega na wykorzystaniu rozwiązań Layer-2, z blockainem Ethereum służącym jako bezpieczna warstwa rozliczeniowa.

Aleph Zero Bridges: Czym jest MOST i Jak on Działa?

Karolina

05 mar 2024
Aleph Zero Bridges: Czym jest MOST i Jak on Działa?

Znaczenie interoperacyjności w różnych ekosystemach jest ogromne. Jest wiele protokołów, zdolność do transferu aktywów i informacji między różnymi blockchainami jest więc niezbędna. Jak do tego podchodzi Aleph Zero i czym jest MOST?

Geneza MOSTu: Most do Ethereum

Wizja interoperacyjności Aleph Zero

W sercu strategii Aleph Zero mającej na celu stworzenie bardziej połączonego świata blockchain znajduje się MOST, awangardowy most zaprojektowany w celu bezproblemowego połączenia Aleph Zero z ekosystemem Ethereum. MOST stanowi krytyczny krok naprzód w zobowiązaniu Aleph Zero do budowy solidnej, niezależnej i wszechstronnej platformy. Odzwierciedla wizję ekosystemu blockchain, który jest nie tylko samowystarczalny, ale także w pełni zintegrowany z szerszym krajobrazem cyfrowych aktywów.

Rola MOST w zwiększaniu interoperacyjności Aleph Zero z Ethereum

MOST to strategiczny zasób, który zwiększa interoperacyjność Aleph Zero z Ethereum. Umożliwiając bezpośrednią ścieżkę dla transferu aktywów między Aleph Zero a Ethereum, MOST umożliwia zarówno deweloperom, jak i użytkownikom wykorzystanie mocnych stron obu platform. Ta synergia zwiększa potencjał zdecentralizowanych aplikacji (dApps) i projektów finansów zdecentralizowanych (DeFi), pozwalając im korzystać z połączonych zalet skalowalności Aleph Zero i żywego ekosystemu Ethereum.

READ: "What is Aleph Zero?"

Architektura i funkjonalności MOST

Przegląd projektu MOST

Architektura MOST opiera się na projekcie opartym na strażnikach, priorytetowo traktującym bezpieczeństwo i prostotę w transferze aktywów. Ten model projektowy zapewnia, że most działa z najwyższą integralnością i niezawodnością. Strażnicy, wybierani poprzez skrupulatny proces, odgrywają kluczową rolę w utrzymaniu operacyjnej doskonałości mostu. Każdy strażnik nadzoruje dwie instancje konfiguracji - jedną dla Testnetu i jedną dla Mainnetu - zapewniając tym samym solidną strukturę testowania i wdrożeń, która zabezpiecza przed podatnościami.

zParachain bridge
zParachain bridge, Source

"Strażnicy MOST"

Strażnicy MOST nie są tylko opiekunami infrastruktury technicznej mostu; są oni kluczowymi elementami jego modelu zarządzania. Posiadając kontrolę nad kluczami zarządzania zarówno Aleph Zero, jak i Ethereum, strażnicy posiadają autorytet do wprowadzania zmian w składzie komitetu, przeprowadzania aktualizacji kontraktów i podejmowania innych istotnych funkcji zarządzania. Ta konfiguracja portfela wielokrotnego podpisu zapewnia zdecentralizowany mechanizm kontroli, istotny dla utrzymania bezpieczeństwa i integralności mostu.

Główne cechy: Obniżone opłaty, Zachęcanie do płynności i Skupienie na bezpieczeństwie

MOST został zaprojektowany z uwzględnieniem kilku kluczowych cech mających na celu optymalizację doświadczenia użytkownika i wzrost ekosystemu. Jedną z jego wyróżniających się cech jest znaczne obniżenie opłat za mostowanie aktywów, takich jak ETH, stablecoiny i tokeny z Ethereum do Aleph Zero. Struktura opłat jest strategicznie zaprojektowana w celu przyciągnięcia płynności do ekosystemu Aleph Zero, poprawiając jego żywotność i użyteczność.

Techniczny fundament Aleph Zero Bridges

Bezpieczeństwo i prostota

Projekt MOST koncentruje się na bezpieczeństwie, prostocie i łatwości użytkowania. Wykorzystuje model oparty na strażnikach dla zapewnienia bezpieczeństwa i oferuje prosty interfejs dla użytkowników. Prace rozwojowe były otwarte i skrupulatne, a projekt ma zamiar udostępnić swoje źródło publicznie, zgodnie z zasadami open-source i zapewniając transparentność.

Zarządzanie i kontrola

Zarządzanie w MOST wykorzystuje portfel multisig, pozwalając strażnikom zarządzać operacjami demokratycznie. Ta konfiguracja zapewnia zdecentralizowaną kontrolę, z mechanizmami do aktualizacji kontraktów i zmian w komitecie, zwiększając bezpieczeństwo i elastyczność.

Tutaj możesz śledzić nadchodzące aktualizacje dotyczące Aleph Zero bridges: BLOG

Wpływ na ekosystem

DeFi na Aleph Zero

MOST ułatwia napływ płynności i stablecoinów do Aleph Zero, znacząco zwiększając jego sektor DeFi. Ten most do Ethereum sprzyja innowacji, zaangażowaniu użytkowników i wzrostowi ekosystemu.

MOST i więcej

Integracja z Router Protocol

Partnerstwo Aleph Zero z Router Protocol rozszerza jego łączność z różnymi blockchainami. Współpraca koncentruje się na uproszczeniu operacji międzyłańcuchowych poprzez Framework Cross-chain Intent (CCIP), poszerzając interoperacyjność Aleph Zero.

Aleph Zero Integration with Router Protocol
Aleph Zeri + Router (ŹRÓDŁO: Aleph Zero)

Bridge zParachain do Polkadot

Z wykorzystaniem slotu parachain, bridge zParachain łączy Aleph Zero i Polkadot bez uczynienia Aleph Zero parachainem. To innowacyjne podejście zwiększa komunikację międzyłańcuchową, wzmacniając pozycję interoperacyjności Aleph Zero.

Aleph Zero MOST
ŹRÓDŁO: Aleph Zero

Dlaczego to ma znaczenie

Strategia Aleph Zero bridges podkreśla potrzebę stabilnych, bezpiecznych i wszechstronnych połączeń między blockchainami. Zapewniając szeroką łączność, Aleph Zero toruje drogę do bardziej zintegrowanego ekosystemu blockchain, gdzie bezproblemowa interoperacyjność zwiększa ogólną użyteczność i dostępność technologii zdecentralizowanych.

Przeczytaj koniecznie: "Aleph Zero vs Solana: A Comparative Analysis"

Podsumowanie

Działania Aleph Zero w dziedzinie mostów technologicznych oznaczają krok w kierunku zjednoczonego świata blockchain. Mosty Aleph Zero? Skupiając się na kluczowych obszarach, takich jak bezpieczeństwo, prostota i integracja ekosystemu, Aleph Zero kształtuje przyszłość interoperacyjności blockchain, wspierając innowacje i otwierając nowe możliwości dla sektorów DeFi i dApp.

Jeśli jesteś zainteresowany wykorzystaniem Aleph-Zero lub innych rozwiązań opartych na blockchainie dla swojego projektu, skontaktuj się z contact@nextrope.com

FAQ

1. Jaki jest główny cel mostu MOST w ekosystemie Aleph Zero?

  • MOST został zaprojektowany w celu zwiększenia interoperacyjności Aleph Zero z Ethereum, umożliwiając bezproblemowy transfer aktywów między dwoma platformami.

2. W jaki sposób projekt oparty na strażnikach MOST zwiększa jego bezpieczeństwo?

  • Projekt oparty na strażnikach priorytetowo traktuje bezpieczeństwo i prostotę w transferze aktywów. Strażnicy, którzy są starannie wybierani, nadzorują działanie mostu zarówno na Testnet, jak i na Mainnet.

3. Jakie są główne cechy MOST i jak korzystają z nich użytkownicy?

  • Główne cechy MOST obejmują obniżone opłaty za bridgowanie aktywów, takie jak ETH, stablecoiny i tokeny z Ethereum do Aleph Zero. Ten projekt ma na celu przyciągnięcie płynności do Aleph Zero, poprawiając żywotność i użyteczność jego ekosystemu oraz optymalizując doświadczenie użytkownika.