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
0
400
Managing a legacy Dapp
Makoto Inoue
March 09, 2018
Tweet
Share
More Decks by Makoto Inoue
See All by Makoto Inoue
ENS beyond Web3
makoto_inoue
0
42
Tokyo ENS Meetup 2023 June
makoto_inoue
0
40
ENS for your community
makoto_inoue
0
180
ENS for the multi chain world @ EthPorto 2023
makoto_inoue
0
160
ENS on Starknet at StarkWare Session
makoto_inoue
0
48
Ethcc: The State of ENS 2022
makoto_inoue
0
150
EthShanghai ENS integration workshop - May 2022
makoto_inoue
0
130
ENS Integration workshop @ nfthack
makoto_inoue
0
44
ENS as your web3 username
makoto_inoue
0
340
Other Decks in Programming
See All in Programming
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
270
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
640
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
830
Goのmultiple errorsについて (2024年4月版)
syumai
3
670
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
140
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
920
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
Ruby GitHub Packages
bkuhlmann
0
630
Featured
See All Featured
Facilitating Awesome Meetings
lara
42
5.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
What the flash - Photography Introduction
edds
64
11k
Fireside Chat
paigeccino
21
2.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
The Language of Interfaces
destraynor
151
23k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Code Review Best Practice
trishagee
55
15k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Documentation Writing (for coders)
carmenintech
60
3.9k
Debugging Ruby Performance
tmm1
70
11k
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