Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Building Apps with Ethereum Smart Contract

This presentation is part of New Product Developers (NPD) meetup regularly conducted by Divum. In this session, we covered gentle introduction to blockchain to running a truly decentralised Pizza ordering application built using solidity on ethereum.

  • Sé el primero en comentar

Building Apps with Ethereum Smart Contract

  1. 1. INTRODUCTION TO ETHEREUM ECOSYSTEM & SMART CONTRACTS NPD Meet @ Divum Corporate Services Pvt Ltd. Jitendra Kumar.Balla & Vaideeswaran sethuraman
  2. 2. AGENDA 1. What is a Blockchain? 2. Ethereum 3. Ethereum SMART Contracts
  3. 3. CENTRALIZED Issues: Single point failure Scaling Inefficiency All activities are managed by one person/Organization
  4. 4. DECENTRALIZED Solves: Single point failure Scaling Inefficiency Security and Transparency Transaction time
  5. 5. INTRODUCTION TO BLOCKCHAIN
  6. 6. BLOCKCHAIN A blockchain allows for trustless transactions between multiple parties. Or, more importantly, it allows transactions without trust of a third party intermediary! Decentralized system for an exchange a value/asserts ○ Distributed ledger ○ Immutability ○ Consensus ○ Security
  7. 7. LET’S START WITH A TRANSACTION THAT OCCURS BETWEEN ACCOUNTS Transaction #200 Account A Account B E.g. Send 2 tokens An example transaction could be: Account A will send 1 tokens to Account B
  8. 8. A LEDGER IS A LIST OF TRANSACTIONS (GROUPED INTO BLOCKS) LEDGER Block #100 Last Block: #99 (H) Timestamp: TM, Transaction #399 Transaction #400 Transaction #401 Block #97 Block #98 Block #99 Blocks contain an indeterminate number of transactions
  9. 9. BLOCKS ARE CHAINED TOGETHER LEDGER Block #100 Last Block: #99 Transaction #399 Transaction #400 Block #97 Block #98 Block #99 Blocks are generated on a time interval (e.g. every 5 minutes) The ledger is a chain of blocks! Each block is created with a pointer to the previous block creating a blockchain!
  10. 10. LEDGER Distributed ledger = Distributed database
  11. 11. BLOCKCHAIN Decentralized system for an exchange a value/asserts ○ Distributed ledger ○ Immutability ○ Consensus ○ Security
  12. 12. BLOCKCHAIN Decentralized system for an exchange a value/asserts ○ Distributed ledger ○ Immutability ○ Consensus ○ Security
  13. 13. CONSENSUS Consensus = Protocol by which peers agree on state of ledger ○ Ensure all peers in the network has exactly the same copy of ledger ○ Fraudulent transactions kept out of the ledger ○ Guarantees to record transactions in chronological order
  14. 14. BLOCKCHAIN Decentralized system for an exchange a value/asserts ○ Distributed ledger ○ Immutability ○ Consensus ○ Security
  15. 15. SECURITY
  16. 16. Wow!!, thats cool stuff Bitcoin: - Transfer money - Fast transactions - Less fee - Transparent
  17. 17. Wow!!, thats cool stuff Bitcoin: - Transfer money - Fast transactions - Less fee - Transparent Great Technology: - Launch my sub currency - ICO (Crowdfunding) - Managing digital assets - Local laws
  18. 18. INTRODUCTION TO ETHEREUM
  19. 19. ETHEREUM Ethereum is an open blockchain platform that lets anyone build and use decentralized applications that run on blockchain technology. Ethereum is world of computers
  20. 20. HOW DOES ETHEREUM WORK? ○ Ethereum’s basic unit is the account ○ State of every account ○ The Ethereum blockchain tracks the state of every account, and all state transitions on the Ethereum blockchain are transfers of value and information between accounts.
  21. 21. ETHEREUM ACCOUNTS: There are two types of accounts: ○ Externally Owned Accounts (EOAs) ○ Contract Accounts, which are controlled by their contract code and can only be “activated” by an EOA
  22. 22. ETHEREUM ACCOUNTS: Elliptic Curve Digital Signature Algorithm (ECDSA)
  23. 23. ETHEREUM ACCOUNTS: ○ Has an ether balance ○ Can send transactions (ether transfer or trigger contract code), EOA ○ Bytecode ○ Nonce
  24. 24. SMART CONTRACTS
  25. 25. ETHER, EVM, GAS
  26. 26. ETHER Ethereum value token is called Ether Denominations: Unit Wei Value Wei wei 1 wei 1 Kwei (babbage) 1e3 wei 1,000 Mwei (lovelace) 1e6 wei 1,000,000 Gwei (shannon) 1e9 wei 1,000,000,000 microether (szabo) 1e12 wei 1,000,000,000,000 milliether (finney) 1e15 wei 1,000,000,000,000,000 ether 1e18 wei 1,000,000,000,000,000,000
  27. 27. ETHER SUPPLY ○ 48 days presale (July 2014): $ 60 M ○ 12M created to fund development ○ 5 Eth will created as rewarded for every block ○ 2-3 eths for non winning miners ○ Contract execution user pays Ether’s
  28. 28. ETHEREUM VIRTUAL MACHINE ○ Ethereum is “Turing complete”. ○ EVM will load bytecode and execute instructions ○ Every node will run eth client
  29. 29. GAS ○ Gas is the metering unit for use of the World Computer ○ Each operation in the EVM consumes gas ○ totalEstGas = startgas * gasprice Transactions 0x60 0x01 0x60 0x02 0x01
  30. 30. Operation Name Gas Cost Remark step 1 default amount per execution cycle stop 0 free suicide 0 free sha3 20 sload 20 get from permanent storage sstore 100 put into permanent storage balance 20 create 100 contract creation call 20 initiating a read-only call memory 1 every additional word when expanding memory txdata 5 every byte of data or code for a transaction transaction 500 base fee transaction contract creation 53000 changed in homestead from 21000
  31. 31. ETHEREUM TRANSACTIONS:
  32. 32. BITCOIN ● Transactions based ● Block creation ~10mins ● Less number of transactions ● Require high computation power ● Not stopping big miners ● Limited transaction based bitcoin signature(128) ● Limited functions ● Peers can block list transaction ● SHA2 not so secure ● SHA256 is not ASIC resistance ● Account based ● Block creation ~12sec ● Mining algorithm based on memory usage (Gas) ● Can decouple components ● Rich programing language for contracts (Solidity) ● Uses SHA3 ● Customize protocol based on local law ● EthHash is ASIC resistance ETHEREUM
  33. 33. INTRODUCTION TO ETHEREUM DAPPS
  34. 34. ○ Ethereum Client’s ○ Installation of Geth ○ Geth commands ○ Web3JS Apis ○ Solidity ○ Smart contracts ○ Deploying smart contracts
  35. 35. ETHEREUM CLIENTS eth pyethapp geth ethereumjs-lib 3rd Party Impl ethereumj ruby-ethereum ethereumjs-lib parity
  36. 36. SOLIDITY
  37. 37. SOLIDITY Solidity is the most popular programming language used to write smart contracts to run on the Ethereum blockchain. It is a high level language which when compiled gets converted to EVM bytecode. This is very similar to the world of Java where there are JVM languages like Scala, Groovy, Clojure, JRuby etc.
  38. 38. SOLIDITY INTEGRATION TOOLS IDE’s - Remix - IntelliJ IDEA plugin - Visual Studio Extension - Etheratom - Solium - Emacs Solidity - Package for SublimeText — Solidity language syntax
  39. 39. SOLIDITY INTEGRATION TOOLS Solidity Tools - Dapp Build tool, package manager, and deployment assistant for Solidity. - Solidity REPL Instant command-line solidity console. - solgraph - Doxity
  40. 40. STRUCTURE OF A CONTRACT - Types - Operators - Functions - Function Modifiers - Events - Enum Types
  41. 41. - Types Booleans Integers Address String Enums - Function Types public, private, internal, external - Function Modifiers STRUCTURE OF A CONTRACT
  42. 42. - Types Booleans Integers Address String Enums - Function Types Public, private, internal - Function Modifiers STRUCTURE OF A CONTRACT
  43. 43. TRUFFLE/EMBARK We have frameworks for web application development such as Ruby on Rails, Python/Django etc, Truffle and Embark are the two most popular frameworks used to develop Dapps. They abstract away lot of the complexities of compiling and deploying your contract on the blockchain.
  44. 44. LET’S CODE….

×