Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スマートコントラクトのデプロイって何だろう
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shuichi Nagao
September 28, 2018
Programming
0
840
スマートコントラクトのデプロイって何だろう
Ethereumのコントラクトのデプロイについて見ていきます。既存のWeb開発におけるデプロイとは似ているのですがデプロイフローは異なるのでその紹介をします。
Shuichi Nagao
September 28, 2018
Tweet
Share
More Decks by Shuichi Nagao
See All by Shuichi Nagao
UX for Key Management
ngo275
0
130
深センではテクノロジーを使う人がイノベーションを起こしている
ngo275
0
630
プロトタイピングするならFirebaseを使ってみよう
ngo275
0
1.8k
Ethereumで開発を始めるなら知っておきたいこと
ngo275
10
5.2k
スマートコントラクトをHTTPで実行する
ngo275
0
150
EOSでスマートコントラクトを実行してみる
ngo275
0
1.2k
iOSアプリエンジニアがReact Nativeを使ってみて
ngo275
0
290
中東のシリコンバレーことイスラエルに行ってきた
ngo275
0
150
ペイモのアーキテクチャ
ngo275
0
710
Other Decks in Programming
See All in Programming
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
CSC307 Lecture 03
javiergs
PRO
1
490
CSC307 Lecture 04
javiergs
PRO
0
660
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
660
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
110
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
140
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
今から始めるClaude Code超入門
448jp
8
9.1k
Featured
See All Featured
Chasing Engaging Ingredients in Design
codingconduct
0
110
The Pragmatic Product Professional
lauravandoore
37
7.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Making Projects Easy
brettharned
120
6.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Mind Mapping
helmedeiros
PRO
0
90
My Coaching Mixtape
mlcsv
0
50
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
440
Transcript
εϚʔτίϯτϥΫτͷ σϓϩΠͬͯͲ͏͍͏͜ͱʁ 2018/9/28 @NGO275 1
͢༰ ▸ εϚʔτίϯτϥΫτ(εϚίϯ) ͓͞Β͍ ▸ σϓϩΠͱ ▸ ࣮ࡍʹͬͯΈΔ 2
εϚʔτίϯτϥΫτ͓͞Β͍ ֓ཁ ▸ ཧऀෆࡏͰࣥߦ͕ՄೳʹͳͬͨɺϓϩάϥϜԽ͞Εͨܖ ͷ͜ͱ ▸ ࣗಈൢചػ͕Α͘ྫ͑ΒΕΔ ▸ 20ੈلޙ࣌ͰNick Szabo͕ఏএͨ֓͠೦
▸ ϒϩοΫνΣʔϯͱͷ૬ੑ͕ྑ͘ɺEthereumΛ͡Ίͱͨ͠ ༷ʑͳϒϩοΫνΣʔϯͰεϚʔτίϯτϥΫτͷ࣮ߦϓϥο τϑΥʔϜ͕࣮͞Ε͍ͯΔ ▸ ࠓճEthereumʹϑΥʔΧε͠·͢ 3
εϚʔτίϯτϥΫτ͓͞Β͍ ICOΛྫʹͱΔ ICO εϚίϯ ϓϩδΣΫτ 4
σϓϩΠͱ લఏͱͯ͠ETHEREUMεςʔτΛͬͨγϯάϧτϯϚγϯ εςʔτ N εςʔτ N+1 τϥϯβΫγϣϯ 5
σϓϩΠͱ εςʔτͷ࣮ଶΞΧϯτͷू߹ ▸ ΞΧϯτʹ2छྨ͋Δ ▸ ֎෦ΞΧϯτ (EOA) ▸ ਓ͕ѻ͏ΞΧϯτ ▸
ίϯτϥΫτΞΧϯτ (CA) ▸ ίϯτϥΫτ͕ೖ͍ͬͯΔΞΧϯτ 6
σϓϩΠͱ εςʔτͷσʔλߏϚʔΫϧύτϦγΞπϦʔঢ় STATE ROOT NONCE BALANCE CODE HASH STORAGE ROOT
CODE ΞΧϯτ 7
σϓϩΠͱ τϥβΫγϣϯͷৄࡉ ▸ τϥϯβΫγϣϯʹ2छྨ͋Δ ▸ Message Call ▸ ίϯτϥΫτͷ࣮ؔߦ ▸
ETHͷૹۚ ▸ Contract Creation ▸ ৽͍͠ίϯτϥΫτΞΧϯτͷੜ 8
σϓϩΠͱ τϥβΫγϣϯͷৄࡉ ▸ τϥϯβΫγϣϯʹ2छྨ͋Δ ▸ Message Call ▸ ίϯτϥΫτͷ࣮ؔߦ ▸
ETHͷૹۚ ▸ Contract Creation ▸ ৽͍͠ίϯτϥΫτΞΧϯτͷੜ σϓϩΠͷ࣮ଶ 9
σϓϩΠͱ CONTRACT CREATIONΛߦ͏ํ๏ EOA ৽نCA CONTRACT CREATION EOA ৽نCA CONTRACT
CREATION MESSAGE CALL CA CA͕࣮ߦ͢ΔτϥβΫγϣϯΛ ෦τϥϯβΫγϣϯͱݴ͍·͢ 1 2 10
࣮ࡍʹͬͯΈΔ ͍͔ͭ͘ํ๏͋ΔͷͰྻڍͯ͠ΈΔ 1. Ethereum ClientΛͬͯEOA͔ΒContract Creation ͷτϥϯβΫγϣϯΛ࣮ߦ͢Δ 2. deployؔΛ࣋ͬͨFactoryίϯτϥΫτΛ࣮͠ɺͦͷ deployؔΛ࣮ߦ͢Δʢ෦τϥϯβΫγϣϯͰContract
Creation͕࣮ߦ͞ΕΔʣ 3. RemixΛͬͯContract CreationΛ࣮ߦ͢Δ 11
࣮ࡍʹͬͯΈΔ ͍͔ͭ͘ํ๏͋ΔͷͰྻڍͯ͠ΈΔʢৄࡉʣ 1. Ethereum ClientΛͬͯEOA͔ΒContract Creation ͷτϥϯβΫγϣϯΛ࣮ߦ͢Δ ‣ ຊ֨తͳ։ൃΛ͢ΔͳΒ͜Ε ‣
TruffleΛ͏͜ͱͰCLI͔ΒσϓϩΠͰ͖Δ ‣ ෳͷίϯτϥΫτΛ͖ͳॱ൪ͰσϓϩΠͰ͖Δͷ Ͱͬͱॊೈੑ͕ߴ͍ 12
࣮ࡍʹͬͯΈΔ ͍͔ͭ͘ํ๏͋ΔͷͰྻڍͯ͠ΈΔʢৄࡉʣ 2. deployؔΛ࣋ͬͨFactoryίϯτϥΫτΛ࣮͠ɺͦͷ deployؔΛ࣮ߦ͢Δ ‣ ΞϓϦར༻ऀ͕ίϯτϥΫτΛσϓϩΠͰ͖Δ ‣ ؆୯ʹτʔΫϯΛൃߦͰ͖ΔγεςϜΛ࡞Δͱ͢Δͱɺ ͜ͷํ๏Ͱ֤τʔΫϯΛϢʔβʹσϓϩΠͯ͠Β͏
13
3. RemixΛָͬͯ͢Δ ‣ Remix͜ͱϒϥβIDEΛ͏ͱɺ؆୯ʹίϯτϥΫτ ΛσϓϩΠͰ͖Δ ‣ ϩʔΧϧ։ൃڥʹґଘ͠ͳ͍ͷͰษڧʹ࠷ద͕ͩɺ ຊ֨తͳ։ൃʹΓͳ͍͔ ‣ MetaMask͚ͩ͋Εྑ͍
࣮ࡍʹͬͯΈΔ ͍͔ͭ͘ํ๏͋ΔͷͰྻڍͯ͠ΈΔʢৄࡉʣ 14
࣮ࡍʹͬͯΈΔ REMIXͰͬͯΈΔ߹ͷϑϩʔͷ֓ཁҎԼ ▸ MetaMaskΛηοτΞοϓ ▸ https://remix.ethereum.org/ ▸ ӈͷΑ͏ʹίϯτϥΫτΛ࣮ ▸ RemixͰCompileλϒΛ։͖ɺ
ίϯύΠϧ͢Δʢ͜ͷ࣌Solidityͷversion ͱcompilerͷversionΛ߹ΘͤΔʣ ▸ RunλϒΛ։͖ɺDeployϘλϯΛΫϦο Ϋ pragma solidity ^0.4.25; contract Counter { uint public value = 0; event Increment(uint _value); function increment() public { value++; emit Increment(value); } } 15
࣮ࡍʹͬͯΈΔ Լ४උ ‣ https://metamask.io/ Ͱ MetaMaskΛΠϯετʔϧ͢Δ ‣ MetaMaskͰΥϨοτΛΞΫ ςΟϕʔτ͓ͯ͘͠ ‣
ςετωοτ(Ropsten)ʹଓͯ͠ https://faucet.metamask.io/ Ͱ ETHΛೖख͓ͯ͘͠ 16
࣮ࡍʹͬͯΈΔ ίϯτϥΫτΛ࣮͢Δ 17
࣮ࡍʹͬͯΈΔ ίϯτϥΫτΛ࣮͢Δ ᶃϑΝΠϧͷ৽ن࡞࣮ͯ͠ 18
࣮ࡍʹͬͯΈΔ ίϯτϥΫτΛίϯύΠϧ͢Δ ᶃCompileΛ։͘ ᶄCompiler version֬ೝ ᶅStart to compileΛΫϦοΫ 19
࣮ࡍʹͬͯΈΔ ίϯτϥΫτΛσϓϩΠ͢Δ ᶄWeb3͕Inject͞Ε͍ͯΔ͔֬ೝ ᶃRunΛ։͘ ᶅDeployΛΫϦοΫ͢Δ 20
࣮ࡍʹͬͯΈΔ ίϯτϥΫτΛσϓϩΠ͢Δ ᶆMetaMaskͰॺ໊͢Δ 21
࣮ࡍʹͬͯΈΔ ίϯτϥΫτͰ༡ΜͰΈΔ ᶃίϯτϥΫτͷؔΛ࣮ߦͰ͖Δ 22
·ͱΊ ▸ σϓϩΠͱτϥϯβΫγϣϯͷContract Creationͷ͜ͱ ▸ ओʹ3ͭͷํ๏ͰσϓϩΠͰ͖Δ ▸ Ethereum ClientΛ͏ʢ։ൃ͚ʣ ▸
σϓϩΠ༻ͷίϯτϥΫτΛ࡞ΔʢϢʔβ͚ʣ ▸ Remixͱ͔؆қతʹߦ͑ΔπʔϧΛ͏ ▸ σϓϩΠͨ͠ͷ୭ͰࢀরՄೳͳͷͰΈͳ͞Μࢼͯ͠ ·͠ΐ͏ʂ 23