Jak napisać i wdrożyć swój pierwszy inteligentny kontrakt?
Opublikowany: 2020-02-13Inteligentne kontrakty to obecnie wiodący trend w technologii Blockchain. Jeśli myślisz o zbudowaniu kariery w terenie, ten artykuł pomoże Ci we wszystkim, co musisz wiedzieć, aby napisać swój pierwszy inteligentny kontrakt !
Ucz się kursów oprogramowania online z najlepszych uniwersytetów na świecie. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Spis treści
Jak napisać swoją pierwszą inteligentną umowę?
Dzisiejsza era cyfrowa pozwoliła dwóm stronom na zawieranie umów bez udziału stron trzecich. Te cyfrowe umowy są przetwarzane przez blockchain i przechowywane w publicznej bazie danych. Tak więc transakcje są możliwe do śledzenia i nieodwracalne.
Jeśli chcesz napisać swoją pierwszą inteligentną umowę , poniższe zasoby wskażą Ci właściwą drogę.
Przeczytaj: 10 trendów i prognoz Blockchain na 2020 rok
Definiowanie inteligentnych kontraktów
Termin „Smart Contract” został po raz pierwszy zaproponowany przez amerykańskiego informatyka Nicka Szabo w 1996 roku. Jest to komputerowy lub cyfrowy protokół, który ułatwia, weryfikuje i wymusza wykonanie umowy. Jako obliczenia ogólnego przeznaczenia, inteligentny kontrakt znajduje się w Blockchain lub rozproszonej księdze.

Innymi słowy, umowa jest wbudowana w kod w postaci programu komputerowego. A wyznaczeni aktorzy otrzymują uprawnienia do wykonywania funkcji programu. Dla pomyślnej realizacji inteligentnego kontraktu należy spełnić określone wcześniej zasady.
Weźmy na przykład zamówienie zakupu (PO). Jest to prosta umowa między kupującym a sprzedającym. Do realizacji PO muszą być spełnione określone warunki. Specyfikacje te obejmują pomyślną płatność przez kupującego, dostawę towarów przez dostawcę zgodnie z warunkami uzgodnionymi w momencie zakupu, warunki zwrotu itp.
Dzięki temu kupujący może złożyć zamówienie, a dostawca zrealizować zamówienie w formacie cyfrowym. W sieci komputerowej wszystkie działania nazywane są transakcjami. A wszystkie transakcje są weryfikowane i egzekwowane przez sieć. Po potwierdzeniu transakcji nie można cofnąć.
Przeczytaj: Warunki wstępne do nauki Blockchain. To nie jest to, o czym myślisz
Wymagania dotyczące konfiguracji inteligentnego kontraktu
Do budowania inteligentnych kontraktów dostępne są różne języki programowania. Wybór języka zależy głównie od platformy blockchain. Na przykład Solidity, Vyper, eWASM i Ethereum bytecode to jedne z najpopularniejszych języków inteligentnych kontraktów dla platformy blockchain Ethereum.
Środowisko rozwoju inteligentnych kontraktów
Zanim napiszesz swoją pierwszą inteligentną umowę , przygotuj plac zabaw dla jej rozwoju. Zagłębienie się w świat blockchain byłoby trudne bez znajomości środowisk programistycznych. Możesz wybrać jedną z następujących alternatyw.
- Remix IDE: Jest to zintegrowane środowisko programistyczne do budowania i testowania inteligentnych kontraktów. Ta całkowicie online opcja jest wysoce zalecana dla początkujących, ponieważ nie wymaga instalacji. Co więcej, stwarza mniej wyzwań w zakresie prototypowania i szybkiej walidacji inteligentnych kontraktów.
- Konfiguracja lokalna: Lokalne maszyny zapewniają jeszcze jeden zasób do opracowywania inteligentnych kontraktów. Narzędzia zapewniają większą elastyczność dla aplikacji klasy korporacyjnej. I chociaż konfiguracja tego środowiska wymaga czasu, wybór narzędzi dla aplikacji rozproszonych lub DApps jest dość prostym procesem.
Struktura inteligentnego kontraktu
Przyjrzyjmy się umowie zlecenia zakupu opracowanej przy użyciu języka programowania Solidity.
Inteligentna umowa Solidity ma standardową strukturę, składającą się z „danych” i „funkcji”. Chociaż dane zachowują bieżący stan inteligentnego kontraktu, funkcja stosuje logikę do przejścia tego stanu.
Umowa zaczyna się od stwierdzenia zwanego „ dyrektywą pragma ”. Słowo kluczowe „pragma” umożliwia sprawdzanie lub funkcje kompilatora. Rozważ poniższe zdanie:
pragma solidność >=0,4,0 <=0,60
Deklaracja ma na celu zapewnienie, że inteligentny kontrakt nie skompiluje się z wersją kompilatora wcześniejszą niż 0,40 i po 0,60.
Następnie pojawia się „ oświadczenie o kontrakcie ”. Poniższe oświadczenie używa słowa kluczowego „kontrakt” i identyfikuje pustą umowę pod nazwą „Zamówienie zakupu”.
kontrakt Zamówienie zakupu{}
Przechowywanie danych
W każdej umowie czy programie komputerowym są zapisane dane. Zmienne umożliwiają przechowywanie, etykietowanie, pobieranie i manipulowanie danymi. W Solidity istnieją dwa rodzaje zmiennych – Wartość i Odniesienie. Zmienne typu wartości są zawsze kopiowane, gdy są używane jako argumenty funkcji, takie jak wartości logiczne, liczby całkowite itp.
Natomiast zmienne typu referencyjnego przechowują lokalizację danych. Każda zmiana jednej zmiennej referencyjnej wpływa na inną zmienną. Dlatego należy nimi zarządzać ostrożnie. Przykłady obejmują tablice i struktury.
Dodawanie danych
W zamówieniu zakupu zazwyczaj jest powiązana z nim ilość produktu. A teraz dodajmy zmienną data do inteligentnego kontraktu. Dodamy zmienną product_quantity z założeniem, że będzie miała tylko wartości dodatnie.
Najpierw wprowadzamy liczbę całkowitą bez znaku reprezentowaną przez uint256. Tutaj unsigned (u) oznacza typ zmiennej, która może reprezentować tylko dodatnie liczby całkowite, a 256 oznacza przechowywanie 256 bitów.
kontrakt Zamówienie zakupu{uint256 product_quantity;}
Konstruktor
Konstruktor inicjuje inteligentny kontrakt z pewnymi wartościami podczas wdrażania kontraktu. Załóżmy, że ilość produktu jest ustawiona na 100.

konstruktor() public{product_quantity = 100;}
Należy zauważyć, że słowo kluczowe lub modyfikator dostępu „public” określa, że funkcja nie jest ograniczona. Dzięki temu każdy może uzyskać do niego dostęp.
Dodawanie funkcji
Dodanie funkcji sprawia, że Twój program jest interaktywny. Są to kontrolowane zdolności poprzedzone słowem kluczowym „funkcja”. Deklaracja zawiera nazwę funkcji, modyfikator dostępu, mutator stanu i zwracaną wartość.
Aby odczytać zapisaną wartość, dodajemy funkcję „get”. Dzięki „get_quantity” ta funkcja ma możliwość pobierania lub odczytywania przechowywanych danych. Spójrz na oświadczenie podane poniżej.
funkcja get_quantity() widok publiczny zwraca(uint256){return product_quantity;}
Rozkładając to dalej, widzimy, że:
- Nazwa funkcji: get_quantity ("()" oznacza, że nie są przekazywane żadne parametry)
- Modyfikator dostępu: publiczny (dostęp nie jest ograniczony)
- Mutator stanu: widok (wskazuje, że funkcja nie zmienia stanu kontraktu, a jedynie go odczytuje)
- Zwraca: określa, co zwraca funkcja, czyli zmienna typu uint256
Funkcje setera
Funkcja ustawiania pojawia się na obrazie, gdy chcesz zapisać lub zaktualizować dane. Funkcja ta pobiera od użytkownika parametr wejściowy, na podstawie którego aktualizuje wartość zmiennej „ilość_produktu”. Funkcja set (update_quantity) jest podłączona w następujący sposób:
update_quantity(uint256 value) public {product_quantity = product_quantity + value;}
Teraz podłącz wszystkie powyższe stwierdzenia, aby napisać swoją pierwszą inteligentną umowę .

Wdrażanie inteligentnego kontraktu
Po wykonaniu opisanych wcześniej kroków nadszedł czas na przetestowanie inteligentnego kontraktu. Możesz zrobić to samo, korzystając z Remix IDE, które zapewnia kompilator Solidity do tworzenia, testowania i walidacji inteligentnego kontraktu online.
Oto instrukcje krok po kroku dotyczące projektowania i wdrażania inteligentnej umowy z Remix Online IDE:
- Kliknij ikonę plusa, aby utworzyć nowy (pusty) plik
- Kliknij, aby otworzyć pusty plik
- Wklej swoją umowę do tego pliku
- Przejdź do lewego menu i kliknij drugą ikonę, tuż pod ikoną pliku. Dzięki temu pojawi się opcja kompilatora solidności
- Przejdź do etykiety kompilatora, aby wybrać wersję kompilatora
- Kliknij plik, aby skompilować inteligentną umowę
- Po kompilacji kliknij przycisk szczegółów kompilatora, aby zrozumieć kod bajtowy i interfejs binarny aplikacji. Kod bajtowy zawiera kod operacyjny Ethereum i logikę inteligentnego kontraktu po konwersji i kompilacji
- W menu po lewej stronie kliknij ikonę pod ikoną kompilacji, aby wdrożyć inteligentną umowę
Interakcja z wdrożoną umową
Metody publiczne wymienione w umowie zapewniają sposoby interakcji z wdrożoną umową. W kontekście Zamówienia zakupu „update_quantity” i „get_quantity” to dwie dostępne metody interakcji. Możesz również wprowadzić swoje parametry za pomocą pola wprowadzania. Pamiętaj, że każda operacja zmieniająca zmienne kontraktu spowoduje transakcję.
W ten sposób omówiliśmy podstawy, jak napisać swoją pierwszą inteligentną umowę oraz jak ją przetestować i wdrożyć za pomocą języka programowania Solidity w środowisku programistycznym online. Rozumieliśmy również proces interakcji z inteligentnym kontraktem i inicjowania transakcji. Zastosuj więc swoją wiedzę i stwórz inteligentny kontrakt już dziś. W końcu praktyka czyni mistrza!
Zawijanie
Wzrasta liczba karier w technologii blockchain, a blockchain ogromnie zmienił oblicze branży technologicznej na zawsze. Jeśli chcesz zostać programistą blockchain i budować inteligentne kontrakty i kody łańcuchowe, sprawdź zaawansowany program certyfikacji IIIT-B i upGrad w technologii blockchain
Jakie są możliwe zastosowania inteligentnych kontraktów?
Inteligentne kontrakty to programy komputerowe, które automatycznie realizują warunki umowy. Wykorzystują technologię blockchain, która jest rozproszoną bazą danych, która umożliwia bezpieczne, przejrzyste i odporne na manipulacje transakcje. Wynajem samochodów, rezerwacje hotelowe i bilety na wydarzenia to tylko kilka przykładów zastosowania inteligentnych kontraktów.
Dlaczego inteligentne kontrakty są uważane za bezpieczniejsze niż zwykłe kontrakty?
Ponieważ inteligentne kontrakty są wdrażane w sieci blockchain, są uważane za bezpieczniejsze niż tradycyjne kontrakty. Blockchain to zabezpieczona kryptograficznie rozproszona baza danych. Oznacza to, że informacji w łańcuchu bloków nie można manipulować ani włamywać. Dzięki temu realizacja inteligentnego kontraktu jest gwarantowana precyzyjna i niezawodna. Są również publiczne i podlegają kontroli, co oznacza, że każdy w łańcuchu bloków może zobaczyć warunki umowy i sprawdzić, czy jest ona wykonywana. Z drugiej strony inteligentne kontrakty mogą pomóc zmniejszyć ryzyko oszustw i konfliktów. Najważniejsze jest to, że mają wiele funkcji i są łatwe w użyciu.
Dlaczego inteligentne kontrakty stają się coraz bardziej popularne?
Jedną z najważniejszych zalet inteligentnych kontraktów jest to, że mogą pomóc organizacjom w automatyzacji procedur i obniżeniu kosztów. Na przykład firma może wykorzystać inteligentną umowę, aby zapłacić swoim dostawcom natychmiast po zrealizowaniu dostawy. Zmniejszyłoby to potrzebę ręcznego przetwarzania płatności przez firmę, oszczędzając zarówno czas, jak i pieniądze. Może być również wykorzystywany do budowania zaufania między firmami a ich klientami. Na przykład inteligentna umowa może zostać wykorzystana do zbudowania bezpiecznego systemu płatności online. Umożliwiłoby to klientom dokonywanie płatności bez obawy, że ich dane osobowe zostaną naruszone. Wreszcie, można go wykorzystać do konstruowania tożsamości cyfrowych zarówno dla ludzi, jak i firm. Dzięki temu firmy będą w stanie uwierzytelniać tożsamość swoich klientów i chronić ich przed oszustwami.