W poprzednim Samouczek Truffle Ethereum , dowiedziałeś się o Truffle Suite i opracowałeś plik Ethereum DApp. Aby opracować złożoną aplikację ethereum, będziesz chciał uruchomić ją w sieci prywatnej, aby zobaczyć, jak działa, przed jej wdrożeniem. W tym samouczku dotyczącym sieci prywatnej Ethereum dowiesz się, jak utworzyć plik Prywatna sieć Ethereum i jak dokonać transakcji między dwoma kontami.
Jesteś zainteresowany rozwojem Ethereum? Sprawdź Live .
Samouczek sieci prywatnej Ethereum
Oto tematy, które omówię w tym samouczku:
- Co to jest sieć prywatna Ethereum?
- Dlaczego używana jest sieć prywatna Ethereum?
- Funkcje sieci prywatnej Ethereum
- Instalowanie Ethereum na Ubuntu
- Demo: Tworzenie sieci prywatnej Ethereum i dokonywanie transakcji
Co to jest sieć prywatna Ethereum?
Sieć prywatna Ethereum to całkowicie prywatny łańcuch blokowy, który jest odizolowany od głównej sieci Ethereum. Sieć prywatna Ethereum jest tworzona głównie przez organizacje w celu ograniczenia uprawnień odczytu w łańcuchu bloków. Tylko węzły z odpowiednimi uprawnieniami będą miały dostęp do tego Blockchain. Węzły w tej sieci nie są połączone z głównymi węzłami sieci, a ich zasięg jest ograniczony tylko do tego prywatnego Blockchain.
Dlaczego używana jest sieć prywatna Ethereum?
Sieć prywatna Ethereum jest używana przez organizacje do przechowywania prywatnych danych, które nie powinny być widoczne dla osób spoza ich organizacji. Sieć prywatna Ethereum jest również używana do testowania i eksperymentowania z Blockchain, jeśli ktoś nie chce korzystać z publicznych sieci testowych.
Funkcje sieci prywatnej Ethereum
Jak wspomniano w poprzedniej sekcji, sieć prywatna Ethereum jest używana do celów testowych. Ale po co ktoś miałby zadawać sobie trud tworzenia nowej sieci, skoro są już dostępne publiczne sieci testowe? Cóż, sieć prywatna Ethereum ma swój własny zestaw funkcji wymienionych poniżej:
- Działa jako rozproszona baza danych
- Blockchain w sieci prywatnej Ethereum może zawierać prywatne dane (ponieważ sieć nie jest publiczna)
- Dostęp może być oparty na pozwoleniach
- Dokonywanie transakcji może być bezpłatne
- Kontom można przypisać eterysamodzielnie, co nie wymaga nawet kupowania wirtualnych eterów
Przechodząc dalej, przejdźmy do praktycznej części tego samouczka sieci prywatnej Ethereum.
Instalowanie Ethereum na Ubuntu
Aby utworzyć prywatną sieć Ethereum, najpierw musimy mieć zainstalowany Ethereum w naszym systemie. W tej sekcji samouczka sieci prywatnej Ethereum dowiesz się, jak zainstalować Ethereum na Ubuntu.
Aby zainstalować Ethereum, uruchom następujące polecenia w terminalu:
$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum
Gotowe! Spowoduje to zainstalowanie Ethereum w twoim systemie.
Zacznijmy od utworzenia sieci prywatnej.
Demo: Tworzenie sieci prywatnej Ethereum i dokonywanie transakcji
W tym samouczku dotyczącym sieci prywatnej Ethereum wyślemy eteryz jednego konta na drugie, więc potrzebujemy kont. Zobaczmy teraz, jak utworzyć konta dla naszego łańcucha blokowego.
Tworzenie kont dla sieci prywatnej Ethereum
Zanim utworzymy nowe konta, stwórzmy nowy katalog dla naszego miejsca pracy. Aby to zrobić, zapoznaj się z poniższymi poleceniami:
$ mkdir private-ethereum $ cd private-ethereum
Aby dokonać transakcji, potrzebujemy co najmniej dwóch rachunków: odbiorcy i nadawcy.
Aby utworzyć dwa konta, dwukrotnie uruchom następujące polecenie:
$ geth --datadir ./datadir konto nowe
Wejdz do hasło dla każdego konta, gdy zostaniesz o to poproszony. Nie zapomnij tego hasła!
Po pomyślnym wykonaniu tych poleceń zostaną utworzone dwa konta, a adres konta zostanie wyświetlony na ekranie.
Zapisz gdzieś te adresy, ponieważ będziemy ich dalej używać.
Tworzenie pliku Genesis
Plik Genesis zawiera właściwości, które definiują Blockchain. Plik Genesis jest punktem początkowym Blockchain, dlatego konieczne jest utworzenie pliku Genesis, aby utworzyć Blockchain. Teraz stwórzmy Genesisplik.
Najpierw utwórz plik o nazwie genesis.json
$ nano genesis.json
A teraz skopiuj i wklej następujący kod w tym pliku:
{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'trudne': '400', 'gasLimit': ' 2000000 ',' przydziel ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {'00000000'} 1200} 1200}
Uwaga: W powyższym kodzie zamień adres pod przydzielić z adresami kont utworzonych w poprzednim kroku.
Zapisz go i wyjdź.
Pozwólcie, że pokrótce wyjaśnię zawartość pliku Genesis:
chainId - To jest numer identyfikacyjny łańcucha, który służy do rozróżnienia między łańcuchami bloków
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - te właściwości są związane z rozwidlaniem łańcucha i wersjonowaniem. Nie potrzebujemy ich w naszym samouczku, więc ustawmy je na 0.
trudność - Ta liczba decyduje o tym, jak trudne będą kopanie bloków. W przypadku sieci prywatnych dobrze jest ustawić niższą liczbę, ponieważ umożliwia to szybkie wydobywanie bloków, co skutkuje szybkimi transakcjami.
gasLimit - Ta liczba to całkowita ilość gazu, jaką można zużyć w każdym bloku. Nie chcemy, aby nasza sieć osiągnęła limit, więc ustawiliśmy ten wysoki poziom.
przydzielić - Ta część służy do przydzielania eterów do już utworzonych kont.
Plik Genesis jest gotowy. Nadszedł czas, aby rozpocząć Blockchain.
Tworzenie wystąpienia katalogu danych
Przed uruchomieniem Blockchain musimy utworzyć instancję katalogu danych. Katalog danych to katalog, w którym przechowywane są dane związane z Blockchain. Aby utworzyć wystąpienie katalogu danych, uruchom następujące polecenie:
$ geth --datadir ./myDataDir init ./genesis.json
Po pomyślnym utworzeniu instancji powinieneś zobaczyć następujące dane wyjściowe:
Po utworzeniu wystąpienia Data Directory możemy teraz uruchomić Blockchain.
Uruchomienie prywatnego łańcucha blokowego Ethereum
Aby uruchomić Blockchain, uruchom następujące polecenie:
$ geth --datadir ./myDataDir --networkid 1114 console 2 >> Eth.log
Gotowe! Twój prywatny Ethereum Blockchain już działa.
W powyższym poleceniu wysyłamy wszystkie logi w osobnym pliku o nazwie Eth.log . Geth automatycznie utworzy nowy plik, jeśli nie zostanie znaleziony.
Wynik tego kodu powinien wyglądać mniej więcej tak:
Teraz weszliśmy do geth konsola gdzie możemy uruchamiać polecenia dla naszego Blockchain.
Czytanie dzienników
W poprzedniej sekcji wspomniałem, że przechowujemy logi w innym pliku. W tej sekcji powiem ci, jak czytać logi z tego pliku.
Dzienniki będziemy odczytywać z oddzielnego terminala, więc najpierw otwórzmy nowy terminal. Pierwszy,przełącz się na private-ethereum katalog, a następnie uruchom następujące polecenie, aby odczytać dzienniki:
$ tail -f Eth.log
Możesz teraz zobaczyć dzienniki w terminalu. Te dzienniki są dynamicznie aktualizowane za każdym razem, gdy w łańcuchu blokowym występuje aktywność.
Importowanie kont do sieci prywatnej
Być może pamiętasz, że stworzyliśmy dwa konta do dokonywania transakcji. Jednak nie dodaliśmy tych kont do naszej sieci. Tak więc w tej sekcji samouczka sieci prywatnej Ethereum powiem ci, jak zaimportować konta.
Kiedy tworzymy konto, wszystkie szczegóły konta są przechowywane w pliku UTC plik w katalogu wymienionym podczas tworzenia konta (ścieżka: ./datadir/keystore ). Aby zaimportować konta, musimy skopiować te pliki i wkleić w keystore katalogu w katalogu danych(ścieżka: ./myDataDir/keystore )
To wszystko! Konta są importowane. Czy to nie jest proste? Aby zweryfikować import, uruchomimy następujące polecenie w geth konsola.
> et. konta
Spowoduje to wyświetlenie listy wszystkich dostępnych kont.
Aby sprawdzić saldo tych kont, użyjemy następującego polecenia:
> web3.fromWei (eth.getBalance (), 'ether')
Jesteśmy gotowi na wszystko, co potrzebne do zawarcia transakcji. Po co czekać? Zróbmy to!
Dokonywanie transakcji
W tym samouczku dotyczącym sieci prywatnej Ethereum wyślemy kilka eterówz jednego konta na drugie.
Składnia wysyłania eterów jest następująca:
> eth.sendTransaction ({from: ”address”, to: ”address”, value: web3.toWei (amount, 'ether')})
Wyślemy 1000 eterów z konta 1 na konto 2 za pomocą następującego polecenia:
> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], wartość: web3.toWei (1000, 'ether')})
Nie zadziałało? Nie martw się. Dla mnie też nie działa. Dzieje się tak, ponieważ konto jest domyślnie zablokowane i nie zezwala na transakcje.
Najpierw musimy więc odblokować konto nadawcy. Pamiętasz hasło użyte podczas tworzenia konta? Cóż, musisz, ponieważ będziesz musiał tego użyć do odblokowania konta. Konto odblokujemy za pomocą następującego polecenia:
personal.unlockAccount (eth.accounts [0], „”)
Teraz wyślemy eteryz powodzeniem:
> eth.sendTransaction ({from: eth.accounts [0], to: eth.accounts [1], wartość: web3.toWei (1000, 'ether')})
Powinno to zwrócić identyfikator transakcji.
Gotowe! Udało Ci się dokonać transakcji!
Aby zweryfikować transakcję, sprawdźmy saldo na obu kontach.
> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177'), 'ether')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca'), 'ether')
Yay! Widzimy, że 1000 eterówzostały wysłane z jednego konta na drugie!
Gratulacje! Utworzyłeś prywatną sieć Ethereum i dokonałeś transakcji. Mam nadzieję, że ten samouczek dotyczący sieci prywatnej Ethereum był pouczający i pomógł ci zrozumieć sieć prywatną Ethereum. Teraz idź dalej i spróbuj eksperymentować z nowo utworzoną siecią prywatną.
Masz do nas pytanie? Proszę opublikuj to na a my skontaktujemy się z Tobą.
co to jest metoda javascript
Jeśli chcesz nauczyć się Blockchain i zbudować karierę w technologiach Blockchain, sprawdź nasze który obejmuje szkolenie na żywo prowadzone przez instruktora i rzeczywiste doświadczenie projektowe. To szkolenie pomoże ci w wyczerpujący sposób zrozumieć, czym jest Blockchain i pomoże ci osiągnąć mistrzostwo w tym temacie.