Upgrade to Pro — share decks privately, control downloads, hide ads and more …

イーサリアム (Ethereum) 入門 / Introduction to Ethereum

イーサリアム (Ethereum) 入門 / Introduction to Ethereum

2017年10月25日(水)、ブロックチェーンアカデミー「スマートコントラクトプログラミング講座(2)」にて使用のスライドです。

Kenji Saito
PRO

October 25, 2017
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. (Ethereum) (2) CSO / SFC [email protected] (Ethereum) – (2) –

    2017-10-25 – p.1/33
  2. 1. 2. 3. 4. 5. (Ethereum) – (2) – 2017-10-25

    – p.2/33
  3. 1. 2. 3. 4. 5. (Ethereum) – (2) – 2017-10-25

    – p.3/33
  4. 1. (Ethereum) – (2) – 2017-10-25 – p.4/33

  5. Vitalik Buterin, “Ethereum White Paper: A NEXT GENERATION SMART CONTRACT

    & DECENTRALIZED APPLICATION PLATFORM” 15 (Ethereum) – (2) – 2017-10-25 – p.5/33
  6. 2. macOS (High Sierra 10.13) + Homebrew Linux (Ubuntu 16.04)

    Windows 10 + Bash on Ubuntu on Windows geth, solidity populus (Ethereum) – (2) – 2017-10-25 – p.6/33
  7. geth GO https://github.com/ethereum/go-ethereum/wiki/Building-Ethereum #installation-instructions geth 1.7.2-stable (10/24 ) $ geth

    -help (Ethereum) – (2) – 2017-10-25 – p.7/33
  8. Solidity http://solidity.readthedocs.io/en/latest/installing-solidity.html solc 0.4.18 (10/24 ) $ solc --version (Ethereum)

    – (2) – 2017-10-25 – p.8/33
  9. Python pip macOS http://qiita.com/oct_itmt/items/2d066801a7464a676994 (pyenv ) Ubuntu 16.04 (Ethereum) –

    (2) – 2017-10-25 – p.9/33
  10. Populus Python http://populus.readthedocs.io/en/latest/quickstart.html Open SSL Populus $ pip install populus

    version 1.10.1 (10/24 ) requirement rlp==0.5.1 ( pip ) $ pip install -U rlp==0.5.1 (Ethereum) – (2) – 2017-10-25 – p.10/33
  11. $ populus init contracts/Greeter.sol tests/test_greeter.py $ populus compile $ py.test

    . (Ethereum) – (2) – 2017-10-25 – p.11/33
  12. (1) http://beyond-blockchain.org/public/BcH-smart-contract-programming.zip Python (init.py, run.py, deploy.py) populus.json genesis.json $ python

    init.py $ geth init genesis.json (Ethereum) – (2) – 2017-10-25 – p.12/33
  13. (2) $ geth account new 16 (Ethereum) – (2) –

    2017-10-25 – p.13/33
  14. “run.py” ‘--etherbase’ 0x $ python run.py $ tail -f geth.log

    process id kill (Ethereum) – (2) – 2017-10-25 – p.14/33
  15. DAG (Directed Acyclic Graph) Ether (Ethereum) – (2) – 2017-10-25

    – p.15/33
  16. 3. (Ethereum) – (2) – 2017-10-25 – p.16/33

  17. (Ethereum) – (2) – 2017-10-25 – p.17/33

  18. . . . (Ethereum) – (2) – 2017-10-25 – p.18/33

  19. vs. (Ethereum) – (2) – 2017-10-25 – p.19/33

  20. = run (Ethereum) – (2) – 2017-10-25 – p.20/33

  21. Ether Ethereum EOA : Externally-Owned Account Ether EVM EVM (Ethereum)

    – (2) – 2017-10-25 – p.21/33
  22. EVM : Ethereum Virtual Machine Gas (Ethereum) – (2) –

    2017-10-25 – p.22/33
  23. EVM : : Solidity — JavaScript LLL — Lisp (Ethereum)

    – (2) – 2017-10-25 – p.23/33
  24. Solidity ( ) pragma solidity ˆ0.4.8; contract IndivisibleAsset { /*

    */ string public _name; string public _symbol; uint256 public _quantity; address public _owner; function IndivisibleAsset(string name, string symbol, uint256 quantity) { _name = name; _symbol = symbol; _quantity = quantity; _owner = msg.sender; } function transfer(address to) { if (_owner != msg.sender) { throw; } _owner = to; } } (Ethereum) – (2) – 2017-10-25 – p.24/33
  25. (Ethereum) – (2) – 2017-10-25 – p.25/33

  26. 4. (Ethereum) – (2) – 2017-10-25 – p.26/33

  27. ADEPT ADEPT : IBM IoT (Ethereum) – (2) – 2017-10-25

    – p.27/33
  28. (Ethereum) – (2) – 2017-10-25 – p.28/33

  29. ⇒ (Ethereum) – (2) – 2017-10-25 – p.29/33

  30. The DAO ( ) The DAO Split ( ) 360

    ETH (50∼60 ) (2016/6/17) ( ) ( ; ) (2016/7/20 ) (Ethereum) – (2) – 2017-10-25 – p.30/33
  31. 5. (Ethereum) – (2) – 2017-10-25 – p.31/33

  32. Greeter.sol “deploy.py” __main__ Greeter 0x & $ python deploy.py (Ethereum)

    – (2) – 2017-10-25 – p.32/33
  33. I (Ethereum) – (2) – 2017-10-25 – p.33/33