wprowadź własne kryteria wyszukiwania książek: (jak szukać?)
Twój koszyk:   0 zł   zamówienie wysyłkowe >>>
Strona główna > opis książki
English version
Książki:

polskie
podział tematyczny
 
anglojęzyczne
podział tematyczny
 
Newsletter:

Zamów informacje o nowościach z wybranego tematu
 
Informacje:

o księgarni

koszty wysyłki

kontakt

Cookies na stronie

 
Szukasz podpowiedzi?
Nie znasz tytułu?
Pomożemy Ci, napisz!


Podaj adres e-mail:


możesz też zadzwonić
+48 512 994 090

ETHEREUM DLA ZAAWANSOWANYCH TWORZENIE INTELIGENTNYCH KONTRAKTÓW I APLIKACJI ZDECENTRALIZOWANYCH


ANTONOPOULOS A.M. WOOD G.

wydawnictwo: HELION, 2019, wydanie I

cena netto: 82.95 Twoja cena  78,80 zł + 5% vat - dodaj do koszyka

Ethereum dla zaawansowanych

Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych

Ethereum to platforma służąca do obsługi kryptowalut. Została zaprojektowana z zachowaniem wysokich standardów bezpieczeństwa i transparentności. Umożliwia uruchamianie zdecentralizowanych aplikacji (DApp) i inteligentnych kontraktów, które nie mają scentralizowanej kontroli ani pojedynczego punktu podatności na awarie i są zintegrowane z siecią obsługi płatności oraz operują na otwartym łańcuchu bloków. Ethereum cieszy się dużym zainteresowaniem takich organizacji jak IBM, Microsoft, NASDAQ, które coraz bardziej angażują się w korzystanie z tej platformy.

Ta książka jest praktycznym poradnikiem i encyklopedycznym źródłem wiedzy o Ethereum przeznaczonym dla programistów, którzy chcą przyswoić praktyczną wiedzę o łańcuchach bloków oraz tworzeniu inteligentnych kontraktów i zdecentralizowanych aplikacji - DApp. Znalazły się tu zarówno podstawowe informacje, jak i szereg zaawansowanych zagadnień związanych z Ethereum. Opisano, w jaki sposób tworzy się w nim transakcje, przedstawiono kwestie związane z kluczem publicznym, skrótami i podpisami cyfrowymi. Poszczególne zagadnienia, a także najlepsze praktyki, wzorce projektowe i antywzorce z obszaru bezpieczeństwa uzupełniono starannie opracowanymi przykładami kodu.

W tej książce między innymi:

uruchamianie klienta Ethereum
korzystanie z portfeli cyfrowych
interakcje z klientami Ethereum za pomocą wywołań RPC
tokeny reprezentujące aktywa, udziały czy głosy
budowa zdecentralizowanych aplikacji z użyciem komponentów w modelu P2P
Ethereum: oto nowy wymiar innowacji w programowaniu!

Andreas M. Antonopoulos jest niekwestionowanym autorytetem w świecie bitcoina i kryptowalut. Równocześnie jest cenionym specjalistą w zakresie technologii sieci, bezpieczeństwa, centrów danych i przetwarzania w chmurze. Doradza kierownictwu wielu firm z listy Fortune 500. Został również uznany za osobę o dużych zdolnościach dydaktycznych: wygłasza prelekcje, jest cenionym nauczycielem akademickim, chętnie zabiera głos na konferencjach poświęconych nowoczesnym technologiom, przede wszystkim bezpieczeństwu.

Dr Gavin Wood jest programistą, technologiem, wykładowcą i projektantem gier. Jest też architektem Etherneum. Zaprojektował język kontraktów Solidity i napisał specyfikację typu Yellow Paper — pierwszą formalną specyfikację protokołu łańcucha bloków.

Przedmowa 15

Krótki słownik 25

1. Czym jest Ethereum? 37

Porównanie do Bitcoina 37
Komponenty łańcucha bloków 38
Narodziny Ethereum 39
Cztery wersje w rozwoju Ethereum 40
Ethereum - łańcuch bloków o ogólnym przeznaczeniu 41
Komponenty Ethereum 42
Lektura dodatkowa 43
Ethereum i kompletność w sensie Turinga 43
Kompletność w sensie Turinga jako "pożądana cecha" 44
Skutki kompletności w sensie Turinga 44
Od łańcuchów bloków ogólnego użytku do aplikacji DApp 45
Trzecia era internetu 45
Kultura rozwoju Ethereum 46
Dlaczego warto poznać Ethereum? 47
Czego nauczysz się dzięki tej książce? 47

2. Podstawy Ethereum 49

Jednostki waluty ether 49
Wybieranie portfela Ethereum 50
Kontrola i odpowiedzialność 51
Rozpoczynanie pracy z portfelem MetaMask 52
Tworzenie portfela 53
Zmienianie sieci 55
Zdobywanie testowych etherów 56
Wysyłanie etherów z portfela MetaMask 58
Przeglądanie historii transakcji dla adresu 59
Wprowadzenie do światowego komputera 60
Konta EOA i konta kontraktów 61
Prosty kontrakt - kran z testowymi etherami 61
Kompilowanie kontraktu Faucet 64
Tworzenie kontraktu w łańcuchu bloków 66
Interakcja z kontraktem 67
Wyświetlanie adresu kontraktu w eksploratorze bloków 68
Zasilanie kontraktu 68
Wycofywanie środków z kontraktu 69
Podsumowanie 72

3. Klienty Ethereum 73

Sieci Ethereum 74
Czy powinieneś uruchamiać pełny węzeł? 74
Wady i zalety pełnych węzłów 75
Wady i zalety publicznych sieci testowych 75
Wady i zalety lokalnego symulowania pracy łańcuchów bloków 76
Uruchamianie klienta Ethereum 77
Wymagania sprzętowe związane z pełnym węzłem 77
Wymagania programowe dotyczące budowania i uruchamiania klientów (węzłów) 78
Klient Parity 79
Klient Go-Ethereum (Geth) 80
Pierwsza synchronizacja łańcuchów bloków opartych na Ethereum 82
Uruchamianie klienta Geth lub Parity 83
Interfejs JSON-RPC 83
Zdalne klienty Ethereum 85
Portfele mobilne (na smartfony) 86
Portfele działające w przeglądarkach 86
Podsumowanie 88

4. Kryptografia 89

Klucze i adresy 89
Kryptografia klucza publicznego a kryptowaluty 90
Klucze prywatne 92
Generowanie klucza prywatnego na podstawie liczby losowej 92
Klucze publiczne 94
Kryptografia krzywej eliptycznej 95
Operacje arytmetyczne na krzywej eliptycznej 97
Generowanie klucza publicznego 98
Biblioteki do pracy z krzywą eliptyczną 99
Kryptograficzne funkcje skrótu 99
Kryptograficzna funkcja skrótu w Ethereum - Keccak-256 101
Z której funkcji skrótu korzystasz? 101
Adresy Ethereum 102
Formaty adresów Ethereum 102
Protokół ICAP 103
Kodowanie szesnastkowe z sumami kontrolnymi opartymi na wielkości liter (EIP-55) 104
Podsumowanie 106

5. Portfele 107

Przegląd technologii używanych w portfelach 107
Portfele niedeterministyczne (losowe) 108
Portfele deterministyczne (z ziarnem) 110
Portfele HD (BIP-32 i BIP-44) 110
Ziarna i kody mnemoniczne (BIP-39) 110
Zalecane praktyki dotyczące portfeli 112
Kody mnemoniczne (BIP-39) 112
Tworzenie portfela HD na podstawie ziarna 118
Portfele HD (BIP-32) i ścieżki (BIP-43/44) 119
Podsumowanie 123

6. Transakcje 125

Struktura transakcji 125
Wartość nonce w transakcji 126
Śledzenie wartości nonce 127
Luki w wartościach nonce, powtarzające się wartości nonce i zatwierdzanie 129
Współbieżność, źródło transakcji i wartości nonce 130
Paliwo dla transakcji 131
Odbiorca transakcji 132
Wartość i dane transakcji 133
Przekazywanie środków do kont EOA i kontraktów 135
Przekazywanie danych do kont EOA lub kontraktów 135
Specjalne transakcje - tworzenie kontraktu 137
Podpisy cyfrowe 139
Algorytm ECDSA 139
Jak działają podpisy cyfrowe? 140
Sprawdzanie poprawności podpisu 140
Obliczenia w algorytmie ECDSA 141
Podpisywanie transakcji w praktyce 142
Tworzenie i podpisywanie nieprzetworzonych transakcji 143
Tworzenie nieprzetworzonych transakcji zgodnych z EIP-155 143
Przedrostek w podpisie (v) i odzyskiwanie klucza publicznego 144
Oddzielanie podpisywania od przesyłania (podpisywanie w trybie offline) 145
Rozsyłanie transakcji 147
Rejestrowanie danych w łańcuchu bloków 147
Transakcje z wieloma podpisami 148
Podsumowanie 148

7. Inteligentne kontrakty i język Solidity 149

Czym jest inteligentny kontrakt? 149
Cykl życia inteligentnego kontraktu 150
Wprowadzenie do wysokopoziomowych języków w Ethereum 151
Tworzenie inteligentnego kontraktu za pomocą Solidity 153
Wybieranie wersji języka Solidity 153
Pobieranie i instalowanie Solidity 154
Środowisko programistyczne 154
Pisanie prostego programu w języku Solidity 155
Kompilowanie przy użyciu kompilatora Solidity (solc) 155
Interfejs ABI kontraktów w Ethereum 155
Wybieranie kompilatora Solidity i wersji języka 156
Programowanie w języku Solidity 157
Typy danych 157
Wbudowane zmienne globalne i funkcje 159
Definicja kontraktu 161
Funkcje 162
Konstruktor kontraktu i polecenie selfdestruct 163
Dodawanie konstruktora i polecenia selfdestruct do kontraktu Faucet 164
Modyfikatory funkcji 165
Dziedziczenie kontraktów 166
Obsługa błędów (assert, require i revert) 168
Zdarzenia 169
Wywoływanie innych kontraktów (polecenia send, call, callcode i delegatecall) 172
Kwestie związane z paliwem 176
Unikanie tablic o dynamicznie określanej wielkości 177
Unikanie wywołań innych kontraktów 177
Szacowanie kosztów paliwa 177
Podsumowanie 178

8. Inteligentne kontrakty i język Vyper 179

Luki a Vyper 179
Porównanie z Solidity 180
Modyfikatory 180
Dziedziczenie klas 181
Wewnątrzwierszowe stosowanie asemblera 181
Przeciążanie funkcji 182
Rzutowanie typów zmiennych 182
Warunki wstępne i końcowe 183
Dekoratory 184
Kolejność funkcji i zmiennych 184
Kompilacja 185
Ochrona przed błędami przepełnienia na poziomie kompilatora 186
Odczyt i zapis danych 186
Podsumowanie 187

9. Bezpieczeństwo inteligentnych kontraktów 189

Zalecane praktyki z zakresu bezpieczeństwa 189
Zagrożenia z obszaru bezpieczeństwa i antywzorce 190
Wielobieżność 190
Praktyczny przykład - The DAO 194
Przepełnienie i niedopełnienie arytmetyczne 194
Przykłady praktyczne - PoWHC i przepełnienie przy transferze zbiorczym (CVE-2018-10299) 198
Nieoczekiwane ethery 198
Więcej przykładów 202
DELEGATECALL 202
Praktyczny przykład - portfel Parity z wielopodpisem (drugi atak) 206
Domyślne poziomy widoczności 207
Praktyczny przykład - portfel Parity z wielopodpisem (pierwszy atak) 208
Złudzenie losowości 209
Praktyczny przykład - kontrakty z generatorami liczb pseudolosowych 210
Korzystanie z zewnętrznych kontraktów 210
Praktyczny przykład - przynęta i wielobieżność 214
Atak związany z krótkimi adresami i parametrami 215
Niesprawdzanie wartości zwracanych przez funkcję call 217
Przykład praktyczny - kontrakty Etherpot i King of the Ether 218
Sytuacje wyścigu i front running 219
Praktyczne przykłady - ERC20 i Bancor 221
Ataki DoS 221
Praktyczny przykład - GovernMental 223
Manipulowanie znacznikiem czasu bloku 224
Praktyczny przykład - GovernMental 225
Ostrożnie z konstruktorami 225
Praktyczny przykład - Rubixi 226
Niezainicjowane wskaźniki do pamięci trwałej 226
Praktyczne przykłady - przynęty OpenAddressLottery i CryptoRoulette 228
Liczby zmiennoprzecinkowe i precyzja 229
Praktyczny przykład - Ethstick 230
Uwierzytelnianie z użyciem zmiennej tx.origin 230
Kontrakty bibliotek 232
Podsumowanie 233

10. Tokeny 235

W jaki sposób tokeny są używane? 235
Tokeny i wymienność 237
Ryzyko związane z drugą stroną transakcji 237
Tokeny i nieodłączność (wewnętrzność) 237
Używanie tokenów - narzędzia czy aktywa 238
To kaczka! 239
Tokeny narzędziowe - komu są potrzebne? 239
Tokeny w Ethereum 240
Standard ERC20 241
Tworzenie własnego tokenu ERC20 244
Problemy z tokenami ERC20 254
ERC223 - proponowany standard interfejsu kontraktów tokenów 255
ERC777 - proponowany standard interfejsu kontraktów tokenów 256
ERC721 - standard niewymiennych tokenów 258
Stosowanie standardów związanych z tokenami 260
Czym są standardy dotyczące tokenów? Do czego służą? 260
Czy powinieneś stosować opisane standardy? 260
Bezpieczeństwo dzięki dojrzałości 261
Rozszerzenia standardów dotyczących interfejsów tokenów 261
Tokeny i emisje ICO 262
Podsumowanie 263

11. Wyrocznie 265

Dlaczego potrzebne są wyrocznie? 265
Przypadki użycia wyroczni i przykłady 266
Wzorce projektowe dotyczące wyroczni 267
Uwierzytelnianie danych 270
Wyrocznie obliczeniowe 271
Zdecentralizowane wyrocznie 272
Interfejsy klientów wyroczni w języku Solidity 273
Podsumowanie 277

12. Zdecentralizowane aplikacje (DApp) 279

Czym jest aplikacja DApp? 280
Back-end (inteligentny kontrakt) 281
Front-end (internetowy interfejs użytkownika) 281
Przechowywanie danych 282
Zdecentralizowane protokoły przekazywania komunikatów 282
Prosta przykładowa aplikacja DApp - Auction 283
Aplikacja Auction - inteligentne kontrakty back-endu 284
Aplikacja Auction - front-endowy interfejs użytkownika 287
Dalsze decentralizowanie aplikacji Auction 288
Zapisywanie aplikacji Auction w systemie Swarm 289
Przygotowywanie systemu Swarm 289
Przesyłanie plików do systemu Swarm 290
Usługa Ethereum Name Service (ENS) 292
Historia usługi ENS 292
Specyfikacja usługi ENS 292
Dolna warstwa - właściciele nazw i resolwery 293
Warstwa pośrednia - węzły .eth 295
Najwyższa warstwa - tokeny deed 296
Rejestrowanie nazwy 297
Zarządzanie nazwą w usłudze ENS 300
Resolwery w usłudze ENS 301
Tłumaczenie nazwy na skrót w systemie Swarm (treść) 302
Od tradycyjnych aplikacji do aplikacji DApp 303
Podsumowanie 304

13. Maszyna wirtualna Ethereum 305

Czym jest maszyna EVM? 305
Porównanie z istniejącymi technologiami 307
Zbiór instrukcji maszyny EVM (operacje w kodzie bajtowym) 307
Stan w Ethereum 310
Kompilowanie kodu w języku Solidity do kodu bajtowego maszyny EVM 311
Kod do instalowania kontraktu 314
Dezasemblacja kodu bajtowego 315
Kompletność w sensie Turinga a paliwo 319
Paliwo 320
Obliczanie zużycia paliwa w trakcie wykonywania kodu 320
Uwagi związane z obliczaniem zużycia paliwa 321
Zużycie paliwa a cena paliwa 321
Limit paliwa dla bloku 322
Podsumowanie 323

14. Konsensus 325

Konsensus oparty na dowodach pracy 326
Osiąganie konsensusu na podstawie dowodów stawki 326
Ethash - algorytm dowodów pracy w Ethereum 327
Casper - algorytm dowodów stawki dla Ethereum 328
Reguły osiągania konsensusu 329
Kontrowersje i konkurencja 329
Podsumowanie 330'

A. Historia forków w Ethereum 331

B. Standardy używane w Ethereum 339

C. Kody operacji i zużycie paliwa w maszynie EVM w Ethereum 347

D. Narzędzia programistyczne, platformy i biblioteki 355

E. Biblioteka web3.js - samouczek 373

F. Krótkie odsyłacze 377

Skorowidz 379

392 strony, Format: 17.0x24.0cm, oprawa miękka


Po otrzymaniu zamówienia poinformujemy pocztą e-mail lub telefonicznie,
czy wybrany tytuł polskojęzyczny lub anglojęzyczny jest aktualnie na półce księgarni.

 
Wszelkie prawa zastrzeżone PROPRESS sp. z o.o. www.bankowa.pl 2000-2022