Co to jest pakiet truflowy? Funkcje, Jak zainstalować, Jak uruchamiać inteligentne kontrakty

Opublikowany: 2020-03-24

Na początku, kiedy Blockchain dopiero rozpoczynał swoją podróż do głównej domeny technologicznej, trzeba było opracować inteligentne kontrakty przy użyciu języka programowania Solidity i wdrożyć je, wywołując funkcje geth lub solc.

Aby uprościć ten proces, trzeba było napisać skrypty basha, które najpierw skompilują, a następnie wdrożą kontrakt. Teraz, chociaż to drugie podejście było lepsze niż pierwsze, było dość szczątkowe, biorąc pod uwagę, że skrypty bash często pociągają za sobą brak standaryzacji.

Ta potrzeba stworzenia płynnego i optymalnego środowiska programistycznego i testowego dla inteligentnych kontraktów Blockchain dała początek Truffle Etheruem.

Ucz się kursu inżynierii 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

Czym jest Apartament Truflowy?

Według Truffle Suite , Truffle to „światowej klasy środowisko programistyczne, platforma testowa i potok zasobów dla blockchainów wykorzystujących Ethereum Virtual Machine (EVM), którego celem jest ułatwienie życia programistom”.

Krótko mówiąc, Truffle to środowisko programistyczne, platforma testowa i potok zasobów w jednym. Opiera się na Ethereum Blockchain i ma na celu ułatwienie płynnego i bezproblemowego rozwoju DApps (aplikacji rozproszonych). Dzięki Truffle możesz kompilować i wdrażać inteligentne kontrakty, wstrzykiwać je do aplikacji internetowych, a także tworzyć front-end dla DApps. Obecnie Truffle jest jednym z najczęściej używanych środowisk IDE dla Ethereum Blockchain.

Pakiet Truffle składa się z trzech podstawowych elementów:

  • Truffle — rzeczywiste środowisko programistyczne, które integruje kompilację, testowanie i wdrażanie inteligentnych kontraktów.
  • Ganache – Jest to lokalnie wdrożony symulator Blockchain. Ganache oferuje graficzny interfejs użytkownika, który może symulować sieci Blockchain i testować na żywo inteligentne kontrakty bez konieczności konfigurowania prawdziwych sieci testowych lub korzystania z sieci zdalnej.
  • Drizzle — jest to asortyment bibliotek front-end, które oferują przydatne komponenty do tworzenia aplikacji internetowych, które mogą bezproblemowo łączyć się z inteligentnymi kontraktami.

Przeczytaj: Jak zostać programistą Blockchain – Przewodnik dla początkujących

Jakie są cechy Trufle?

Funkcje, które sprawiają, że Truffle Etheruem jest jednym z najczęściej używanych środowisk IDE dla Ethereum Blockchain, to:

  • Ma wbudowaną obsługę kompilowania, wdrażania i łączenia inteligentnych kontraktów.
  • Pozwala na automatyczne testowanie kontraktów z Mocha i Chai.
  • Konsola Truffle umożliwia bezproblemową pracę ze skompilowanymi kontraktami.
  • Ma konfigurowalny potok kompilacji, który obsługuje zarówno aplikacje konsolowe, jak i aplikacje internetowe.
  • Posiada wbudowaną obsługę JavaScript, CoffeeScript, SASS, ES6 i JSX.
  • Posiada generatory, które pomagają w tworzeniu nowych kontraktów i testów (np. generowanie szyn).
  • Posiada program uruchamiający skrypty, który umożliwia uruchamianie plików JS/Coffee, w tym inteligentnych kontraktów.
  • Pozwala na błyskawiczną odbudowę majątku na etapie rozwoju.
  • Umożliwia kompilację i wdrażanie kontraktów przy użyciu preferowanego klienta RPC.
  • Obsługuje zarówno zarządzanie siecią, jak i pakietami.

Jak zainstalować Truffle Ethereum?

Możesz zainstalować Truffle Ethereum za pomocą Menedżera pakietów węzłów (npm). Najpierw musisz skonfigurować NPM na swoim komputerze, a następnie zainstalować Truffle. Aby to zrobić, musisz otworzyć terminal i wpisać:

npm install -g trufla

Jednak w maszynach z systemem Linux może być konieczne dodanie przedrostka „sudo” do powyższej instrukcji. Po zainstalowaniu platformy Truffle pobierz i zainstaluj symulator łańcucha bloków Ganache. Możesz odwiedzić oficjalną stronę Ganache – zawiera ona instalatory dla najpopularniejszych platform.

Teraz, gdy pomyślnie zainstalowałeś Truffle, możesz rozpocząć projekt Truffle na dwa sposoby. Aby utworzyć goły projekt, możesz wpisać następującą instrukcję:

początek trufli

Możesz jednak również użyć polecenia Truffle unbox, aby utworzyć projekt z istniejącym kodem. Na przykład możesz utworzyć token w następujący sposób:

trufla unbox metacoin

Po uruchomieniu tego polecenia projekt zostanie utworzony z pudełka Truffle. Na oficjalnej stronie internetowej można znaleźć wiele pudełek Truffle . Zawierają kod wzorcowy i wszystkie niezbędne konfiguracje do projektów budowlanych i szybko je uruchamiają.

Struktura projektu Trufle

Utworzony folder Truffle będzie wyglądał mniej więcej tak:

├── kontrakty

│ ConvertLib.sol

MetaCoin.sol

└── Migrations.sol

├──migracje

│ ├── 1_initial_migration.js

│ └── 2_deploy_contracts.js

├── test

│ ├── TestMetacoin.sol

metacoin.js

trufle-config.js

trufle.js

Teraz omówimy szczegółowo różne podfoldery zawarte w folderze Truffle.

Folder umów

Folder Kontrakty to taki, w którym przechowywane są wszystkie Twoje inteligentne kontrakty. W tym folderze znajduje się również specjalny plik znany jako plik Migrations.sol. Zwykle, gdy Truffle kompiluje twój projekt, przegląda folder Contracts, aby skompilować wszystkie kompatybilne pliki.

Folder migracji

Migracja Truffle odnosi się do skryptu, który definiuje, w jaki sposób Twoje inteligentne kontrakty zostaną wdrożone w łańcuchu bloków Ethereum. Migracje są niezbędne, ponieważ wraz ze wzrostem złożoności projektu wzrasta również złożoność wdrożeń. Dzięki Truffle Migrations możesz zautomatyzować proces wdrażania inteligentnych kontraktów w sposób sekwencyjny.

Jeśli spojrzysz wstecz na strukturę folderów Truffle, zobaczysz plik o nazwie 1_initial_migration.js . Ten plik wdraża kontrakt Migrations.sol w łańcuchu bloków Ethereum.

Migracje umożliwiają:

  • Ustaw maksymalny limit gazu dla wdrożeń
  • Zmodyfikuj lub zmień z adresu wdrożeń.
  • Wywołaj dowolne funkcje kontraktowe.
  • Wdróż biblioteki

Testuj folder

Jeśli chodzi o inteligentne kontrakty, testowanie jest koniecznością! Na szczęście Truffle ma wbudowaną platformę testową, która pozwala pisać testy w Solidity lub JavaScript. Jeśli piszesz swoje testy w Solidity, musisz zaimportować inteligentne kontrakty do testów z dyrektywą importu Solidity, na przykład:

import „../kontrakty/MetaCoin.sol”;

Jeśli jednak piszesz testy w JavaScript, musisz je zaimportować za pomocą funkcji pomocniczej artifacts.require() , na przykład:

var MetaCoin = artefakty.require(„./MetaCoin.sol”);

Plik konfiguracyjny

Plik konfiguracyjny, znany również jako truffle.js lub truffle-config.js, określa, w jaki sposób Truffle może łączyć się z sieciami Ethereum wraz z następującymi rzeczami:

  • Środowiska — umożliwia zdefiniowanie adresu geth note, network_id, maksymalnego limitu gazu do wdrożenia oraz ceny gazu, którą chcesz zapłacić.
  • Struktura projektu — możesz zmienić lokalizację, w której tworzone i przechowywane są pliki.
  • Wersja i ustawienia kompilatora — Możesz naprawić wersję solc i ustawić parametry -O (optymalizacja).
  • Zarządzanie pakietami – Truffle jest kompatybilny z EthPM (Ethereum Package Manager). Możesz skonfigurować zależności dla EthPM dla swoich projektów Truffle.
  • Opis projektu — określa, kto opracował projekt, określa nazwę projektu, adresy kontaktowe itd.

Przeczytaj także: Pomysły na projekty Blockchain dla początkujących

Jak uruchomić inteligentne kontrakty?

Oto różne sposoby uruchamiania inteligentnych kontraktów –

  • Aby skompilować inteligentne kontrakty, musisz uruchomić następujący kod:

kompilacja trufli

  • Aby uruchomić migracje, musisz użyć następującego kodu:

migracja trufli

Możesz to również zrobić, wymieniając konkretne środowisko:

migracja trufli – sieć na żywo

  • Do testowania inteligentnych kontraktów możesz uruchomić następujący kod:

test trufli

Możesz również uruchomić określony test, używając następującego kodu:

test trufli ./ścieżka/do/FileTest.sol

W tym poście mamy na celu przedstawienie podstawowej idei Truffle Etheruem i sposobu jej działania. Truffle to potężne narzędzie, które sprawia, że ​​tworzenie DApps i Smart Contracts jest znacznie wygodniejsze dzięki wprowadzeniu standardowych praktyk programistycznych do obrazu Blockchain.

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 .

Czym jest Vyper w Ethereum?

Vyper to zorientowany na kontrakty, statystycznie typowany, Pythonowy język programowania, który jest skierowany do wirtualnego świata Ethereum. Został zaprojektowany jako ulepszenie Solidarności. Główne zasady i cele Vypera to bezpieczeństwo, prostota języka i kompilatora oraz możliwość audytu. Vyper jest językiem silnie typizowanym i dlatego nie pozwala na używanie jednego typu danych jako innego. Zawiera wiele dodatkowych funkcji, takich jak sprawdzanie granic i przepełnień, silne typowanie, małe i zrozumiałe strony kompilatora, ograniczona obsługa czystych funkcji, obsługa liczb całkowitych ze znakiem i dziesiętnych liczb stałoprzecinkowych oraz rozstrzyganie. Ma również prostą składnię, która uniemożliwia programistom kodowanie niejednoznacznych programów.

Jakie są wady inteligentnych kontraktów?

Inteligentne kontrakty, mimo że mają tak wiele zastosowań i większą popularność, mają wiele ograniczeń. Istnieje dobre uregulowanie prawne dotyczące egzekwowania inteligentnych kontraktów, co czyni je bardziej podatnymi na cyberataki. Zmiana procesu inteligentnej umowy jest prawie niemożliwa, ponieważ naprawienie każdego błędu w kodzie jest czasochłonne i kosztowne. Chociaż zaangażowanie osób trzecich jest znacznie zmniejszone, nie można go całkowicie wyeliminować. Na przykład programiści potrzebują prawników, aby rozumieli warunki tworzenia kodów dla inteligentnych kontraktów. Inteligentne kontrakty mają również dużą zależność od programistów i narażenie na błędy, co jest istotną wadą.

Czym jest zarządzanie siecią i pakietami w blockchain?

Menedżer pakietów pomaga zautomatyzować instalację, aktualizację, konfigurację i usuwanie aplikacji. Są używane w systemach operacyjnych i środowiskach programistycznych i pomagają uniknąć piekła zależności. Kluczowe funkcje menedżerów pakietów obejmują zapewnienie autentyczności pakietu, pobieranie oprogramowania z repozytorium online, aktualizację istniejącego oprogramowania itp. Istnieje wiele rodzajów menedżerów pakietów, pakiety binarne, pakiety oparte na kodzie źródłowym, systemy hybrydowe, menedżery metapakietów, aplikacje oparte na menedżerach itp. Istnieją również menedżery pakietów związane z blockchainem. Jednym z takich menedżerów jest menedżer pakietów węzłów. NPM to największy rejestr oprogramowania na świecie, który umożliwia użytkownikom korzystanie ze współdzielonych zasobów za pośrednictwem ich repozytorium o otwartym kodzie źródłowym.