Slide 1

Slide 1 text

1 BBc-1 Ethereum CSO / [email protected] — 1 BBc-1 Ethereum — 2021-10-06 – p.1/36

Slide 2

Slide 2 text

https://speakerdeck.com/ks91 — 1 BBc-1 Ethereum — 2021-10-06 – p.2/36

Slide 3

Slide 3 text

( ) SFC ( ) CSO (Chief Science Officer) 1993 ( ) 2006 ( ) SFC 21 P2P (Peer-to-Peer) 2011 2018 2019 VR 2021.7 , VR 2021.8 “ALL THESE WORLDS ARE YOURS”, VR 2021.9 & ( (VR) ) → ( ) — 1 BBc-1 Ethereum — 2021-10-06 – p.3/36

Slide 4

Slide 4 text

BBc-1 (Beyond Blockchain One) Ethereum — 1 BBc-1 Ethereum — 2021-10-06 – p.4/36

Slide 5

Slide 5 text

1. Ethereum 2. Ethereum 3. Ethereum 4. 5. BBc-1 — 1 BBc-1 Ethereum — 2021-10-06 – p.5/36

Slide 6

Slide 6 text

1. Ethereum — 1 BBc-1 Ethereum — 2021-10-06 – p.6/36

Slide 7

Slide 7 text

(BP : Blockchain Property ) BP-1 : ( ) BP-2 : ( )( ) BP-3 : ( ) ( ) ( ) — 1 BBc-1 Ethereum — 2021-10-06 – p.7/36

Slide 8

Slide 8 text

1) ( ) 2) (= ) 3) ⇒ (= ) ⇒ · / 1:1 NFT / (dependable ) — 1 BBc-1 Ethereum — 2021-10-06 – p.8/36

Slide 9

Slide 9 text

/DLT ( ) Bitcoin ( ) Open Assets Protocol (OAP) ( ) Ethereum (2.0) (Dapps ( ) ) ( ) (DLT) ( ) Hyperledger (Linux Foundation) Fabric (IBM/DAH), Sawtooth (Intel), Iroha ( ), Indy, Besu Polkadot (Web3 Foundation) ( ; Ethereum 2.0 ) Corda (R3), . . . , BBc-1 ( ) — 1 BBc-1 Ethereum — 2021-10-06 – p.9/36

Slide 10

Slide 10 text

Ethereum Vitalik Buterin, “Ethereum White Paper: A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM” 15 Dapps ( / / ) — 1 BBc-1 Ethereum — 2021-10-06 – p.10/36

Slide 11

Slide 11 text

2. Ethereum macOS (Big Sur 11.6) + Homebrew Linux (Ubuntu 20.04.3) (x86/AMD64 and ARM) Windows 10 + Windows Subsystem for Linux (Ubuntu ) Ethereum solidity brownie — 1 BBc-1 Ethereum — 2021-10-06 – p.11/36

Slide 12

Slide 12 text

Solidity Ethereum ( ) http://solidity.readthedocs.io/en/latest/installing-solidity.html Linux (on Windows) “sudo apt”, macOS “brew” Linux ARM git clone dependencies solc 0.8.9 (10/5 ) $ solc --version brownie py-solc-x solc (dependencies) ( solc py-solc-x ) — 1 BBc-1 Ethereum — 2021-10-06 – p.12/36

Slide 13

Slide 13 text

Ganache CLI Ethereum RPC npm ( ) macOS https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09 Linux https://qiita.com/seibe/items/36cef7df85fe2cefa3ea npm Ganache CLI $ sudo npm install -g ganache-cli — 1 BBc-1 Ethereum — 2021-10-06 – p.13/36

Slide 14

Slide 14 text

Python3 macOS $ brew install [email protected] python3 python 3.9 (12/2 ) 3.9 3.8 3.9 $ brew uninstall --ignore-dependencies [email protected] $ brew install [email protected] /usr/local/opt/[email protected]/bin/python3 Linux $ sudo apt update $ sudo apt install python3.8 python3.8-dev python3.8-venv python3.8-tk 16.10 python3(.8) apt (PPA ) python3 python3-dev python3-venv python3-tk — 1 BBc-1 Ethereum — 2021-10-06 – p.14/36

Slide 15

Slide 15 text

macOS : . . . macOS wget brew dyld: Library not loaded: /usr/local/opt/gettext/lib/libintl.8.dylib $ brew uninstall --force gettext $ brew install gettext — 1 BBc-1 Ethereum — 2021-10-06 – p.15/36

Slide 16

Slide 16 text

Python (venv) macOS (Linux python3 ) ‘python3.8’ ‘python3’ $ python3.8 -m venv bbc1env $ source bbc1env/bin/activate (bbc1env) $ pip install -U pip (bbc1env) $ pip install wheel bbc1env ( BBc-1 ) ( ) (bbc1env) $ deactivate — 1 BBc-1 Ethereum — 2021-10-06 – p.16/36

Slide 17

Slide 17 text

Brownie Python Ethereum https://eth-brownie.readthedocs.io Brownie $ pip install eth-brownie version 1.16.4 (10/5 ) — 1 BBc-1 Ethereum — 2021-10-06 – p.17/36

Slide 18

Slide 18 text

$ brownie init ( ERC-20 ) $ brownie bake token $ cd token — 1 BBc-1 Ethereum — 2021-10-06 – p.18/36

Slide 19

Slide 19 text

contracts (macOS Linux (x86/AMD64) ) $ brownie compile Linux (ARM) (AMD64 ) $ python # >>> import solcx >>> solcx.compile_solc(’0.6.12’) # >>> quit() /tmp ∼/.solcx/solc-v0.6.12 ( ) $ pytest tests — 1 BBc-1 Ethereum — 2021-10-06 – p.19/36

Slide 20

Slide 20 text

Brownie $ brownie console Python >>> len(accounts) 10 >>> accounts[0].balance() 100000000000000000000 >>> quit() — 1 BBc-1 Ethereum — 2021-10-06 – p.20/36

Slide 21

Slide 21 text

3. Ethereum — 1 BBc-1 Ethereum — 2021-10-06 – p.21/36

Slide 22

Slide 22 text

— 1 BBc-1 Ethereum — 2021-10-06 – p.22/36

Slide 23

Slide 23 text

. . . — 1 BBc-1 Ethereum — 2021-10-06 – p.23/36

Slide 24

Slide 24 text

vs. — 1 BBc-1 Ethereum — 2021-10-06 – p.24/36

Slide 25

Slide 25 text

= run — 1 BBc-1 Ethereum — 2021-10-06 – p.25/36

Slide 26

Slide 26 text

Ether Ethereum EOA : Externally-Owned Account ( ) Ether EVM EVM — 1 BBc-1 Ethereum — 2021-10-06 – p.26/36

Slide 27

Slide 27 text

EVM : Ethereum Virtual Machine (validator) ⇒ Gas — 1 BBc-1 Ethereum — 2021-10-06 – p.27/36

Slide 28

Slide 28 text

EVM : : ← : Solidity — JavaScript LLL — Lisp Vyper — Python Fe — Vyper Rust ← NEW! Solidity Vyper Python — 1 BBc-1 Ethereum — 2021-10-06 – p.28/36

Slide 29

Slide 29 text

Solidity ( ) pragma solidityˆ0.5.0; contract IndivisibleAsset { /* */ string public _name; string public _symbol; uint256 public _quantity; address public _owner; constructor(string memory name, string memory symbol, uint256 quantity) public { _name = name; _symbol = symbol; _quantity = quantity; _owner = msg.sender; } function transfer(address to) public returns (bool) { require (_owner == msg.sender); _owner = to; return true; } } — 1 BBc-1 Ethereum — 2021-10-06 – p.29/36

Slide 30

Slide 30 text

Ethereum — 1 BBc-1 Ethereum — 2021-10-06 – p.30/36

Slide 31

Slide 31 text

4. Ethereum ropsten — 1 BBc-1 Ethereum — 2021-10-06 – p.31/36

Slide 32

Slide 32 text

infura.io Brownie https://infura.io SIGN UP PROJECT ID infura Ethereum API infura . . . infura.io PROJECT ID WEB3_INFURA_PROJECT_ID PROJECT ID (∼/.bash_profile ) $ export WEB3_INFURA_PROJECT_ID= PROJECT ID — 1 BBc-1 Ethereum — 2021-10-06 – p.32/36

Slide 33

Slide 33 text

ropsten ETH brownie console ropsten >>> network.disconnect() >>> network.connect(’ropsten’) >>> len(accounts) 0 >>> accounts.add() >>> accounts[0].private_key 16 >>> quit() Ropsten Testnet ETH Faucet 5.0ETH https://faucet.dimensions.network/ ( ) https://metamask.io/ — 1 BBc-1 Ethereum — 2021-10-06 – p.33/36

Slide 34

Slide 34 text

ropsten ETH brownie console ropsten ETH >>> network.disconnect() >>> network.connect(’ropsten’) >>> len(accounts) 0 >>> accounts.add( 16 ) >>> accounts[0].balace() ETH >>> quit() ETH >>> accounts[0].transfer(accounts[1], "1 ether") — 1 BBc-1 Ethereum — 2021-10-06 – p.34/36

Slide 35

Slide 35 text

5. BBc-1 https://speakerdeck.com/beyondblockchain/bbc-1-hands-on-installation-and-file-content-proof — 1 BBc-1 Ethereum — 2021-10-06 – p.35/36

Slide 36

Slide 36 text

2 BBc-1 Ethereum I : — 1 BBc-1 Ethereum — 2021-10-06 – p.36/36