Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mengenal Ethereum dengan Python

185 views

Published on

Mengenal Ethereum blockchain lewat Python

Published in: Software
  • Be the first to comment

  • Be the first to like this

Mengenal Ethereum dengan Python

  1. 1. Ethereum Blockchain dengan Python asofyan@python.or.id
  2. 2. Apa Blockchain? •  Cryptographically Secure seluruh transaksinya diamankan dengan kriptografi •  Transaction Singleton Machine Ada satu ‘mesin’ yang dipercaya memproses seluruh transaksi •  With Shared State ‘state’ mesin terakhir dibagi dan terbuka bagi semua orang
  3. 3. Crypto Currency Proof of work (PoW) sederhana
  4. 4. Apa Ethereum? •  Diusulkan 2014, oleh Vitalik Buterin, Gavin Wood, dan Jefrey Wickle •  Distributed Computing Platform •  Sistem operasi •  Open Source •  Public •  Berbasis Blockchain •  Dengan fitur utama smart contract
  5. 5. Block 1 Block 2 Block 3 Smart Contract Ethereum Node 1 Block 1 Block 2 Block 3 Smart Contract Ethereum Node 2 Ethereum Node 4 Ethereum Node n.. Block 1 Block 2 Block 3 Smart Contract Ethereum Node 1 Block 1 Block 2 Block 3 Smart Contract Ethereum Node 2 Ethereum Node 4 Ethereum Node n.. Rinkeby Test Network Private Network Block 1 Block 2 Block 3 Smart Contract Ethereum Node 1 Block 1 Block 2 Block 3 Smart Contract Ethereum Node 2 Ethereum Node 4 Ethereum Node n.. Ethereum Networks Metropolis Live Network EVM EVM EVM EVM EVM EVM
  6. 6. Rinkeby Test Network
  7. 7. Smart Contract •  Di atur oleh private key •  Tidak punya code/seperangkat fungsi •  Bisa insiasi transaksi sendiri Contract Account •  Di atur oleh code di dalam contract •  Punya code/seperangkat fungsi •  Tidak bisa inisiasi sendiri, harus ditrigger dari Owned Account
  8. 8. Smart Contract 2 Block 1 Block 2 Block 3 Smart Contract Ethereum Node Smart Contract Code Compile to Evm Byte Code Web 3 Interface Distributed App (Dapp) Default Tools & Interface EVM
  9. 9. Python Stack di Ethereum No App Go/JS Python 1 Node Client geth, parity py-geth, pyethapp 2 RPC API Web3 web3.py 3 Smart Contract Framework Truffle Populus 4 Test RPC Node Ganache-cli Eth-testrpc 5 EVM Go-ethereum Pyethereum, Py-evm 6 Smart Contract Language Solidity Serpent
  10. 10. Contoh Py-Geth * hanya untuk initiate ethereum node, lewat subprocess memanggil geth
  11. 11. Contoh eth-testrpc + web3 Node siap di localhost:8545 Transfer ether, tanpa mining
  12. 12. Smart Contracts
  13. 13. Implementasi Hybrid •  Kontrak dibuat dalam solidity, kompilasi dengan solc (atau py-solc wrapper jika dibutuhkan) – dengan memanfaatkan seluruh ekosistem yang ada seperti remix, truffle, zeppelin dll. •  Akses dan manipulasi via web3.py •  Di atasnya framework web based seperti flask atau Django, atau desktop base berbasis PyQT Block 1 Block 2 Block 3 Smart Contract Go-Ethereum Solidity Compile to Evm Byte Code Web3.py Flask/Django/PyQT EVM Remix Truffle Solc/py-solc
  14. 14. Full Stack Python •  Pyethereum, ciptaan Vitalik Buterin sebagai backbone kurang terpelihara •  Py-EVM sebagai alternative, masih fase alpha •  Serpent mengandalkan fungsi-fungsi di pyethereum untuk berinteraksi dengan kontrak yang dibuat Block 1 Block 2 Block 3 Smart Contract PyEthereum Serpent Compile to Evm Byte Code pyethapp RPC client Flask/Django/PyQT EVM Serpent Compiler
  15. 15. Kesimpulan •  Ekosistem Python di Ethereum masih dalam pengembangan •  web3.py sebagai library wrapper untuk akses EVM, sudah sangat memadai untuk dibuat Dapp •  Saran implementasi untuk produksi: Hybrid
  16. 16. Terima Kasih asofyan@python.or.id

×