Budowanie inteligentnego kontraktu: to łatwiejsze niż myślisz

Każdy może zbudować inteligentny kontrakt

Inteligentne kontrakty ułatwią prowadzenie działalności w nowej zdecentralizowanej gospodarce. Większość inteligentnych kontraktów jest zawieranych na platformach DApp (zdecentralizowanych aplikacji), takich jak Ethereum, Lisk lub Cardano, a duże firmy technologiczne, takie jak IBM, rozpoczynają własne firmy, które je budują. Ma to sens, ponieważ jest wiele firm, które wolałyby zaufać gigantowi technologicznemu, jakiemu IBM, że stworzy dla nich produkt, niż samodzielnie zająć się nową technologią..

Tworzenie inteligentnych kontraktów może stać się zbywalną umiejętnością dla programistów, którzy wiedzą, jak je zbudować. Zaskakującą częścią inteligentnych kontraktów jest to, że nie są one trudne do zbudowania. Platformy DApp i otaczające je narzędzia umożliwiają ich tworzenie i łatwe budowanie własnej technologii blockchain.

Deweloperzy JavaScript nie powinni być zastraszani przez blockchain. Przy nieco większym zrozumieniu, blockchain staje się podobny do większości innych frameworków, które normalnie implementowałbyś.

Planowanie inteligentnego kontraktu

Tworząc inteligentną umowę po raz pierwszy, zdecyduj, co ma ona ułatwić.

W tym przykładzie skupmy się na sprzedaży biletów na wydarzenia. Bilet ma ogromne problemy z konikperami kupującymi mnóstwo biletów i ludźmi używającymi fałszywych biletów. Technologia Blockchain wyróżnia się pod wieloma względami; dwa z nich to ułatwianie transakcji i śledzenie informacji.

Z tego powodu prosty wiersz kodu w umowie może ograniczyć ceny odsprzedaży biletów. Uniemożliwia to scalperom kupowanie wielu biletów, ponieważ ich sprzedaż byłaby teraz nieopłacalna. Korzystając z inteligentnych kontraktów, możesz również generować unikalne tokenizowane bilety, które są specyficzne dla właściciela i nie można ich sfałszować. Jeśli jesteś kimś, kto lubi chodzić na koncerty, festiwale i wydarzenia sportowe, możesz zobaczyć ten urok.

Opcje platformy DApp

Następną rzeczą do wyboru jest to, na której platformie DApp zbudować kontrakt.

Ethereum jest największą i najbardziej znaną platformą. Ma również najbardziej aktywną bazę użytkowników, a przy każdym rodzaju rozwoju aktywna społeczność, która odpowie na Twoje pytania, jest kluczem do ukończenia produktu. Jednak jednym minusem jest to, że używa własnego języka Solidity do pisania umów.

Inna opcja, Lisk, jest platformą DApp opartą na Javascript, więc nie dostaniesz żadnej nowej składni. Ma również własny sklep DApp (na przykład sklep Google Play lub iTunes), w którym możesz opublikować swoją aplikację po zakończeniu.

Możesz też spróbować Cardano który został zbudowany przez założyciela Ethereum i ma duży, imponujący zespół. Ich produkt jest wciąż nowy, ale jeśli spełnią obietnicę oddzielenia informacji o umowie od danych transakcyjnych, może to być właściwy wybór w przyszłości.

Na razie przejdźmy do Ethereum lub Lisk jako preferowanej platformy.

Jako programista JavaScript Lisk może wydawać się logiczną decyzją, ponieważ masz już doświadczenie w tym języku.

Nie licz jednak Ethereum. Społeczność programistów jest tak silna, że ​​wszelkie nieporozumienia dotyczące Solidity można nadrobić nadmiarem dostępnych informacji. Ethereum zawiera również platformę Truffle, stworzoną przez Consensys, która w łatwy sposób pozwala na integrację i testowanie aplikacji smart contract.

ramy inteligentnych umów ethereum

Budowanie inteligentnego kontraktu

Solidność brzmi bardziej onieśmielająco niż w rzeczywistości. Pierwszą rzeczą, jaką możesz zauważyć w tym języku, jest uderzające podobieństwo do klasy JavaScript. Istnieją jednak pewne subtelne różnice, takie jak wymóg używania średników i użycie funkcji haszujących. Plik funkcje mieszające służą do tworzenia unikalnych kluczy i mapowania ich na inne zmienne. W naszym przykładzie użylibyśmy ich do stworzenia unikalnych biletów i przypisania ich do kont, które je kupują.

Podczas budowania pierwszej umowy Ethereum zalecamy korzystanie ze środowiska programistycznego pod adresem remix.solidity.org. Zapewnia interaktywne środowisko do wdrażania kontraktu i interakcji z nim z różnych kont Ethereum. Rozwijane menu umożliwia przełączanie kont i korzystanie z wywołań funkcji umowy przez naciśnięcie odpowiednich przycisków.

Na co zwrócić uwagę

Wyjątkową cechą Solidity jest sposób adresowania. Wszystkie konta Ethereum mają unikalne adresy, a te adresy reprezentują strony zgadzające się na umowę.

W naszym przykładowym kontrakcie biletowym, ktokolwiek utworzy wydarzenie, będzie miał dołączony adres swojego konta. Za każdym razem, gdy ktoś kupi nowy bilet, środki zostaną przelane bezpośrednio do właściciela wydarzenia, usuwając pośrednika. Kupujący dzwoni, a środki są pobierane z jego konta, identyfikowane na podstawie adresu i przekazywane właścicielowi.

Solidity ma również unikalny sposób na przypisywanie funduszy do połączenia inteligentnego kontraktu. Każde wywołanie funkcji zawiera komunikat. Ta wiadomość może zawierać unikalne informacje od nadawcy, w tym adres jego konta, a także wartość eterową, którą chcą wysłać właścicielowi umowy.

Warto również zauważyć, że w Solidity nie wszystkie połączenia z umową są bezpłatne. Aby zmienić informacje w umowie, np. kup lub skorzystaj z biletu, sieć automatów potwierdzających wykonanie umowy pobiera opłatę „gaz”. Gaz to w zasadzie opłata za wykorzystanie mocy obliczeniowej w sieci.

Inne wywołania, które tylko wyszukują informacje o umowie, np. sprawdzenie ceny biletu lub sprawdzenie liczby pozostałych biletów jest bezpłatne. Dzieje się tak, ponieważ żadne informacje o umowie nie są aktualizowane; nie ma żadnego ryzyka w tych czynnościach.

Łączenie się z JavaScript

Najtrudniejszą częścią pracy w Solidity jest integracja umowy z Javascriptem. Wszystko to odbywa się za pomocą Ramy truflowe.

Pierwszym krokiem do integracji umowy jest jej wdrożenie i migracja do sieci testowej. Truffle zapewnia własne RPC, oddzielną sieć testową Ethereum o nazwie Ganache. Ten proces zapewnia wersję umowy w formacie JSON, z którą możesz zadzwonić, korzystając z adresów sieci testowej za pośrednictwem aplikacji JavaScript.

Jeśli szukasz więcej informacji na temat tego procesu, Truffle świetnie radzi sobie z przedstawieniem go w swoich dokumentach i przykładowych pudełkach znalezionych w ich stronie internetowej.

Pudełka na trufle

Inną trudną rzeczą do przezwyciężenia podczas tworzenia inteligentnej umowy jest jej konceptualizacja. Myśląc o łańcuchu bloków jak o twórcy stron internetowych, możesz spojrzeć na niego jako zamiennik bazy danych. Zamiast jednego scentralizowanego źródła wszystkich informacji, istnieje łańcuch umów i transakcji, które prowadzą do informacji.

Ponieważ blockchain jest jak baza danych, naturalną rzeczą jest połączenie kontraktu z serwerem. Utworzenie warstwy API dla kontraktu sprawia, że ​​dostęp do informacji po stronie klienta aplikacji jest tak prosty, jak wysłanie żądania AJAX. Jest dobry przykładowe pudełko na stronie trufli w celu uzyskania tej konfiguracji.

Chociaż łańcuch bloków jest podobny do bazy danych, nie jest całkowicie identyczny. Posiada całkowicie unikalny protokół obejmujący transakcje, haszowanie i tworzenie bloków. To może być najtrudniejsza część rozwoju Ethereum. W naszym przykładzie z biletem musisz zorganizować wezwanie do zawarcia umowy w celu zakupu biletu w inny sposób niż wezwanie do użycia biletu. Maszyna wirtualna Ethereum jest wybredna w przypadku tych połączeń.

To kolejny obszar, w którym przydaje się duża społeczność programistów Ethereum. Istnieje duża szansa, że ​​na jakiekolwiek pytanie, na które odpowiedziałeś już na Ethereum Stack Exchange, a jeśli nie, inni programiści są bardziej niż chętni do pomocy w realizacji umowy.

Wniosek

Ten artykuł nie miał Cię nauczyć, jak zacząć pisać Solidity. Zamiast tego miał dać ci przewodnik po tym, czym jest inteligentny kontrakt i jak można go zaimplementować w aplikacji Javascript. Budowanie w oparciu o blockchain jest możliwe dla każdego, kto zna się na tworzeniu stron internetowych.

Technologia stojąca za blockchain może być trudna do zrozumienia, ale jak w każdym innym frameworku lub narzędziu programistycznym, nie musisz koniecznie wiedzieć, jak została zbudowana, aby z niej korzystać. Nie pozwól, aby tajemnicza aura blockchain powstrzymała Cię przed zbudowaniem czegoś wspaniałego.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map