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
Managing a legacy Dapp
Search
Makoto Inoue
March 09, 2018
Programming
450
0
Share
Managing a legacy Dapp
Makoto Inoue
March 09, 2018
More Decks by Makoto Inoue
See All by Makoto Inoue
ENS beyond Web3
makoto_inoue
0
170
Tokyo ENS Meetup 2023 June
makoto_inoue
0
130
ENS for your community
makoto_inoue
0
350
ENS for the multi chain world @ EthPorto 2023
makoto_inoue
0
230
ENS on Starknet at StarkWare Session
makoto_inoue
0
170
Ethcc: The State of ENS 2022
makoto_inoue
0
340
EthShanghai ENS integration workshop - May 2022
makoto_inoue
0
200
ENS Integration workshop @ nfthack
makoto_inoue
0
120
ENS as your web3 username
makoto_inoue
0
430
Other Decks in Programming
See All in Programming
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
120
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
440
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
250
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
580
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
関係性から理解する"同一性"の型用語たち
pvcresin
2
630
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
1.1k
CSC307 Lecture 17
javiergs
PRO
0
310
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
280
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
610
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
940
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
A designer walks into a library…
pauljervisheath
211
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Amusing Abliteration
ianozsvald
1
200
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
Transcript
Managing a legacy Dapp @makoto_inoue BlockParty
Topics - The legacy Dapp in action
Topics - The legacy Dapp in action - Evolution of
the code
Topics - The legacy Dapp in action - Evolution of
the code - Running on mainnet
The legacy Dapp in Action
- High expectation What is BlockParty? - Solving 50% problem
Reality
- High expectation - Harsh reality What is BlockParty? -
Solving 50% problem https://www.nytimes.com/interactive/2017/01/20/us/politics/trump-inauguration-crowd.html
What is BlockParty? - How?
“I went to a party and got extra Ether as
payout!!”
Flow
register(“@makoto_inoue”) Admin User
attend([“0x123…”, “0x456…”, “0x789…”) Admin
payback() Admin
withdraw() User
Meetups & Parties
Meetups & Parties
Meetups & Parties
Attendance rate
Payouts
Edcon post conference lunch (19/2/2017)
http://noblockno.party (11/3/2018)
Evolution of the code
The initial commit
The initial commit
The initial commit
The code
The code No version number No “payable” keyword No error
when missing public
The code
throw vs return - No error message - Swallow all
gas (used to be)
throw vs return - Can emit Event - Potentially unsecure?
The “Bloody October”
The “Bloody October”
Byzantine HF
throw vs return => require/assert/revert
Pull over Push
The DAO (30th April - 17th June 2016 )
0xbb9bc244d798123f...
The consequence
The 7th day
Did participants know about this?
What should I do with the money?
Did I donate?
Then what happened?
How did that happen?
Am I the only fool?
Share the best practices!!
Share the best practices!!
Running on mainnet
Gas price, gas price, gas price
The power of “default”
Gas price, gas price, gas price
The power of “default”
The power of “default”
The power of measuring
The power of measuring
But be careful...
Summary
Lessons learnt - Solidity evolves - “The best practices” evolve
- You only learn certain stuff on mainnet
How do you learn?
Move fast And break things http://uslaunchreport.com
Move fast And break things http://uslaunchreport.com http://giftrunk.com/gif/trampoline-pool-jump-fail
How do you learn (by failing) - Stake small
How do you learn (by failing) - Stake small -
Know your customer (doesn’t have to be full ID check)
How do you learn (by failing) - Stake small -
Know your customer (doesn’t have to be full ID check) - Deploy often
Thanks! @makoto_inoue http://ethcc.noblockno.party