ethereum-dla-zaawansowanych.-tworzenie-inteligentnych-kontraktow-i-aplikacji-zdecentralizowanych pełna wersja.mobi

(15301 KB) Pobierz
Spis treści
Przedmowa ................................................................................................................15
Krótki słownik ........................................................................................................... 25
1. Czym jest Ethereum? .................................................................................................37
Porównanie do Bitcoina
Komponenty łańcucha bloków
Narodziny Ethereum
Cztery wersje w rozwoju Ethereum
Ethereum — łańcuch bloków o ogólnym przeznaczeniu
Komponenty Ethereum
Lektura dodatkowa
Ethereum i kompletność w sensie Turinga
Kompletność w sensie Turinga jako „pożądana cecha”
Skutki kompletności w sensie Turinga
Od łańcuchów bloków ogólnego użytku do aplikacji DApp
Trzecia era internetu
Kultura rozwoju Ethereum
Dlaczego warto poznać Ethereum?
Czego nauczysz się dzięki tej książce?
37
38
39
40
41
42
43
43
44
44
45
45
46
47
47
2. Podstawy Ethereum ................................................................................................. 49
Jednostki waluty ether
Wybieranie portfela Ethereum
Kontrola i odpowiedzialność
Rozpoczynanie pracy z portfelem MetaMask
Tworzenie portfela
Zmienianie sieci
49
50
51
52
53
55
5
Kup książkę
Poleć książkę
Zdobywanie testowych etherów
Wysyłanie etherów z portfela MetaMask
Przeglądanie historii transakcji dla adresu
Wprowadzenie do światowego komputera
Konta EOA i konta kontraktów
Prosty kontrakt — kran z testowymi etherami
Kompilowanie kontraktu Faucet
Tworzenie kontraktu w łańcuchu bloków
Interakcja z kontraktem
Wyświetlanie adresu kontraktu w eksploratorze bloków
Zasilanie kontraktu
Wycofywanie środków z kontraktu
Podsumowanie
56
58
59
60
61
61
64
66
67
68
68
69
72
3. Klienty Ethereum ...................................................................................................... 73
Sieci Ethereum
Czy powinieneś uruchamiać pełny węzeł?
Wady i zalety pełnych węzłów
Wady i zalety publicznych sieci testowych
Wady i zalety lokalnego symulowania pracy łańcuchów bloków
Uruchamianie klienta Ethereum
Wymagania sprzętowe związane z pełnym węzłem
Wymagania programowe dotyczące budowania i uruchamiania klientów (węzłów)
Klient Parity
Klient Go-Ethereum (Geth)
Pierwsza synchronizacja łańcuchów bloków opartych na Ethereum
Uruchamianie klienta Geth lub Parity
Interfejs JSON-RPC
Zdalne klienty Ethereum
Portfele mobilne (na smartfony)
Portfele działające w przeglądarkach
Podsumowanie
74
74
75
75
76
77
77
78
79
80
82
83
83
85
86
86
88
4. Kryptografia .............................................................................................................. 89
Klucze i adresy
Kryptografia klucza publicznego a kryptowaluty
Klucze prywatne
Generowanie klucza prywatnego na podstawie liczby losowej
89
90
92
92
6
Spis treści
Poleć książkę
Kup książkę
Klucze publiczne
Kryptografia krzywej eliptycznej
Operacje arytmetyczne na krzywej eliptycznej
Generowanie klucza publicznego
Biblioteki do pracy z krzywą eliptyczną
Kryptograficzne funkcje skrótu
Kryptograficzna funkcja skrótu w Ethereum — Keccak-256
Z której funkcji skrótu korzystasz?
Adresy Ethereum
Formaty adresów Ethereum
Protokół ICAP
Kodowanie szesnastkowe z sumami kontrolnymi
opartymi na wielkości liter (EIP-55)
Podsumowanie
94
95
97
98
99
99
101
101
102
102
103
104
106
5. Portfele .................................................................................................................... 107
Przegląd technologii używanych w portfelach
Portfele niedeterministyczne (losowe)
Portfele deterministyczne (z ziarnem)
Portfele HD (BIP-32 i BIP-44)
Ziarna i kody mnemoniczne (BIP-39)
Zalecane praktyki dotyczące portfeli
Kody mnemoniczne (BIP-39)
Tworzenie portfela HD na podstawie ziarna
Portfele HD (BIP-32) i ścieżki (BIP-43/44)
Podsumowanie
107
108
110
110
110
112
112
118
119
123
6. Transakcje ................................................................................................................125
Struktura transakcji
Wartość nonce w transakcji
Śledzenie wartości nonce
Luki w wartościach nonce, powtarzające się wartości nonce i zatwierdzanie
Współbieżność, źródło transakcji i wartości nonce
Paliwo dla transakcji
Odbiorca transakcji
Wartość i dane transakcji
Przekazywanie środków do kont EOA i kontraktów
Przekazywanie danych do kont EOA lub kontraktów
125
126
127
129
130
131
132
133
135
135
Spis treści
Kup książkę
7
Poleć książkę
Specjalne transakcje — tworzenie kontraktu
Podpisy cyfrowe
Algorytm ECDSA
Jak działają podpisy cyfrowe?
Sprawdzanie poprawności podpisu
Obliczenia w algorytmie ECDSA
Podpisywanie transakcji w praktyce
Tworzenie i podpisywanie nieprzetworzonych transakcji
Tworzenie nieprzetworzonych transakcji zgodnych z EIP-155
Przedrostek w podpisie (v) i odzyskiwanie klucza publicznego
Oddzielanie podpisywania od przesyłania (podpisywanie w trybie offline)
Rozsyłanie transakcji
Rejestrowanie danych w łańcuchu bloków
Transakcje z wieloma podpisami
Podsumowanie
137
139
139
140
140
141
142
143
143
144
145
147
147
148
148
7. Inteligentne kontrakty i język Solidity ...................................................................149
Czym jest inteligentny kontrakt?
Cykl życia inteligentnego kontraktu
Wprowadzenie do wysokopoziomowych języków w Ethereum
Tworzenie inteligentnego kontraktu za pomocą Solidity
Wybieranie wersji języka Solidity
Pobieranie i instalowanie Solidity
Środowisko programistyczne
Pisanie prostego programu w języku Solidity
Kompilowanie przy użyciu kompilatora Solidity (solc)
Interfejs ABI kontraktów w Ethereum
Wybieranie kompilatora Solidity i wersji języka
Programowanie w języku Solidity
Typy danych
Wbudowane zmienne globalne i funkcje
Definicja kontraktu
Funkcje
Konstruktor kontraktu i polecenie selfdestruct
Dodawanie konstruktora i polecenia selfdestruct do kontraktu Faucet
Modyfikatory funkcji
Dziedziczenie kontraktów
149
150
151
153
153
154
154
155
155
155
156
157
157
159
161
162
163
164
165
166
8
Spis treści
Poleć książkę
Kup książkę
Zgłoś jeśli naruszono regulamin