SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Po co żyjemy? Dokąd zmierzamy?
Blockchain & Krypto Ekosystem
JavaScript - Rzeczy praktyczne
Historia, podstawy, dobre praktyki
● Interpretowany język wysokiego poziomu używany do …
Dla początkujących - dobrze wiedzieć:
● ECMAScript 6+, Promises, “Callback Hell”
● MDN (Mozilla Developer Network)
● Books: You Don’t Know JS ( @YDKJS)
● JavaScript For Cats
JavaScript - Rzeczy praktyczne
Rzeczy kosmiczne:
● ethereum/web3.js - Ethereum JavaScript API
● Generic JSON RPC
Rzeczy przydatne:
● MetaMask - Jak ogarnąć komunikację
z siecią Ethereum w JS (testową / produkcyjną)?
● Infura Network
JavaScript - Rzeczy praktyczne
Node.js - Jak działa i czemu jest tak popularny?
● Środowisko uruchomieniowe JavaScript
● Wykorzystuje architekturę zdarzeń i obsługuje asynchroniczne I/O (Input/Output) - pamięć, sieć, itp.
● Procesuje wszystkie zdarzenia w pętli zwanej “event loop”
● Posiada wbudowany silnik V8, kompilujący kod do kodu maszynowego, a nie interpretuje go w czasie
rzeczywistym.
● Biblioteka paczek NPM
Node.js - Jak działa i czemu jest tak popularny?
Github Octoverse - 15 najpopularniejszych języków (według otwartych PR)
Express.js - Minimalistyczny framework
RESTful API
● Nie posiada rozbudowanych zależności
● Umożliwia w miarę szybkie prototypowanie lub pisanie aplikacji
● Dzięki wykorzystaniu innych bibliotek posiada bardzo duże możliwości
● Dobrze nadaje się do pisania aplikacji RESTowych
● Nadaje się do pisania aplikacji w architekturze mikroserwisów
Express.js - Minimalistyczny framework
Express
React - Czym jest i jak go używać?
● Biblioteka do budowania interfejsów użytkownika
● Stworzona przez Facebook’a
● Używany głównie z Redux, MobX
React - Czym jest i jak go używać?
Po przerwie… część 2 :)
Kryptografia - Co potrzebujemy o niej wiedzieć
● Kryptografia symetryczna, asymetryczna
● Klucz publiczny, klucz prywatny
● Hash => sha256(‘spacewarshack’) =>
d6bec73d30e22556e6c37a05bf91f9b7d5431306184e8ac745a333bfe73d5722
● Czym jest mój portfel w sieci kryptowaluty?
Kryptografia - Co potrzebujemy o niej wiedzieć
Blockchain - Co to jest?!
Do czego jest nam potrzebny, czym jest i jak działa?
● Rozproszony rejestr danych posiadający / lub nieposiadający bazę monetarną
● Niemodyfikowalny łańcuch bloków zawierających dane o transakcjach
● Zbudowana jako rozproszona sieć peer-to-peer (P2P)
● Bitcoin Whitepaper - https://bitcoin.org/bitcoin.pdf
Blockchain - Co to jest?!
Właściwości sieci blockchain
● Publiczny / Z ograniczonym dostępem / Prywatny
● Rozproszony / Zdecentralizowany / Scentralizowany
Typy sieci blockchain
Proof of Work - czym jest, jak działa?!
● Algorytm dowodzący wykonanie pracy
● Polega na znalezieniu nonce, przy pomocy którego można znaleźć:
H(x) < target
● H(x) => hash(version, hashPrevBlock, hashMerkleRoot, timestamp, Nonce)
● Polega na znalezieniu nonce
Proof of Work
echo -n spacewarshack | sha256sum
d6bec73d30e22556e6c37a05bf91f9b7d5431306184e8ac745a333bfe73d5722 -
nonce=0; while true; do echo -n "spacewarshack"$nonce | sha256sum | grep -q '^000' && echo
$nonce $(echo -n "spacewarshack"$nonce | sha256sum); ((nonce++)); done
6244 000faeb1158ede5e8ca0640068237906e8b9670162b39fb3e8fbc8cc7eba30ab -
6925 0004aeb63afd8ad712a0e3c7516bbb6ae616652bbb373d08694a4ad8607a5bc7 -
11491 000acc9de18c2c99c017286051f90b1cebc24be444fb6c989af49dfe45f3f5d4 -
'^00000'
1108270 00000a9538d37700874d1e3b10c90824d4b6028ae2fa292cf7f1e9855fc19909 -
Let’s try do this!
Network propagation graph
Network propagation graph
Network propagation graph
Network propagation graph
Network propagation graph
● Proof of Stake
○ Wymaga posiadania środków na specjalnym koncie
○ W przeciwieństwie do PoW nie zużywa prądu
○ Powoduje zagrożenie, że bogaci będą się bogacić
○ Konto które ma odpowiednią ilość środków odpowiada za “pieczętowanie” bloku
● Proof of Authority
○ Również nie zużywa tyle prądu
○ Wprowadza definicję “Notariusza”, który decyduje o transakcjach i “pieczętuje” bloki
Inne mechanizmy potwierdzania bloków
Ethereum
Kryptowaluta czy jednak platforma programistyczna?
● Działa podobnie jak Bitcoin
● Umożliwia stworzenie rozproszonej aplikacji (Smart Kontrakty)
● Środowiskiem wykonującym operacje jest Ethereum Virtual Machine - EVM
● Wykonanie transakcji - zmiany danych (modyfikacji) kosztuje prowizję
● Prowizja jest w wyliczana w jednostce GAS
● Najpopularniejszym językiem pisania Smart Kontraktów jest Solidity
Ethereum
Sieć Ethereum - jak to działa?
W sumie to nie tylko Ethereum… ;)
● Zapomnij o natychmiastowym otrzymaniu wyniku z sieci blockchainowych typu PoW
● Zapomnij o szybkich bugfixach na kontrakcie produkcyjnym
● Zapomnij o wgrywaniu parę razy tego samego
● Zapomnij o migracji danych ze starego kontraktu, do nowego
● Pamiętaj o kosztach wykorzystania sieci
● Pamiętaj o ilości potwierdzeń, zanim uznasz, że sieć wykopała Twoją transakcję
Zmiana podejścia do życia :)
Smart Kontrakty
pragma solidity 0.4.25;
contract Hello {
string _text;
constructor (string text) public {
_text = text;
}
function showText() public view returns(string) {
return _text;
}
}
http://remix.ethereum.org/#optimize=false&version=soljson-v0.4.25+commit.59dbf8f1.js
Kontrakt!
● Kompilator: solc
● !! - Kompilator w JS (npm) jest różny od implementacji w C++
● https://solidity.readthedocs.io/en/v0.4.25/installing-solidity.html
608060405234801561001057600080fd5b506040516102a83803806102a8833981018060405281019080805182019291905050508060009080519060200190610049929190610050565b50506100f5565b8280546001816001161561010002
03166002900490600052602060002090601f016020900481019282601f1061009157805160ff19168380011785556100bf565b828001600101855582156100bf579182015b828111156100be5782518255916020019190600101906100a356
5b5b5090506100cc91906100d0565b5090565b6100f291905b808211156100ee5760008160009055506001016100d6565b5090565b90565b6101a4806101046000396000f300608060405260043610610041576000357c0100000000000000
000000000000000000000000000000000000000000900463ffffffff16806307bc882914610046575b600080fd5b34801561005257600080fd5b5061005b6100d6565b60405180806020018281038252838181518152602001915080519060
20019080838360005b8381101561009b578082015181840152602081019050610080565b50505050905090810190601f1680156100c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b
606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561016e5780601f1061014357610100808354
04028352916020019161016e565b820191906000526020600020905b81548152906001019060200180831161015157829003601f168201915b50505050509050905600a165627a7a723058204eb22775aff7569df2733e0ef12faab79504e5
5a29d366418b63ce8aa89532a10029
Bytecode i kompilator
[{
"inputs": [{"name": "text", "type": "string"}],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}, {
"constant": true,
"inputs": [],
"name": "showText",
"outputs": [{"name": "", "type": "string"}],
"payable": false,
"stateMutability": "view",
"type": "function"
}]
Smart Kontrakt - Application Binary Interface (ABI)
Bitcoin UTXO
Czym się Bitcoin różni od Ethereum?
● Bitcoin ma blok średnio co 10 minut, o stałej wielkości
● Ethereum ma średnio blok co 15 sekund, o zmiennej wielkości
● Ethereum korzysta z “Wallet Balance”, Bitcoin korzysta z UTXO
● Bitcoin posiada HDWallets (Hierarchical Deterministic Wallets)
Różnice pomiędzy Bitcoin a Ethereum
Do zobaczenia na Space Wars Hack - Class #2!
24 września 2018
Piotr Pawlak
Blockchain / dApp Developer at
ppawlakov

Mais conteúdo relacionado

Semelhante a Space Wars Hack - Class #1

Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL versionMaciej Lasyk
 
Blockchain and Cryptocurrency Basics- #43 spotkanie WiT Kraków
Blockchain and Cryptocurrency Basics- #43 spotkanie WiT KrakówBlockchain and Cryptocurrency Basics- #43 spotkanie WiT Kraków
Blockchain and Cryptocurrency Basics- #43 spotkanie WiT KrakówWomen in Technology Poland
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl 3camp
 
[PL] Hyperledger 101 - Tomasz Szymański
[PL] Hyperledger 101 - Tomasz Szymański[PL] Hyperledger 101 - Tomasz Szymański
[PL] Hyperledger 101 - Tomasz SzymańskiTomasz Szymanski
 
Four Slupsk Lectures. III. Blockchain & Bitcoin
Four Slupsk Lectures. III. Blockchain & BitcoinFour Slupsk Lectures. III. Blockchain & Bitcoin
Four Slupsk Lectures. III. Blockchain & Bitcoinsopekmir
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue TeamuPiotr Kaźmierczak
 
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comLeszek Mi?
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?Brainhub
 
Wjug from java to big data
Wjug   from java to big dataWjug   from java to big data
Wjug from java to big dataPiotr Guzik
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PROIDEA
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...jzielinski_pl
 
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...PROIDEA
 

Semelhante a Space Wars Hack - Class #1 (20)

Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
 
Blockchain and Cryptocurrency Basics- #43 spotkanie WiT Kraków
Blockchain and Cryptocurrency Basics- #43 spotkanie WiT KrakówBlockchain and Cryptocurrency Basics- #43 spotkanie WiT Kraków
Blockchain and Cryptocurrency Basics- #43 spotkanie WiT Kraków
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
[PL] Hyperledger 101 - Tomasz Szymański
[PL] Hyperledger 101 - Tomasz Szymański[PL] Hyperledger 101 - Tomasz Szymański
[PL] Hyperledger 101 - Tomasz Szymański
 
Four Slupsk Lectures. III. Blockchain & Bitcoin
Four Slupsk Lectures. III. Blockchain & BitcoinFour Slupsk Lectures. III. Blockchain & Bitcoin
Four Slupsk Lectures. III. Blockchain & Bitcoin
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
[Confidence 2016] Red Team - najlepszy przyjaciel Blue Teamu
 
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
 
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?
 
Wjug from java to big data
Wjug   from java to big dataWjug   from java to big data
Wjug from java to big data
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
Iron Python I Dlr
Iron Python I DlrIron Python I Dlr
Iron Python I Dlr
 
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
PLNOG 4: Krzysztof Góźdź - Od ssh do batuty - czyli jak z administratora stać...
 
Urządzenia intersieci tworzące Internet
Urządzenia intersieci tworzące InternetUrządzenia intersieci tworzące Internet
Urządzenia intersieci tworzące Internet
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
 
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
 

Space Wars Hack - Class #1

  • 1.
  • 2. Po co żyjemy? Dokąd zmierzamy?
  • 4.
  • 5.
  • 6.
  • 7. JavaScript - Rzeczy praktyczne Historia, podstawy, dobre praktyki
  • 8. ● Interpretowany język wysokiego poziomu używany do … Dla początkujących - dobrze wiedzieć: ● ECMAScript 6+, Promises, “Callback Hell” ● MDN (Mozilla Developer Network) ● Books: You Don’t Know JS ( @YDKJS) ● JavaScript For Cats JavaScript - Rzeczy praktyczne
  • 9. Rzeczy kosmiczne: ● ethereum/web3.js - Ethereum JavaScript API ● Generic JSON RPC Rzeczy przydatne: ● MetaMask - Jak ogarnąć komunikację z siecią Ethereum w JS (testową / produkcyjną)? ● Infura Network JavaScript - Rzeczy praktyczne
  • 10. Node.js - Jak działa i czemu jest tak popularny?
  • 11. ● Środowisko uruchomieniowe JavaScript ● Wykorzystuje architekturę zdarzeń i obsługuje asynchroniczne I/O (Input/Output) - pamięć, sieć, itp. ● Procesuje wszystkie zdarzenia w pętli zwanej “event loop” ● Posiada wbudowany silnik V8, kompilujący kod do kodu maszynowego, a nie interpretuje go w czasie rzeczywistym. ● Biblioteka paczek NPM Node.js - Jak działa i czemu jest tak popularny?
  • 12. Github Octoverse - 15 najpopularniejszych języków (według otwartych PR)
  • 13. Express.js - Minimalistyczny framework RESTful API
  • 14. ● Nie posiada rozbudowanych zależności ● Umożliwia w miarę szybkie prototypowanie lub pisanie aplikacji ● Dzięki wykorzystaniu innych bibliotek posiada bardzo duże możliwości ● Dobrze nadaje się do pisania aplikacji RESTowych ● Nadaje się do pisania aplikacji w architekturze mikroserwisów Express.js - Minimalistyczny framework Express
  • 15. React - Czym jest i jak go używać?
  • 16. ● Biblioteka do budowania interfejsów użytkownika ● Stworzona przez Facebook’a ● Używany głównie z Redux, MobX React - Czym jest i jak go używać?
  • 18. Kryptografia - Co potrzebujemy o niej wiedzieć
  • 19. ● Kryptografia symetryczna, asymetryczna ● Klucz publiczny, klucz prywatny ● Hash => sha256(‘spacewarshack’) => d6bec73d30e22556e6c37a05bf91f9b7d5431306184e8ac745a333bfe73d5722 ● Czym jest mój portfel w sieci kryptowaluty? Kryptografia - Co potrzebujemy o niej wiedzieć
  • 20. Blockchain - Co to jest?! Do czego jest nam potrzebny, czym jest i jak działa?
  • 21. ● Rozproszony rejestr danych posiadający / lub nieposiadający bazę monetarną ● Niemodyfikowalny łańcuch bloków zawierających dane o transakcjach ● Zbudowana jako rozproszona sieć peer-to-peer (P2P) ● Bitcoin Whitepaper - https://bitcoin.org/bitcoin.pdf Blockchain - Co to jest?!
  • 23.
  • 24. ● Publiczny / Z ograniczonym dostępem / Prywatny ● Rozproszony / Zdecentralizowany / Scentralizowany Typy sieci blockchain
  • 25.
  • 26. Proof of Work - czym jest, jak działa?!
  • 27. ● Algorytm dowodzący wykonanie pracy ● Polega na znalezieniu nonce, przy pomocy którego można znaleźć: H(x) < target ● H(x) => hash(version, hashPrevBlock, hashMerkleRoot, timestamp, Nonce) ● Polega na znalezieniu nonce Proof of Work
  • 28.
  • 29. echo -n spacewarshack | sha256sum d6bec73d30e22556e6c37a05bf91f9b7d5431306184e8ac745a333bfe73d5722 - nonce=0; while true; do echo -n "spacewarshack"$nonce | sha256sum | grep -q '^000' && echo $nonce $(echo -n "spacewarshack"$nonce | sha256sum); ((nonce++)); done 6244 000faeb1158ede5e8ca0640068237906e8b9670162b39fb3e8fbc8cc7eba30ab - 6925 0004aeb63afd8ad712a0e3c7516bbb6ae616652bbb373d08694a4ad8607a5bc7 - 11491 000acc9de18c2c99c017286051f90b1cebc24be444fb6c989af49dfe45f3f5d4 - '^00000' 1108270 00000a9538d37700874d1e3b10c90824d4b6028ae2fa292cf7f1e9855fc19909 - Let’s try do this!
  • 35.
  • 36. ● Proof of Stake ○ Wymaga posiadania środków na specjalnym koncie ○ W przeciwieństwie do PoW nie zużywa prądu ○ Powoduje zagrożenie, że bogaci będą się bogacić ○ Konto które ma odpowiednią ilość środków odpowiada za “pieczętowanie” bloku ● Proof of Authority ○ Również nie zużywa tyle prądu ○ Wprowadza definicję “Notariusza”, który decyduje o transakcjach i “pieczętuje” bloki Inne mechanizmy potwierdzania bloków
  • 37.
  • 38. Ethereum Kryptowaluta czy jednak platforma programistyczna?
  • 39. ● Działa podobnie jak Bitcoin ● Umożliwia stworzenie rozproszonej aplikacji (Smart Kontrakty) ● Środowiskiem wykonującym operacje jest Ethereum Virtual Machine - EVM ● Wykonanie transakcji - zmiany danych (modyfikacji) kosztuje prowizję ● Prowizja jest w wyliczana w jednostce GAS ● Najpopularniejszym językiem pisania Smart Kontraktów jest Solidity Ethereum
  • 40. Sieć Ethereum - jak to działa? W sumie to nie tylko Ethereum… ;)
  • 41. ● Zapomnij o natychmiastowym otrzymaniu wyniku z sieci blockchainowych typu PoW ● Zapomnij o szybkich bugfixach na kontrakcie produkcyjnym ● Zapomnij o wgrywaniu parę razy tego samego ● Zapomnij o migracji danych ze starego kontraktu, do nowego ● Pamiętaj o kosztach wykorzystania sieci ● Pamiętaj o ilości potwierdzeń, zanim uznasz, że sieć wykopała Twoją transakcję Zmiana podejścia do życia :)
  • 43. pragma solidity 0.4.25; contract Hello { string _text; constructor (string text) public { _text = text; } function showText() public view returns(string) { return _text; } } http://remix.ethereum.org/#optimize=false&version=soljson-v0.4.25+commit.59dbf8f1.js Kontrakt!
  • 44. ● Kompilator: solc ● !! - Kompilator w JS (npm) jest różny od implementacji w C++ ● https://solidity.readthedocs.io/en/v0.4.25/installing-solidity.html 608060405234801561001057600080fd5b506040516102a83803806102a8833981018060405281019080805182019291905050508060009080519060200190610049929190610050565b50506100f5565b8280546001816001161561010002 03166002900490600052602060002090601f016020900481019282601f1061009157805160ff19168380011785556100bf565b828001600101855582156100bf579182015b828111156100be5782518255916020019190600101906100a356 5b5b5090506100cc91906100d0565b5090565b6100f291905b808211156100ee5760008160009055506001016100d6565b5090565b90565b6101a4806101046000396000f300608060405260043610610041576000357c0100000000000000 000000000000000000000000000000000000000000900463ffffffff16806307bc882914610046575b600080fd5b34801561005257600080fd5b5061005b6100d6565b60405180806020018281038252838181518152602001915080519060 20019080838360005b8381101561009b578082015181840152602081019050610080565b50505050905090810190601f1680156100c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b 606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561016e5780601f1061014357610100808354 04028352916020019161016e565b820191906000526020600020905b81548152906001019060200180831161015157829003601f168201915b50505050509050905600a165627a7a723058204eb22775aff7569df2733e0ef12faab79504e5 5a29d366418b63ce8aa89532a10029 Bytecode i kompilator
  • 45. [{ "inputs": [{"name": "text", "type": "string"}], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": true, "inputs": [], "name": "showText", "outputs": [{"name": "", "type": "string"}], "payable": false, "stateMutability": "view", "type": "function" }] Smart Kontrakt - Application Binary Interface (ABI)
  • 46.
  • 47. Bitcoin UTXO Czym się Bitcoin różni od Ethereum?
  • 48. ● Bitcoin ma blok średnio co 10 minut, o stałej wielkości ● Ethereum ma średnio blok co 15 sekund, o zmiennej wielkości ● Ethereum korzysta z “Wallet Balance”, Bitcoin korzysta z UTXO ● Bitcoin posiada HDWallets (Hierarchical Deterministic Wallets) Różnice pomiędzy Bitcoin a Ethereum
  • 49.
  • 50. Do zobaczenia na Space Wars Hack - Class #2! 24 września 2018 Piotr Pawlak Blockchain / dApp Developer at ppawlakov