reklama - zainteresowany?

Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych - Helion

Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych
Autor: Andreas M. Antonopoulos, Gavin Wood
Tytuł oryginału: Mastering Ethereum: Building Smart Contracts and Dapps
ISBN: 978-83-283-5574-3
okładka: miękka
Data wydania: 2019-05-01
Księgarnia: Helion

Cena książki: 55,30 zł (poprzednio: 79,00 zł)
Oszczędzasz: 30% (-23,70 zł)

Dodaj do koszyka Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych

Dodaj do koszyka Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych

 

Osoby które kupowały "Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych", wybierały także:

  • Windows Media Center. Domowe centrum rozrywki
  • Ruby on Rails. Ćwiczenia
  • DevOps w praktyce. Kurs video. Jenkins, Ansible, Terraform i Docker
  • Przywództwo w Å›wiecie VUCA. Jak być skutecznym liderem w niepewnym Å›rodowisku
  • Scrum. O zwinnym zarzÄ…dzaniu projektami. Wydanie II rozszerzone

Dodaj do koszyka Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych

Spis treści

Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych -- spis treści


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

Dodaj do koszyka Ethereum dla zaawansowanych. Tworzenie inteligentnych kontraktów i aplikacji zdecentralizowanych

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.