Jak zbudować aplikację Blockchain

Szukasz przewodnika, w którym możesz dowiedzieć się, jak zbudować aplikację typu blockchain? Oto przewodnik, który pomoże Ci zbudować aplikację opartą na łańcuchu bloków od podstaw.

W tym artykule będziemy budować naszą aplikację blockchain. Niedawno omówiliśmy, jak zbudować łańcuch bloków. Był to kompletny przewodnik po budowaniu łańcucha bloków w języku programowania Python. Głównym celem samouczka jest zapoznanie się z technologią blockchain i jej wewnętrznym działaniem.

Ten samouczek dotyczy jednak tworzenia aplikacji przy użyciu łańcucha bloków. Zdecentralizowana aplikacja (dApp) będzie mogła korzystać z właściwości blockchain.

Zbudujemy prostą aplikację blockchain przy użyciu Ethereum. Ethereum to technologia blockchain drugiej generacji, która zapewnia zaawansowane funkcje, takie jak inteligentne kontrakty, dowód stawki i, co najważniejsze, możliwość tworzenia zdecentralizowanych aplikacji (dApps).

Zacznijmy więc od naszego samouczka „Jak zbudować aplikację opartą na łańcuchu bloków”. Ten samouczek jest również skierowany do tych, którzy chcą zbudować prostą aplikację typu blockchain. Aby zbudować prostą aplikację blockchain, użyjemy sieci Ethereum.

Ale zanim zaczniemy, zróbmy dobrze nasze podstawy.

Zapisać się: Kurs Enterprise Blockchains Fundamentals

Co to jest dApp?

Pierwszym krokiem, który zamierzamy wykonać w celu zbudowania samouczka aplikacji blockchain, jest najpierw poznanie koncepcji zdecentralizowanej aplikacji (dApp).

dApp oznacza zdecentralizowaną aplikację. Jest to inny rodzaj aplikacji, który oferuje kluczowe cechy, w tym możliwość autonomicznego działania. Aplikacja przechowuje również dane w sposób kryptograficzny, dzięki czemu żaden nieuprawniony podmiot nie ma do nich dostępu bez odpowiedniego upoważnienia.

Wszystkie te cechy sprawiają, że zdecentralizowane aplikacje są bardzo przydatne w obecnym środowisku korporacyjnym. Aplikacje mogą również używać tokenów, których można używać do korzystania z funkcji oferowanych przez aplikację. Ponadto aplikacja może również dystrybuować tokeny, aby zachęcić węzły, które uczestniczą w tworzeniu funkcjonalności dApp.

Wybór platformy – dlaczego wybieramy platformę Ethereum

Obecnie istnieje wiele platform, na których możesz zbudować swoją dApp. Obejmują one popularne platformy blockchain, takie jak Ethereum, Hyperledger Fabric i Cardano. Spośród tych wszystkich Ethereum wydaje się być najlepszym wyborem ze względu na aktywną społeczność, narzędzia i samouczki dostępne online.


Innym powodem, dla którego wybieramy Ethereum, jest to, że używa Solidity. Solidity jest wyraźnie stworzony do wdrażania i tworzenia dApps i inteligentnych kontraktów. Jest łatwy do nauczenia i zapewnia elastyczność eksperymentowania.

Praktyczny przewodnik dotyczący tworzenia zdecentralizowanej aplikacji Blockchain

Jak zbudować aplikację typu blockchain

Zanim przejdziemy dogłębnie w kod, chciałbym wymienić kroki, które przedstawiają proces tworzenia aplikacji blockchain. Przejdźmy przez to poniżej.

Znajdź pomysł

Pierwszym krokiem jest znalezienie pomysłu do pracy. Decentralizacja to fajna nowa koncepcja, która może mieć wiele zastosowań. Jako osoba ucząca się lub inżynier powinieneś wpaść na przydatny pomysł, który może przynieść korzyści Tobie lub Twojej firmie. Nie martw się też, jeśli nie możesz wpaść na pomysł, który zmieni krajobraz. Tworzenie prostych aplikacji dApps tylko w celu uczenia się i ćwiczeń jest w porządku.

Możesz także wyszukiwać problemy, które napotykasz w przypadku blockchain i być może spróbować rozwiązać je najlepiej jak potrafisz. Chodzi o to, aby spojrzeć na problem z punktu widzenia bólu, a następnie spróbować go rozwiązać.

Jeśli próbujesz zbudować dApp dla swojej firmy lub zgodnie z wymaganiami biznesowymi, musisz przeprowadzić odpowiednią analizę kosztów i korzyści. Musisz także zbadać ryzyko związane z projektem i sprawdzić, czy Twój zespół biznesowy może zarządzać aplikacją z należytą starannością.

W żadnym wypadku nie powinieneś podejmować pochopnej decyzji, której później będziesz żałować. Dzieje się tak, ponieważ rozwój łańcucha bloków jest kosztowny, zwłaszcza jeśli chodzi o znalezienie talentu do jego rozwijania i zarządzania nim. Ponadto brakuje programistów, którzy pracują nad blockchainem. Krótko mówiąc, powinieneś podjąć odpowiednie kroki, jeśli chodzi o tworzenie aplikacji blockchain lub blockchain.

Oto przewodnik po programowaniu dApps, w którym możesz zrozumieć mechanizmy stojące za tworzeniem nowej zdecentralizowanej aplikacji.

Wybierz metodę konsensusu

Każda zdecentralizowana aplikacja wymaga do działania odpowiedniego algorytmu konsensusu. Zapewnia, że ​​transakcje są sprawdzane i nie dochodzi do oszustw. Jako programista lub uczący się musisz wybrać jedną z dostępnych metod konsensusu, w tym Proof of Stake, Delegated Proof of Stake, Bizancjum odporne na błędy i tak dalej! Wybór powinien zależeć od Twojej znajomości i wymagań aplikacji.

Wybór platformy

Tutaj musisz wybrać dowolną platformę. Oczywiście omówiliśmy już powyższy punkt. Masz do wyboru głównie trzy platformy, w tym Ethereum, Hyperledger Fabric i Cardano.

Istnieje wiele korporacyjnych frameworków blockchain, których możesz użyć do tego, ale zamierzamy pójść z Ethereum.

Konsola administracyjna i interfejs użytkownika

Aplikacje powinny zapewniać odpowiednie wrażenia użytkownika. Dlatego powinieneś stworzyć aplikację opartą na łańcuchu bloków z dobrym interfejsem użytkownika. Aplikacja powinna mieć również konsolę administracyjną, aby można było nią bez problemu zarządzać.

Zrozumienie zasad Blockchain

Deweloperzy często rozpoczynają samouczek tworzenia aplikacji typu blockchain bez zrozumienia podstawowych pojęć i zasad. Dlatego całkowicie polecam podstawy technologii blockchain, zanim zacznę od samouczków dotyczących tworzenia aplikacji. Możesz także przeczytać o jego ekosystemie, w tym o narzędziach, platformach i kryptowalutach blockchain.

Ćwicz i rozwijaj się

Ćwicz swoje umiejętności tak często, jak możesz. Dzięki temu zdobędziesz umiejętności tworzenia bardziej złożonych aplikacji w przyszłości.

Jak zbudować aplikację Blockchain? Łatwe podejście

Tak, dobrze przeczytałeś. W tej sekcji naszym celem będzie stworzenie prostej aplikacji opartej na łańcuchu bloków w zaledwie pięciu prostych krokach. Jeśli nigdy nie zbudowałeś aplikacji blockchain, te pięć kroków pomoże ci lepiej zrozumieć proces.

Pięć kroków jest następujących.

  • Zainstaluj zależności i klonuj repozytoria.
  • Uruchamianie Ganache CLI
  • Kompilacja kontraktów
  • Wdrożenie kontraktu
  • Interakcja kontraktowa

I to wszystko. Bardziej szczegółowe instrukcje znajdziesz w samym poście. Jest to prosta aplikacja do głosowania na blockchain.

Jak zbudować aplikację Blockchain? Trudne podejście

W porządku! Masz mnie! Nie chcesz łatwej drogi, ale chcesz nauczyć się blockchain na własnej skórze. Nie martw się, ponieważ w tej sekcji utworzymy aplikację z listą zadań do wykonania przy użyciu inteligentnych kontraktów Ethereum.

Działanie aplikacji Blockchain

Zanim zagłębimy się w tworzenie aplikacji blockchain, spróbujmy przede wszystkim zrozumieć, jak aplikacja blockchain działałaby w pierwszej kolejności.

Aby to zrozumieć, przyjrzyjmy się, jak działa prosta aplikacja. Każda aplikacja działająca w internecie jest renderowana na komputerze użytkownika za pomocą przeglądarki lub dedykowanej aplikacji w systemie Windows. W każdym razie żąda od serwera stron lub informacji, które są następnie renderowane na komputerze użytkownika.

W przypadku aplikacji webowej wszystko jest scentralizowane. To daje pewne korzyści; Jednak jeśli chodzi o bezpieczeństwo, pozostawia wiele do życzenia. Aplikacje Blockchain działają zupełnie inaczej. Wszystko jest zdecentralizowane, w tym kod i dane przechowywane w aplikacji.

Inteligentne kontrakty

Kluczem jest tutaj inteligentny kontrakt. Inteligentna umowa ułatwia samą aplikację. Zawiera cały kod, który sprawia, że ​​aplikacja działa. Automatyzuje również proces i zapewnia, że ​​działa zgodnie z przeznaczeniem. W naszym samouczku będziemy używać inteligentnych kontraktów do pisania różnych funkcji listy rzeczy do zrobienia.

Inteligentne kontrakty wykorzystują język programowania Solidity. Jest podobny do JavaScript. Po napisaniu inteligentnej umowy jej kod staje się niezmienny i niezmienny. Możesz dowolnie zmieniać kod podczas wdrażania. Jednak po wdrożeniu aplikacji nie będzie można zmienić kodu. Ma to na celu zapewnienie zaufania i bezpieczeństwa aplikacjom blockchain. Takie podejście oznacza również, że musisz zachować szczególną ostrożność i wykonać wszystkie testy przed wdrożeniem inteligentnego kontraktu. Ponadto kody inteligentnych umów mają charakter publiczny.

Chcesz dowiedzieć się, jak zbudować łańcuch bloków za pomocą Pythona? Oto samouczek dotyczący tworzenia łańcucha bloków w języku Python, który możesz śledzić.

Tworzenie naszej aplikacji z listą zadań do wykonania w łańcuchu blokowym

Aby upewnić się, że rozumiesz tę koncepcję, musisz najpierw dowiedzieć się, jak będzie działać aplikacja blockchain Todo. Będziemy używać Ethereum do tworzenia aplikacji. Nasza aplikacja będzie korzystać z pojedynczego węzła Ethereum, a także będzie mieć aplikację po stronie klienta. Zamierzamy użyć Solidity do napisania inteligentnego kontraktu, a następnie go wdrożyć.

Jako programista musisz korzystać z portfela Ethereum – który jest łatwy do wykonania.

Przygotowanie – tworzenie środowiska

Aby stworzyć środowisko lokalne, będziemy potrzebować wielu narzędzi i pakietów. Przejrzyjmy je jeden po drugim.

Nadzienie

Nadzienie jest narzędziem programistycznym Ethereum. Pozwala zarządzać, wdrażać i opracowywać aplikacje, inteligentne kontrakty i testy. Zamierzamy uruchomić wersję dla systemu Windows na potrzeby samouczka. Jeśli masz inny system operacyjny, możesz również pobrać wersję dla komputerów Mac lub Linux. Po zainstalowaniu powinieneś być w stanie go wykorzystać za pomocą narzędzia wiersza poleceń.

Node.js

Node.js to nasze następne narzędzie, które należy zainstalować. Aby prywatny łańcuch bloków działał na twoim komputerze, musisz zainstalować Menedżer pakietów węzłów.

Po zainstalowaniu otwórz terminal i wpisz poniższe polecenie. Jeśli działa, możesz iść.

$ node -v

Portfel MetaMask Ethereum

Ponieważ zamierzamy pracować na blockchainie Ethereum, potrzebujemy portfela, który może działać z poziomu przeglądarki. Metamask to portfel przeglądarki internetowej, który umożliwia interakcję z łańcuchem bloków Ethereum.

Truffle Framework

Ostatnim oprogramowaniem, które zamierzamy zainstalować, jest Truffle Framework. Oferuje szeroki zestaw narzędzi, które pozwalają efektywnie pracować na Twoim dApp. Możesz użyć języka programowania Solidity, aby opracować inteligentny kontrakt Ethereum.

Oto niektóre z kluczowych funkcji Truffle Framework

  • Właściwe inteligentne zarządzanie umowami
  • Zarządzanie siecią
  • Testowanie automatyczne
  • Konsola deweloperska
  • Script Runner
  • Wdrażanie i migracje
  • Rozwój po stronie klienta.

Aby zainstalować, musisz użyć npm polecenie. Po prostu uruchom następujące polecenie w wierszu poleceń.

$ npm install -g [e-mail chroniony]

Jak zbudować aplikację typu blockchain

Instalacja zajmie trochę czasu. Pamiętaj również, że musisz zainstalować dokładną wersję, aby postępować zgodnie z samouczkiem.

Chcesz zostać ekspertem w dziedzinie technologii blockchain? Zapisz się teraz na nasz certyfikowany profesjonalny kurs blockchain dla przedsiębiorstw!

Konfiguracja projektu

Fajne! Mamy teraz nasze środowisko programistyczne gotowe do użycia. Teraz wszystko, co musimy zrobić, to stworzyć nasz projekt. Aby to zrobić, musimy utworzyć katalog projektu. Zróbmy to poniżej.

$ mkdir dapp-todo

$ cd dapp-todo

Zbuduj prostą aplikację typu blockchain

Gdy znajdziesz się w folderze, musisz zainicjować projekt trufli, uruchamiając poniższe polecenie.

$ truffle init

Zbuduj aplikację za pomocą łańcucha bloków

Po zakończeniu zostanie wyświetlony komunikat jak powyżej. Oznacza to, że folder i pliki zostały pomyślnie utworzone. Teraz możesz otworzyć folder w swoim ulubionym edytorze tekstu. Ale zanim to zrobisz, musisz utworzyć plik package.json plik. Pomoże Ci to zainstalować zależności wymagane dla projektu.

Możesz ręcznie utworzyć plik, a następnie zapisać zawartość pokazaną poniżej.

{

„Name”: „dapp-todo”,

„Wersja”: „1.0.0”,

„Description”: „Lista zadań do wykonania oparta na Ethereum”,

„Main”: „truffle-config.js”,

„Directories”: {

„Test”: „test”

},

„Skrypty”: {

„Dev”: „lite-server”,

„Test”: „echo \” Błąd: nie określono testu \ ” && sexit 1 ″

},

„Autor”: „[e-mail chroniony]”,

„License”: „ISC”,

„DevDependencies”: {

„Bootstrap”: „4.1.3”,

„Chai”: „^ 4.1.2”,

„Czaj-zgodnie z obietnicą”: „^ 7.1.1”,

„Chai-bignumber”: „^ 2.0.2”,

„Lite-server”: „^ 2.3.0”,

„Nodemon”: „^ 1.17.3”,

„Trufla”: „5.0.2”,

„Kontrakt truflowy”: „3.0.6”

}

}

Po zakończeniu uruchom następującą komendę, aby zainstalować zależności.

$ npm install

Zrozumienie struktury katalogów

Struktura katalogów będzie wyglądać jak poniżej.

Przyjrzyjmy się każdemu folderowi po kolei.

  • Umowy: Katalog zawiera wszystkie inteligentne kontrakty. Kontrakt migrations.sol obsługuje migracje do łańcucha bloków.
  • Migracje: Katalog migracji zawiera dane migracji. To stąd odbywają się migracje.
  • node_modules: Zawiera wszystkie moduły / zależności węzła.
  • Test: Ten katalog zawiera pliki testowe.
  • truffle-config.js: Ten plik zawiera konfigurację projektu trufli.

Tworzenie kontraktu inteligentnego

Nadszedł czas, abyśmy zaczęli tworzyć inteligentne kontrakty. Nasze inteligentne kontrakty będą przechowywane w folderze kontraktów. Utwórzmy plik kontraktu inteligentnego o nazwie todo.sol

Po zakończeniu musisz teraz napisać kod jak poniżej.

solidność pragmy ^ 0,5,0;

kontrakt Todo {

// Kod tutaj

}

Pierwsza linia kodu określa, której wersji Solidity używamy do napisania inteligentnego kontraktu. Następnie musimy użyć słowa kluczowego kontraktu i utworzyć kontrakt Todo. Będzie zawierał kod inteligentnego kontraktu.

Teraz dodajmy zmienną, aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami.

solidność pragmy ^ 0,5,0;

kontrakt Todo {

uint Tasks = 0;

}

Tutaj definiujemy zmienną zadań, która będzie liczyć liczbę zadań, które mamy w naszej aplikacji Todo.

Łączę się z Ganache

Po prawidłowym skonfigurowaniu naszej inteligentnej umowy w Truffle musimy teraz połączyć się z prywatnym łańcuchem bloków Ganache, który utworzyliśmy. Aby to zrobić, należy zaktualizować niektóre pliki konfiguracyjne. Musimy również utworzyć skrypt migracji i uruchomić go, abyśmy mogli połączyć się z osobistą siecią blockchain.

Aby rozpocząć, musimy zaktualizować plik truffle-config.json. Powinien znajdować się w głównym katalogu projektu. Po otwarciu skopiuj i wklej następujący kod.

module.exports = {

sieci: {

rozwój: {

host: „127.0.0.1”,

port: 7545,

network_id: „*” // identyczny identyfikator sieci

}

},

solc: {

optymalizator: {

włączone: prawda,

kursuje: 200

}

}

}

Po utworzeniu pliku truffle-config.js nadszedł czas, abyśmy stworzyli skrypt migracji, aby utworzony przez nas inteligentny kontrakt mógł zostać przeniesiony do osobistej sieci łańcucha bloków.

Nazwę wpiszemy jako 2_deploy_contracts.js

Migracje są bardzo ważne dla naszej aplikacji Todo. Ponieważ blockchain jest rodzajem bazy danych, musimy zmienić go z jednego stanu na inny. Tutaj pomagają migracje.

Aby połączyć pliki migracji, musimy zaktualizować dodaj następujący kod do nowo utworzonego pliku migracji.

var Todo = artifacts.require („./ Todo.sol”);

module.exports = function (deployer) {

deployer.deploy (do zrobienia)

}

Pierwsza linia kodu po prostu tworzy zmienną, która odwołuje się do naszego inteligentnego kontraktu. Po zakończeniu wdrażamy go.

Po zakończeniu uruchommy teraz polecenie migracji.

$ Truffle migrate

Możesz także uruchomić konsolę za pomocą poniższego polecenia.

Konsola truflowa $

Opracowywanie naszej aplikacji Todo List

Teraz, gdy pomyślnie uruchomiliśmy nasz pierwszy inteligentny kontrakt Ethereum, nadszedł czas, abyśmy dodali funkcje do naszego dApp. Nasz dApp jest prosty. Wyświetli listę zadań na naszej liście rzeczy do zrobienia. Aby tak się stało, musimy skorzystać z inteligentnego kontraktu.

Zróbmy to poniżej.

solidność pragmy ^ 0,5,0;

kontrakt Todo {

uint publiczne zadania = 0;

struct Task {

uint id;

treść ciągu;

bool zakończone;

}

}

Tutaj użyliśmy słowa kluczowego struct, aby utworzyć nową strukturę Task. Używamy go do zdefiniowania struktury naszego zadania, która zawiera identyfikator, zawartość i ukończoną wartość logiczną.

Następnie musimy teraz zmapować naszą strukturę zadań i upublicznić ją, aby był dostępny dla łańcucha bloków. Aby to zrobić, musimy dodać następujący wiersz kodu.

Kod inteligentnej umowy będzie teraz wyglądał jak poniżej.

solidność pragmy ^ 0,5,0;

kontrakt Todo {

uint publiczne zadania = 0;

struct Task {

uint id;

treść ciągu;

bool zakończone;

}

mapowanie (uint => Zadanie) zadania publiczne;

}

Na koniec musimy teraz utworzyć funkcję, która obsługuje zadania.

function createTask (string memory _content) public {

taskCount ++;

zadania [taskCount] = Task (taskCount, _content, false)

}

Ta funkcja jest w większości oczywista. Stworzyliśmy tę funkcję, aby mogła policzyć liczbę zadań, które są wymienione w aplikacji Todo dApp.

Na koniec musimy stworzyć konstruktor, który zainicjuje klasę Todo.

constructor () public {

createTask („To jest nasze pierwsze zadanie”)

}

Nasz plik todo.sol powinien teraz wyglądać jak poniżej.

solidność pragmy ^ 0,5,0;

kontrakt Todo {

uint publiczne zadania = 0;

struct Task {

uint id;

treść ciągu;

bool zakończone;

}

constructor () public {

createTask („To jest nasze pierwsze zadanie”)

}

mapowanie (uint => Zadanie) zadania publiczne;

function createTask (string memory _content) public {

taskCount ++;

zadania [taskCount] = Task (taskCount, _content, false)

}

}

Utwórz zadania

Możemy również tworzyć zadania w naszej aplikacji Todo dApp. Aby to zrobić, musimy utworzyć wyzwalacz, gdy zostanie utworzone nowe zadanie. Nasze podejście polega na utworzeniu nowego zdarzenia TaskCreated, a następnie dodaniu go do naszej istniejącej funkcji createTask ().

zdarzenie TaskCreated (

uint id;

treść ciągu,

bool zakończone

);

Teraz dodaj następujący wiersz do funkcji createTask ().

emituj TaskCreated (taskCount, _content, false);

Wykonywanie zadań

Wykonywanie zadań można również dodawać za pomocą zdarzenia. Musisz dodać następujące zdarzenie do kontraktu Todo.

zdarzenie TaskCompleted (

uint id,

bool zakończone

);

Aby to działało, musisz również dodać nową funkcję.

function toggleCompleted (uint _id) public {

Pamięć zadań _task = zadania [_id];

_task.completed =! _task.completed;

zadania [_id] = _task;

emituj TaskCompleted (_id, _task.completed)

}

Gratulacje! Utworzyłeś swoją pierwszą listę zadań do wykonania dApp na łańcuchu blokowym Ethereum.

Uwaga końcowa

Prowadzi nas to również do końca naszego samouczka tworzenia aplikacji typu blockchain. W ten sposób tworzysz od podstaw aplikację do tworzenia łańcucha bloków.

Stamtąd musisz poprawnie przetestować kontrakt, zanim ostatecznie przeniesiesz go do łańcucha bloków. Możesz także utworzyć front-end aplikacji i przetestować ją. Jeśli nie jesteś tym zainteresowany, możesz uruchomić konsolę i uzyskać dostęp do zmiennych i funkcji, aby przetestować rzeczy!

Ale jeśli nadal nie jesteś świadomy konsekwencji związanych z blockchain, zachęcamy do rozpoczęcia naszego bezpłatnego kursu blockchain, aby dowiedzieć się więcej na jego temat. Bez nauczenia się lub zrozumienia, jak to działa, zrozumienie koncepcji programowania będzie dla ciebie naprawdę trudne.

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