์๋ ํ์ญ๋๊น!
์ต๊ทผ์๋ Waves Labs
์ฐ๋ฆฌ๋ DAO ์ผ์ด์ค๋ฅผ ์ ํํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ๋จํ ์์ ๋ก ์์ํ์ต๋๋ค.
์ด ์๋ฅผ ๋ณด๊ณ ๊ฐ์ค์ ํ ์คํธํ๊ณ ๋ช ๊ฐ์ง ์ด์ํ ์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Alice๋ฅผ ๊ฐ๊ฒ ํด์ฃผ์ธ์ - dApp ์์ ์
Boob๊ณผ Cooper๋ Alice ํํธ๋์ด์ Alice-BC DAO์ ๊ณต๋ ์ฐฝ๋ฆฝ์์
๋๋ค.
Neli๋ ์๊ธ ์กฐ๋ฌ์ด ํ์ํ ์ฌ์
์ฃผ์
๋๋ค.
์ํ - ํ ํฐ์ ๋ฐฐํฌํ๋ ์ํ
1๋จ๊ณ. ์์ก ์ด๊ธฐํ
์จ์ด๋ธ ํ
์คํธ ๋คํธ์ํฌ์์ ํ ํฐ์ ๋ฐ์ผ๋ ค๋ฉด ๋ค์ ์ฐ๋ฝ์ฒ๋ก ๋ฌธ์ํด์ผ ํฉ๋๋ค.
๊ณ์ ์ธ๋ถ์ ๋ณด๋ฅผ ์ด์ด IDE์์ ์ฃผ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ Bank 10 WAVES๋ฅผ ๊ฐ์กฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ธ๋ก ๋ฐ ํธ๋์ญ์
๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๋์ฐฉํ๋์ง ํ์ธํฉ๋๋ค.
์ด์ ์ํ์ ํ ํฐ์ ๋๋จธ์ง ์ฐธ๊ฐ์์๊ฒ ๋ฐฐํฌํด ๋ณด๊ฒ ์ต๋๋ค. (์ฐธ๊ณ : Waves ๋คํธ์ํฌ์ ๋ชจ๋ ๊ฑฐ๋๋ ๋ฌด๋ฃ๊ฐ ์๋๋ฏ๋ก ๋ชจ๋ ์ฐธ๊ฐ์๊ฐ ๊ฑฐ๋๋ฅผ ํ๋ ค๋ฉด ์ต์ํ์ ์๊ณ ๊ฐ ํ์ํฉ๋๋ค.)
1 WAVES = 100000000 ๋จ์(์จ์ด๋ธ๋ฆฟ), ์์ ์ ์๋ง ๊ฐ๋ฅํ๋ฏ๋ก
0.01 WAVES(๊ฑฐ๋ ์์๋ฃ) = 1000000
Bank -> [3 WAVES] -> Alice, TransferTransaction์ ํตํด(์ ํ: 4).
๊ฑฐ๋๊ฐ ์๋ช
๋ env.SEED๊ฐ ์ํ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
๏ฟผ
์ผ์นํ๋ ์๋ ๋ฌธ๊ตฌ๊ฐ ์์ผ๋ฉด ๊ณ์ ํญ์์ ํด๋น ๋ฌธ๊ตฌ๋ก ์ ํํ๊ณ ๋ค์ ํ์ธํ์ธ์.
๊ทธ ํ, ์ฐ๋ฆฌ๋ 3 WAVES Alice์ ์ ์ก์ ์ํ ๊ฑฐ๋๋ฅผ ์์ฑ, ๋ฐํ ๋ฐ ์๋ช
ํฉ๋๋ค.
env.accounts ๋ณ์๋ฅผ ํตํด์๋ Alice์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๋ฒํธ๋ 0๋ถํฐ ์์ํ๋ฏ๋ก Alice๋ env.accounts[1]์
๋๋ค.
broadcast(transfer({recipient:address(env.accounts[1]), amount: 300000000, fee: 1000000}))
๊ฒฐ๊ณผ๋ ๋ธ๋ผ์ฐ์ ์์๋ ํ์ธํ ์ ์์ผ๋ฉฐ, ์คํ ํ ์ฆ์ ๊ฒฐ๊ณผ์ ๋ํ ๋งํฌ๊ฐ ๋ฐํ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ Alice์ ์์ก์ด 3 WAVES๋ก ๋ณด์ถฉ๋๊ณ ์ํ ์์ก์ด 10 - 3 - 0.01 = 0.699๋ก ์ ์ง๋๋์ง ํ์ธํฉ๋๋ค.
Boob๊ณผ Cooper๋ ๊ฐ๊ฐ 3 WAVES๋ฅผ ๋ณด๋ด๊ณ Neli, Xena, Mark๋ ๊ฐ๊ฐ 0.2 WAVES๋ฅผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ณด๋
๋๋ค.
(์ฐธ๊ณ : ํ ๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ Neli 0.02 WAVES๋ฅผ ๋ณด๋์ต๋๋ค. ์กฐ์ฌํ์ธ์!)
broadcast(transfer({recipient:address(env.accounts[4]), amount: 20000000, fee: 1000000}))
๋ชจ๋ ์ฐธ๊ฐ์์ ์์ก์ ๋ณด์ถฉํ๋ฉด ๋ค์์ด ํ์๋ฉ๋๋ค.
2๋จ๊ณ. dApp ๊ณ์ ์์ฑ
์ฐ๋ฆฌ๋ Alice๊ฐ ๋ถ์ฐํ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฐฝ์์์ด์ ์์ ์๊ฐ ๋๋ ๋ฐ ๋์ํ์ต๋๋ค.
Accounts๋ก ์ด๋ํ์ฌ SEED๋ก ์ค์ ํ๊ณ env.SEED๊ฐ Alice์ ์ผ์นํ๋์ง ํ์ธํ์ธ์.
Alice์ ๊ณ์ ์ ๊ฐ๋ฅํ ๊ฐ์ฅ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ(๊ณ์ฝ)๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค.
Waves์ ์ค๋งํธ ์ฐ๋ฝ์ฒ๋ ํน์ ์กฐ๊ฑด์์ ๋ชจ๋ ์ ํ์ ๋๊ฐ๋ ํธ๋์ญ์
์ด ๋ฐ์ํ๋ ๊ฒ์ ๊ธ์งํ๊ฑฐ๋ ํ์ฉํ๋ ์กฐ๊ฑด์
๋๋ค. ์ด ๊ฒฝ์ฐ ์ด ์กฐ๊ฑด์ ALWAYS์
๋๋ค. ๊ณ์ฝ ์ฝ๋๊ฐ ์ฌ์ค์
๋๋ค. ๋ฐฐํฌ()๋ฅผ ํธ์ถํฉ๋๋ค.
setScript ๊ฑฐ๋๋น ์์๋ฃ 1400000/100000000 = 0.014 WAVES. Alice์ ์์ก์๋ 2.986 WAVES๊ฐ ๋จ์ ์์ต๋๋ค.
์ด์ Alice ๊ณ์ ์ ๋ ๋ณต์กํ ์ค๋งํธ ๊ณ์ฝ ๋
ผ๋ฆฌ๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค.
Ride4Dapps ์ด์ 2๊ฐ์ง ์๋ก์ด ์ฃผ์ ์ ํ์ด ํฌํจ๋ฉ๋๋ค.
- @์ฝ๋ฌ๋ธ(i) โ ๊ฑฐ๋๋ฅผ ํธ์ถ/์๋ช ํ ๊ณ์ ์ ๋ํ ๋ฐ์ดํฐ์ธ i๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํฉ๋๋ค. dApp ๊ณ์ ์ํ์ ๋ณํ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ์ด ๊ธฐ๋ฅ์ ๊ฒฐ๊ณผ์ ๋๋ค. ๋ค๋ฅธ ๊ณ์ ์ ์ด ์ฃผ์์ ์ฌ์ฉํ์ฌ ํธ๋์ญ์ ์ ์์ฑํ๊ณ ๊ธฐ๋ฅ์ ์คํํ๋ฉฐ dApp ๊ณ์ ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- @๊ฒ์ฆ์(tx) โ ํธ๋์ญ์ tx ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ํธ๋์ญ์ ๊ฒ์ฆ์. RIDE์ ์กฐ๊ฑด์ ๋ ผ๋ฆฌ์ ํด๋นํฉ๋๋ค. ์ด ํํ์ ํตํด dApp ๊ณ์ ์ ์ค๋งํธ ๊ณ์ฝ ๋ ผ๋ฆฌ์ ๋ํ ์ถ๊ฐ ๋ณ๊ฒฝ์ ํ์ฉํ๊ฑฐ๋ ๊ธ์งํ ์ ์์ต๋๋ค.
ํ์ dApp ๋ชจ๋ ์ฐธ๊ฐ์์ ๊ณตํต ์ง๊ฐ์ผ๋ก ๊ณ์ ์ ์ฌ์ฉํฉ๋๋ค.
ํ์ฌ ๊ทํ์ ๊ณ์ ์ ์ด๋ค ๊ณ์ฝ์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํ๋ ค๋ฉด ๋ธ๋ก ํ์๊ธฐ์์ ์ค๋งํธ ๊ณ์ฝ์ base64 ์ฝ๋๋ฅผ ๋ณต์ฌํ๊ณ ๋์ปดํ์ผ๋ฌ(
์ฐ๋ฆฌ๋ ์ค๋งํธ ๊ณ์ฝ์ ๋
ผ๋ฆฌ๊ฐ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ํ๋ ๊ฒ๊ณผ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
Alice์ ์์ก์๋ 2.972 WAVES๊ฐ ๋จ์ ์์ต๋๋ค.
์ด dApp์ ๋ฉ์ปค๋์ฆ์ ํตํด ๊ฐ ์ฐธ๊ฐ์๊ฐ ๊ณต๋ ๊ธฐ๊ธ์ ์ผ๋ง๋ ๊ธฐ์ฌํ๋์ง ์ถ์ ํฉ๋๋ค. ๋ฐ์ดํฐ ํธ๋์ญ์ โ DataEntry(currentKey, newAmount)์ฌ๊ธฐ์ currentKey๋ ์ ๊ธ ๊ธฐ๋ฅ์ ํธ์ถํ๋ ๊ณ์ ์ด๊ณ newAmount๋ ๋ณด์ถฉ๋ ์์ก์ ๊ฐ์ ๋๋ค.
Boob๊ณผ Cooper๋ 1 WAVES๋ก dApp ๊ณ์ ์ ์
๊ธํฉ๋๋ค.
์ค์๋ฅผ ํด์ ๊ฑฐ๋๊ฐ ์งํ๋์ง ์์ต๋๋ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๊ฐ Bob์ ๋์ ํ์ฌ ๊ฑฐ๋๋ฅผ ํ๊ณ ์๋ค๊ณ ํ์ ํ์์๋ ๋ถ๊ตฌํ๊ณ ์ง์์์ ์ค์๋ฅผ ํ์ฌ ์ค๋งํธ ๊ณ์ฝ์ด ์๋ ์ํ ๊ณ์ข๋ฅผ ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ฑฐ๋ ์์ ์๋๊ฐ ์คํจํ๋ฉด ์์๋ฃ๊ฐ ๋ถ๊ณผ๋ฉ๋๋ค. ์ ๊ฑฐํ ์ ์์ต๋๋ค! Alice์ ์์ก์๋ 2.972 WAVES๊ฐ ๋จ์ ์์ต๋๋ค. Bob์ 3๊ฐ์ WAVES๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Bob์ dApp ๊ณ์ ์ผ๋ก 1 WAVES๋ฅผ ๋ณด๋์ต๋๋ค.
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))
Bob์๊ฒ๋ 1.99 WAVES๊ฐ ๋จ์์ต๋๋ค. ์ฆ, Bob์ 0.01 WAVES ์ปค๋ฏธ์ ์ ์ง๋ถํ์ต๋๋ค.
Alice์ ์๊ณ ์๋ 2.972 WAVES๊ฐ ์์๋๋ฐ ์ง๊ธ์ 3.972์
๋๋ค. Alice ๊ณ์ ์๋ ๊ฑฐ๋๊ฐ ๋ฑ๋ก๋์์ง๋ง dApp ๊ณ์ (Alice)์์๋ ์์๋ฃ๊ฐ ๋ถ๊ณผ๋์ง ์์์ต๋๋ค.
Cooper๋ ๊ณ์ ์ ๋ณด์ถฉํ ํ Alice์ ์์ก์ 4.972 WAVES๊ฐ ๋์์ต๋๋ค.
๋ฐ์ดํฐ ํญ์ ๋ธ๋ก ํ์๊ธฐ์์ ๊ณตํต ์ง๊ฐ์ ๋ช ๊ฐ์ WAVES๋ฅผ ์์ ํ๊ณ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ฟ ํผ๋ ์ผ๋ฐ ์ง๊ฐ์ 1 WAVES ๊ธ์ก์ ๋จ๊ฒจ๋๋ ๊ฒ์ ๋ํด ๋ง์์ ๋ฐ๊ฟ์ ์ดํผ๋ํฐ์ ์ ๋ฐ์ ์ธ์ถํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ์ฒ ํ ๊ธฐ๋ฅ์ ํธ์ถํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฒ ํ ๊ธฐ๋ฅ์ ์์ ํ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์์ ๋ค๋ฅธ ์๋ช ์ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋ ํ๋ ธ์ต๋๋ค. RIDE4DAPPS์์ ์ค๋งํธ ๊ณ์ฝ์ ์ค๊ณํ ๋ ์ด ์ ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
Cooper๋ ์ด์ ๋์ฐจ๋์กฐํ์ 2.48๊ฐ์ WAVES๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ 3 WAVES - 1 - 0.01, ๊ทธ๋ฆฌ๊ณ + 0.5 - 0.01์ ๋๋ค. ๋ฐ๋ผ์ ์ ๊ธ ๋ฐ ์ถ๊ธ์ ์ํ ๊ฐ ํตํ ๋น์ฉ์ 0.01 WAVES์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก dApp ์์ ์ ํ ์ด๋ธ์ ํญ๋ชฉ์ด ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
Bob๋ ๊ณต์ ์ง๊ฐ์์ ๋์ ์ผ๋ถ ์ธ์ถํ๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง ์ค์๋ก 1.5 WAVES๋ฅผ ์ธ์ถํ๋ ค๊ณ ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ค๋งํธ ์ปจํธ๋ํธ๋ ์ด๋ฌํ ์ํฉ์ ๋ํ ์ ๊ฒ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์์ต๋๋ค.
Xena๋ ์ฌ๊ธฐ๊พผ์ ๋๋ค. ๊ทธ๋ ๋ ์ ์ฒด ๊ณ์ ์์ 1 WAVES๋ฅผ ์ธ์ถํ๋ ค๊ณ ํ์ต๋๋ค.
๊ทธ๋ ์๊ฒ๋ ํจ๊ณผ๊ฐ ์์์ต๋๋ค.
๋ค์ ๋ถ๋ถ์์๋ Alice dApp ๊ณ์ ์ ๋ถ์์ ์ฑ๊ณผ ๊ด๋ จ๋ ๋ณด๋ค ๋ณต์กํ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com