Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
BlockchainHackathon2019 ワークショップ ~ Twitterとブロックチ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
daisuke sato
February 09, 2019
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BlockchainHackathon2019 ワークショップ ~ Twitterとブロックチェーンを使ったアイデンティフィケーションの実現~
このスライドは、経産省主催のブロックチェーンハッカソン2019のワークショップで使用されたスライドです。
daisuke sato
February 09, 2019
More Decks by daisuke sato
See All by daisuke sato
gethoとTruffleを使った DApps開発ワークショップ
daisuke310vvv
0
150
gethoハッカソン -ハンズオン-
daisuke310vvv
1
1.1k
Hi-Con2018 より良いDApp開発をするための話と gethoについて
daisuke310vvv
1
420
getho ~ Ethereum private nodes, tailored for you. ~
daisuke310vvv
0
840
社内仮想通貨をモバイルDappとしてつくってみた
daisuke310vvv
1
3.1k
Other Decks in Technology
See All in Technology
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
200
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
160
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
AIエージェントの監視、思考を見るか行動を見るか / Monitoring AI Agents: Thoughts or Actions
yusukeshimizu
2
180
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
420
大江戸Ruby会議でデータベース クライアントの話をするのは 間違っているだろうか
yahonda
1
110
コードレビューをなくして見えたもの
henteko
0
140
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
300
llm-d に入門してみた / Try out llm-d
kota2and3kan
0
100
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
120
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
200
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
240
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.8k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
600
Side Projects
sachag
456
43k
How GitHub (no longer) Works
holman
316
150k
Visualization
eitanlees
153
17k
How to train your dragon (web standard)
notwaldorf
96
6.9k
A Tale of Four Properties
chriscoyier
163
24k
Bash Introduction
62gerente
615
220k
How STYLIGHT went responsive
nonsquared
100
6.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
320
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Transcript
Blockchain Hackathon 2019 Daisuke Sato
ࣗݾհ • ࠤ౻ େี • Co-Founder and CTO at Popshoot,
Inc • iOS/αʔόɾΠϯϑϥ
Popshoot, Inc • ۀ3 • ϞόΠϧΞϓϦͷ։ൃɾӡ༻ • ΠʔαϦΞϜ
ϋϯζΦϯͷత 1. gethoΛͬͯεϜʔζͳDApp։ൃ͕Ͱ͖ΔΑ͏ʹͳΔ 2. ࣮ࡍʹDApp։ൃΛମݧ͢Δ͜ͱͰϋοΧιϯͷ͕͔Γͱ ͢Δ
λΠϜεέδϡʔϧ • 10: gethoͱࠓ࡞Δͷʹ͍ͭͯ • 20: ϋϯζΦϯ • 15: ࣭ٙԠ&Ճ՝
• 05: ·ͱΊ
ࢿྉ • ࠓͷεϥΠυࢿྉ • ϋϯζΦϯ༻ͷϨϙδτϦ github.com/popshootjapan/blockchain_hackathon_2019 • slackνϟϯωϧ #getho-ws ※
νϟϯωϧͰ࣭͋Είϝϯτ͍ͯͩ͘͠͞
ҙ 1. python3ܥͩͱϥΠϒϥϦ͕ϏϧυͰ͖·ͤΜ • python2ܥΛ͏Α͏ʹ͍ͯͩ͘͠͞(PATHΛม͑Δ) 2. ϋϯζΦϯ༻ʹ४උͨ͠ͷશͯ։ൃڥԼΛఆ͍ͯ͠ ·͢ͷͰɺຊ൪Ͱ༻͠ͳ͍Ͱ͍ͩ͘͞
gethoʹ͍ͭͯ
gethoͱ DApp։ൃͷͨΊͷ։ൃϓϥοτϑΥʔϜ
ςετ༻ͷϓϥΠϕʔ τϊʔυ ίϯτϥΫτͷσϓϩΠઌͱ ͯ͠༻Ͱ͖ɺνʔϜͰڞ༗ Մೳɻ
εϚʔτίϯτϥΫτ ͷGUI࣮ߦڥ ίϯτϥΫτͷؔΛGUI্ Ͱ࣮ߦՄೳ
ͦͷଞ • HTTP/WebScoketରԠ • σϑΥϧτΞΧϯτʹ100ETH • CLI • ※ϊʔυ4࣌ؒͰҰ࣌ఀࢭ(࠶ىಈՄ)
ࠓ࡞Δͷ TwitterͱϒϩοΫνΣʔϯΛͬͨΞΠσϯςΟϑΟέʔγϣ ϯͷ࣮ݱ ؆୯ʹ͍͏ͱ, ࣗͷΞυϨεͷূ໌ΛTwitterΛ࣮ͬͯݱ͢Δ
ΞυϨεͷূ໌ʁ • ༑ୡʹૹ͍ۚͨ࣌͠ʹɺڭ͑ΒΕͨΞυϨε͕ຊʹͦͷਓ ͷͷ͔Ͳ͏͔Λূ໌͢Δʹʁ • ͦͷΞυϨεͱൿີ伴ʹΑΔॺ໊ͷݕূ͕Ͱ͖ͨιʔγϟϧ ΞΧϯτͱඥ͍͍ͮͯΕɺͦͷΞυϨεͷΛূ໌͢ Δ͜ͱ͕Ͱ͖Δ • ඥͮ͘ιʔγϟϧΞΧϯτͷ͕૿͑Δ΄ͲɺͦͷΞυϨ
εͷ৴པ্͕͍ͬͯ͘
ొϑϩʔ 1. ࣗͷTwitterΞΧϯτID(ྫ: @st_dsk)ʹରͯ͠ΥϨοτ ΞυϨεͷൿີ伴Ͱॺ໊ 2. ॺ໊ͨ͠จࣈྻΛTwitterʹߘ 3. πΠʔτURL͔Βॺ໊Λऔಘ͠ɺͦͷॺ໊ͱTwitterΞΧϯ τIDΛίϯτϥΫτͷొ༻ؔʹ͛Δ
4. ίϯτϥΫτͰݕূ͠ɺޭ͢ΕΥϨοτΞυϨεͱ TwitterΞΧϯτIDΛඥ͚ͮͯϒϩοΫνΣʔϯʹॻ͖ࠐΉ
Demo
ϋϯζΦϯ
gethoΞΧϯτ࡞ getho.ioʹΞΫηε͠ɺΞΧϯτͷొ
gethoμογϡϘʔυ ઐ༻ͷϓϥΠϕʔτϊʔυͱυϝΠϯ͕࡞ΒΕ·͢
ϋϯζΦϯ༻ͷϨϙδτϦΛ४උ URL: github.com/popshootjapan/blockchain_hackathon_2019 ϨϙδτϦͷμϯϩʔυ $ git clone
[email protected]
:popshootjapan/ blockchain_hackathon_2019.git ґଘϥΠϒϥϦͷΠϯετʔϧ
$ npm install (※ python2ܥඞਢ)
TwitterIdentifyίϯτϥΫτ ./contracts/TwitterIdentify.sol contract TwitterIdentify { // ΞυϨεͱTwitterΞΧϯτIDͷmapping mapping(address => string)
public twitterIdentifications; function identify(string twitterId, bytes32 hash, bytes signature) public { ... } function ecverify(bytes32 hash, bytes signature) internal pure returns(address sig_address) { ... } }
ίϯτϥΫτσϓϩΠ ./migrations/2_deploy_TwitterIdetify.js var TwitterIdentify = artifacts.require("./TwitterIdentify.sol"); module.exports = function(deployer) {
deployer.deploy(TwitterIdentify); };
ίϯτϥΫτσϓϩΠ ※<YOUR SUBDOMAIN>ͷ෦Λॻ͖͍͑ͯͩ͘͞ ./truffle-config.js module.exports = { networks: { getho:
{ host: "<YOUR SUBDOMAIN>.getho.io/jsonrpc", port: 80, network_id: 1010, gas: 4712388 } } }
ίϯτϥΫτσϓϩΠ $ ./node_modules/.bin/truffle migrate --network getho
μογϡϘʔυ্ͰTx֬ೝ͕Ͱ͖·͢
webαʔόىಈ <YOUR SUBDOMAIN>ͱ<CONTARCT ADDRESS>Λॻ͖͑ ͍ͯͩ͘͞ ./app.js var web3 = new
Web3('http://<YOUR SUBDOMAIN>.getho.io:80/jsonrpc'); const contractAddr = '<CONTRACT ADDRESS>';
webαʔόىಈ $ node app.js αʔό্ཱ͕͕ͪΔͱɺ http://localhost:3000ʹΞΫηεͰ͖·͢
gethoʹίϯτϥΫτΞοϓϩʔυ ϩάΠϯ $ ./getho_osx login ϊʔυҰཡऔಘ $ ./getho_osx nodes ίϯτϥΫτͷΞοϓϩʔυ
$ ./getho_osx upload ./builds/contracts/ TwitterIdentify.json -s <YOUR SUBDOMAIN>
gethoʹίϯτϥΫτΞοϓϩʔυ μογϡϘʔυʹՃ͞Ε·͢(※ը໘ӈԼ)
GUIͰ࣮ߦ ؔͷ࣮ߦ͕Ͱ͖·͢
࣭ٙԠ&Ճ՝ • ίϯτϥΫτʹॺ໊ͨ͠URLΛอ࣋͢Δ • ॺ໊ͨ͠URLͷϦϯΫΛWeb্ʹදࣔͤ͞Δ (※ ͑ͷ࣮additional_practiceϒϥϯνʹ͋Γ·͢)
·ͱΊ • gethoͷհ • ࣗͷΞυϨεͷূ໌ΛTwitterΛ࣮ͬͯݱ͢ΔDApp ։ൃϋϯζΦϯ
͋Γ͕ͱ͏͍͟͝·ͨ͠ ϋοΧιϯ͕Μ͍ͬͯͩ͘͞!