Wdrożenie pierwszego inteligentnego kontraktu
Zgaduję, że jesteś tak samo podekscytowany jak my, aby wdrożyć i wejść w interakcję ze swoim pierwszym inteligentnym kontraktem na blockchainie Ethereum.
Nie przejmuj się, ponieważ jest to nasz pierwszy inteligentny kontrakt, wdrożymy go w lokalnej sieci testowej, więc jego wdrożenie nic nie kosztuje i możesz się nim bawić, ile tylko chcesz.
Pisanie naszego kontraktu
Pierwszym krokiem jest odwiedzenie Remix (opens in a new tab) i utworzenie nowego pliku. W lewej górnej części interfejsu Remix dodaj nowy plik i wprowadź żądaną nazwę pliku.
W nowym pliku wkleimy następujący kod.
1// SPDX-License-Identifier: MIT2pragma solidity >=0.5.17;34contract Counter {56 // Publiczna zmienna typu unsigned int do przechowywania liczby zliczeń7 uint256 public count = 0;89 // Funkcja, która zwiększa nasz licznik10 function increment() public {11 count += 1;12 }1314 // Niepotrzebny getter do pobrania wartości licznika15 function getCount() public view returns (uint256) {16 return count;17 }1819}Pokaż wszystkoJeśli masz doświadczenie w programowaniu, możesz łatwo odgadnąć, co robi ten program. Oto wyjaśnienie linijka po linijce:
- Wiersz 4: Definiujemy kontrakt o nazwie
Counter. - Wiersz 7: Nasz kontrakt przechowuje jedną liczbę całkowitą bez znaku o nazwie
count, zaczynając od 0. - Wiersz 10: Pierwsza funkcja modyfikuje stan kontraktu i zwiększa naszą zmienną
count. - Wiersz 15: Druga funkcja to tylko getter, który umożliwia odczytanie wartości zmiennej
countpoza inteligentnym kontraktem. Zauważ, że ponieważ zdefiniowaliśmy naszą zmiennącountjako publiczną, nie jest to konieczne, ale zostało pokazane jako przykład.
To wszystko, jeśli chodzi o nasz pierwszy prosty inteligentny kontrakt. Jak być może wiesz, wygląda to jak klasa z języków programowania zorientowanego obiektowo (OOP), takich jak Java lub C++. Nadszedł czas, aby pobawić się naszym kontraktem.
Wdrażanie naszego kontraktu
Ponieważ napisaliśmy nasz pierwszy inteligentny kontrakt, teraz wdrożymy go w blockchainie, aby móc się nim bawić.
Wdrażanie inteligentnego kontraktu na blockchainie to w rzeczywistości tylko wysłanie transakcji zawierającej kod skompilowanego inteligentnego kontraktu bez określania żadnych odbiorców.
Najpierw skompilujemy kontrakt, klikając ikonę kompilacji po lewej stronie:
Następnie kliknij przycisk kompilacji:
Możesz wybrać opcję "Automatyczna kompilacja", aby kontrakt był zawsze kompilowany po zapisaniu zawartości w edytorze tekstowym.
Następnie przejdź do ekranu "wdrażanie i uruchamianie transakcji":
Gdy znajdziesz się na ekranie "wdrażanie i uruchamianie transakcji", upewnij się, że wyświetla się nazwa Twojego kontraktu, a następnie kliknij "Wdróż". Jak widać na górze strony, obecne środowisko to "JavaScript VM", co oznacza, że będziemy wdrażać i wchodzić w interakcję z naszym inteligentnym kontraktem na lokalnym testowym blockchainie, aby móc go testować szybciej i bez żadnych opłat.
Po kliknięciu przycisku "Wdróż", na dole pojawi się Twój kontrakt. Kliknij strzałkę po lewej stronie, aby go rozwinąć i wyświetlić zawartość naszego kontraktu. To jest nasza zmienna counter, nasza funkcja increment() i getter getCounter().
Jeśli klikniesz przycisk count lub getCount, zostanie odczytana zawartość zmiennej count z kontraktu i wyświetlona. Ponieważ nie wywołaliśmy jeszcze funkcji increment, wyświetli się 0.
Wywołajmy teraz funkcję increment, klikając przycisk. Zobaczysz logi wykonanych transakcji, które pojawią się na dole okna. Zobaczysz, że logi są inne, gdy naciskasz przycisk pobierania danych zamiast przycisku increment. Dzieje się tak, ponieważ odczytywanie danych z blockchaina nie wymaga żadnych transakcji (zapisu) ani opłat. Ponieważ tylko modyfikowanie stanu blockchaina wymaga wykonania transakcji:
Po naciśnięciu przycisku increment, który wygeneruje transakcję wywołującą naszą funkcję increment(), jeśli ponownie klikniemy przyciski count lub getCount, odczytamy nowo zaktualizowany stan naszego inteligentnego kontraktu ze zmienną count większą od 0.
W następnym samouczku omówimy, jak możesz dodawać zdarzenia do swoich inteligentnych kontraktów. Rejestrowanie zdarzeń jest wygodnym sposobem debugowania inteligentnego kontraktu i zrozumienia, co się dzieje podczas wywoływania funkcji.
Strona ostatnio zaktualizowana: 26 kwietnia 2024







