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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
daisuke sato
February 09, 2019
Technology
220
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
830
社内仮想通貨をモバイルDappとしてつくってみた
daisuke310vvv
1
3.1k
Other Decks in Technology
See All in Technology
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
130
ASTを使って影響範囲を特定する
nealle
0
150
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
190
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.5k
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
230
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
260
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1k
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
320
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
enechainの内製セルフサービスプラットフォーム
hiyosi
0
160
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
How to build a perfect <img>
jonoalderson
1
6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Navigating Weather and Climate Data
rabernat
0
510
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Typedesign – Prime Four
hannesfritz
42
3.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
How GitHub (no longer) Works
holman
316
150k
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 ։ൃϋϯζΦϯ
͋Γ͕ͱ͏͍͟͝·ͨ͠ ϋοΧιϯ͕Μ͍ͬͯͩ͘͞!