์๋ผ์คํ ์ค ์ปค๋ฎค๋ํฐ์์ KP Wood๊ฐ ์๋ผ์คํ ์ค DAPP์ ๊ดํ ๋์์ํํ ๋ฆฌ์ผ์ ์ ์ํ์ฌ ๊ทธ ๋ด์ฉ์ ๊ณต์ ํฉ๋๋ค.
์๋ผ์คํ ์ค DAPP ๋์ ์ธ๋ถ์ ๋จ์ ๋ ๊ฐ์๋จธ์ ํ๊ฒฝ(Elastos Runtime)์์ ๊ตฌํ๋๋ฏ๋ก ๊ทผ๋ณธ์ ์ผ๋ก ํดํน์ด ๋ถ๊ฐ๋ฅํ ์ฐจ๋ณ์ฑ์ ์ง๋๊ณ ์์ต๋๋ค.
๋ํ ์๋ผ์คํ ์ค DAPP์ ๊ฒ์ผ๋ก ๋ณด๊ธฐ์ ์ผ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ ์ ๋ ํต์ ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๊ณ ์๋์ง, ๋๋ ๋ธ๋ก ์ฒด์ธ์ด ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง ์์ง ๋ชปํฉ๋๋ค.
์ผ๋ฐ ์๋น์๋ ์์ ์ด ์ฌ์ฉํ๋ ์ฑ์ ๋์์๋ง ๊ด์ฌ์ด ์์ต๋๋ค.
์์๋ฅผ ๋ค์๋ฉด ์ ํ์ํ ์ฑ์ ๋ธ๋ก์ฒด์ธ์ด ์ ๋ชฉ๋๋ค๊ณ ํด์ ๊ธฐ์กด์ ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ์ธ๊ด, ๊ธฐ๋ฅ์์ผ๋ก ์ฐจ์ด๋ฅผ ๋ณด์ธ๋ค๋ฉด ์๋น์๋ค์ ์ ํ์ํ ์ฑ์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ ๋๋ค.
๋๋ฌธ์ ์๋ผ์คํ ์ค๋ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ์ ์นํ์ ์ธ ๋ธ๋ก์ฒด์ธ ๊ธฐ๋ฐ ์ฑ์ ๋ง๋๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํฉ๋๋ค.
์๋ก ์ ์ฌ๊ธฐ๊น์งํ๊ณ ... ํํ ๋ฆฌ์ผ ๋์์์ ์ฌ๋ฆฝ๋๋ค ใ ใ
์๋ผ์คํ ์ค ํํ ๋ฆฌ์ผ ๋์์์ ๋์์์ ๋ณด์๋ฉด์ ์๋ผ์คํ ์ค DAPP์ด ์ด๋ค ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์๋์ง ์ดํดํ๋ฉด์ ๋ฐ๋ผํ์ค ์ ์๊ฒ ์ ์๋์์ต๋๋ค(๋ค๋ง ์์ด๊ฐ ํ์ํฉ๋๋ค..ใ ใ )
ํํ ๋ฆฌ์ผ๋ก ๊ฐ๋จํ ์๋ผ์คํ ์ค ์ด๊ธฐ๋ฒ์ ์ DAPP์ ๊ฒฝํํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์๋์๋ ํํ ๋ฆฌ์ผ๋ก ์ ๊ณต๋์ด์ง๋ ์๋ผ์คํ ์ค ๊ธฐ๋ณธ DAPP์ ๋ํ ์ค๋ช ์ ์์ฑํ์์ต๋๋ค.
Repo : https://github.com/elastos/Elastos.Trinity
<์๋ผ์คํ ์ค์ ํธ๋ฆฌ๋ํฐ ๋ธ๋ผ์ฐ์ >
Elastos ๋ธ๋ผ์ฐ์ ๋ ํ์ฌ Android ๊ธฐ๊ธฐ ์ ์ฉ์ผ๋ก๋ง ๋น๋ ๋์ง๋ง ํฅ ํ iOS, Mac, Windows ๋ฑ ๋ค๋ฅธ ํ๋ซํผ์์ ์ง์ ๋ ์์ ์ ๋๋ค. ํธ๋ฆฌ๋ํฐ๋ ์ฌ๋ฌ ์ด์์ฒด์ ์์ ์คํํ ์ ์๋ ๊ต์ฐจ ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ๋ ๊ฒ์ ๋ชฉํ๋กํ๋ ํ๋ก์ ํธ ์ด๋ฆ์ ๋๋ค. ๋ํ Android, iOS, Windows, Mac ๋ฑ ํด๋์ ์ธํฐ๋ท์์ ์๋ผ ๋์ค ์ธํฐ๋ท์ผ๋ก ์ฐ๊ฒฐ๋๋ ์ ๊ตฌ์ ๋๋ค.
<์๋ผ์คํ ์ค ํธ๋ฆฌ๋ํฐ ๋ด๋ถ์ DAPP>
ํธ๋ฆฌ๋ํฐ๋ ์ฑ ์คํ ์ด์์ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ํด๋ํฐ์ ์ง์ ์ค์นํ ์ ์๋ ์ผ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ์ ๋๋ค. ์ด ์ฑ์ Cordova/Ionic ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ DApp์ ๋ก๋ํ๊ณ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ฑ์ ํธ์คํธ ์์คํ ๊ณผ ๊ฐ์๋จธ์ ์ฌ์ด๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ DAPP์ ์์ ์ ํ๊ฒฝ์ ๊ตฌํํ๋ Elastos Runtime ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋ผ์คํ ์ค ๋ฐํ์์ ํตํด ๋์งํธ ์์ฐ ๋ฐ ์ฌ์ฐ๊ถ์ ๋ณดํธํ ์ ์์ต๋๋ค.
์ด ๋ธ๋ผ์ฐ์ ์์ ์คํ ์์ค Chromium ํ๋ก์ ํธ๋ ๋ ๋๋ง ๋ฐ ์คํ์์ํ ๊ธฐ์ ํ๋ ์ ์ํฌ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Elastos ํ๋ ์ ์ํฌ, ์๋ ๋ฐ์ค ๋ฉ์ปค๋์ฆ, ์ก์ธ์ค ๊ถํ ๊ด๋ฆฌ, ๊ธฐ์กด ์ธํฐ๋ท ํต์ ๋ฐฉ๋ฒ (์ : http / https) ๋ฐ CAR (Component Assembly Runtime) ๊ตฌ์ฑ ์์์ ๋นํ์ฑํ๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ๋ํ HTML5 Elastos DApp๊ฐ ์คํ๋๋ ํ์ค elastos ๋ฐํ์์ ๊ตฌํํ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Trinity ๋ธ๋ผ์ฐ์ ์ ์ฃผ์๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ์ ํ์ผ ์์คํ : ๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์๋ ์ํธํ ๋ ๊ฐ์ ํ์ผ ์์คํ ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ๋ชจ๋ DApp ๋ฐ DApp ํ์ผ ๋ฐ์ดํฐ๋์ด ๊ฐ์ ํ์ผ ์์คํ ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒํ๋ฉด ์ธ๋ถ์์ ๋ฐ์ดํฐ์ ์ก์ธ์ค ํ ์ ์๊ฒ๋ฉ๋๋ค.
DApps ๊ฐ์ ๊ฒฉ๋ฆฌ : ๊ฐ์ ํ์ผ ์์คํ ์์ ์ก์ธ์ค ๊ฒฝ๋ก ๊ถํ์ DApp์ ID์ ๋ฐ๋ผ ์ค์ ๋๋ฉฐ ํ์ผ ์ก์ธ์ค ๊ถํ์ ์ค์ ํ๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋ฐํ์ ๊ฒฉ๋ฆฌ : ์ก์ธ์ค ์ ์ด์ ํจ๊ป ํ๋ก์ธ์ค์ ์์ฐ ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ํ์ฉํ์ฌ ๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ๋ณ๋์ ํ๋ก์ธ์ค๋ฅผ ์ง์ํฉ๋๋ค.
http / https ํ๋กํ ์ฝ ๋นํ์ฑํ : ๋ธ๋ผ์ฐ์ ๊ฐ http / https ํ๋กํ ์ฝ์ ์์ ํ ๋นํ์ฑํํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ธํฐ๋ท์ ์ด๋ค ๋คํธ์ํฌ ํจํท๋ ๋ณด๋ผ ์ ์์ผ๋ฉฐ ๋์ ์ elastos ์บ๋ฆฌ์ด์ ์์ฒญ์ ์ ๋ฌํด์ผํฉ๋๋ค
Dittobox Server Repo : https://github.com/elastos/Elastos.DittoBox.Server
Dittobox Android APP Repo : https://github.com/elastos/Elastos.DittoBox.Android
<์ด๋์๋ ์์ ํ๊ฒ ํ์ผ์ ์์ธ์ค ํ ์ ์๋ Dittobox>
Dittobox๋ ๋์ค์ ๋ชจ๋ฐ์ผ์ด๋ ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ Elastos Carrier๋ฅผ ํตํด ์ก์ธ์ค ํ ์์๋ ๊ฐ์ธ ํ์ผ, ๋์งํธ ์์ฐ ๋ฑ์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉํ ์์๋ ๊ฐ์ธ์ฉ ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ๋ก ์๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ชจ๋ฅผ ๋๋ด๋ ค๋ฉด dittobox ์๋ฒ๋ฅผ ์ปดํจํฐ์ ๋์ปค ์ปจํ ์ด๋์์ ์คํํ ์ ์์ง๋ง ๋ผ์ฐํฐ ๋ค์ ์๋ ๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด ์ปดํจํฐ์์ ์ง์ ์คํํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ผ์คํ ์ค ์บ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ธ๊ณ ์ด๋ ๊ณณ์์ Dittobox ์๋ฒ์ ๋ชจ๋ ํ์ผ์ ์ก์ธ์ค ํ ์ ์์ต๋๋ค.
Elastos Carrier๋ ๊ณ์ ๋ฐ ์ํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ผ๋ฉฐ ์ก์ธ์ค ์ธ์ฆ๋ง ์ ๊ณตํฉ๋๋ค. ์ฆ, ๋ฐฐํฌ๋ ๊ฐ์ธ ํด๋ผ์ฐ๋ ์๋น์ค์ ํด๋ํฐ์ผ๋ก ์ก์ธ์คํ ๋ ๋ ธ๋ ๊ฐ ๊ด๊ณ๋ Carrier API๋ฅผ ํตํด ์ค์ ํด์ผ ํฉ๋๋ค. ํด๋ํฐ๊ณผ ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ ์๋น์ค๋ "ํ์ด๋ง ์ฝ๋"๋ฅผ ํตํด ํ์ด๋ง๋์ด์ผ ํฉ๋๋ค. ํ์ด๋ง์ด ์๋ฃ๋๋ฉด ํด๋ผ์ด์ธํธ ์ธก์์ ๊ฐ์ธ ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฌ์ฉ์๋ ๋๋ผ์ด๋ธ์ ์ค์ ๋ก ์ก์ธ์คํ๊ธฐ ์ํด ์ฌ๋ฐ๋ฅธ ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ธ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ธ์ฆ์ ๋ ๋ฐฐ๊ฐ ๋ฉ๋๋ค. ๋จผ์ ํ์ด๋ง ์ธ์ฆ๊ณผ ํด๋ผ์ฐ๋ ๋๋ผ์ด๋ฒ ์ฌ์ฉ์ ๊ณ์ ์ธ์ฆ์ ๋๋ค.
Wallet SDK Repo: https://github.com/elastos/Elastos.RT.SDK.Wallet.Android
Elastos Mobile Wallet Repo: https://github.com/elastos/Elastos.ORG.Wallet.Mobile
"Elastos Wallet DAPP Demo"
Wallet DAPP ๋ฐ๋ชจ์๋ ๋ฉ์ธ์ฒด์ธ ํตํ ELA๋ฅผ ์ ์ฅํ ์ ์๊ณ , ์๋ผ์คํ ์ค ๋ด์ ๋ค์ํ ์๋น์ค์ ์ฑ์ ์ ์ ๊ถํ์ ๋ถ์ฌํ๋ ID ์ฌ์ด๋์ฒด์ธ์ผ๋ก ELA๋ฅผ ์ ์กํ ์ ์๋ ๋ด์ฅํ ์ง๊ฐ๋ ํฌํจ๋์ด ์์ต๋๋ค. ์ ์ง๊ฐ์ ๋ง๋ค๊ฑฐ๋ ๊ธฐ์กด ์ง๊ฐ์์ ๊ฐ์ ธ์ฌ ์๋ ์์ต๋๋ค. ๋ฐ๋ชจ ๋ฒ์ ์ด๋ฏ๋ก ํ์ฌ ์๋ผ์คํ ์ค ๋ธ๋ก์ฒด์ธ์๋ ์ฐ๊ฒฐ๋์ง ์๊ณ ํ ์คํธ ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด์๋ ์ํ์ ๋๋ค. Wallet ๊ตฌ์ฑ ์์๋ ์ง๊ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ํธ๋์ญ์ ์ ์์ฑํ๊ณ ์ ์กํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ Elastos SPV๋ฅผ ๊ฐํธํ ํ์์ต๋๋ค.
๋ฐ๋ชจ๋ฒ์ ์ ์ง๊ฐ์ Elastos๊ฐ ์ด๋ค ์ข ๋ฅ์ ์ง๊ฐ์ ๋ง๋ค ์ ์๋์ง ๋ณด์ฌ์ฃผ๋ ์์ฃผ ์ด๊ธฐ ๋ฒ์ ์ DAPP์ ๋๋ค. ์ฒซ๋ฒ์งธ ๊ธฐ๋ฅ์ผ๋ก ELA๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ํฌํจํ๊ณ ์๊ณ ๋๋ฒ์งธ๋ก "IdChain"์ด๋ผ๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ID์ฒด์ธ์ Elastos ์ธํฐ๋ท ์์ ์ ์ํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋ ์ด์ฉํ์ฌ ๋ถ์ฐํ๋ ID๋ฅผ ๋ฐ๊ธํ๋ ์ฌ์ด๋์ฒด์ธ์ ๋๋ค. ID ๋ฐ๊ธ์์ฒด๋ ๋ฌด๋ฃ์ง๋ง ID ์ฌ์ด๋์ฒด์ธ์ ํธ๋์ญ์ ์ ์์ฑํด์ผํ๋ ๊ฒฝ์ฐ Elastos ๋ฉ์ธ ์ฒด์ธ๊ณผ ํตํฉ๋์ด ์์ผ๋ฏ๋ก ELA์ ์ผ๋ถ ๊ฑฐ๋ ์์๋ฃ๊ฐ ์๋น๋ฉ๋๋ค. DAPP๋ค์ ์ ์ ์ ๋ํ ID๊ฐ ํ์ํ๋ฏ๋ก ID ์ฌ์ด๋์ฒด์ธ์ ํธ๋์ญ์ ์ ์์ฑํ๊ฒ ๋๊ณ ์ด ๋ ์๋ผ์คํ ์ค ์ง๊ฐ์ ์๋์ผ๋ก ์ด ID ์ฌ์ด๋์ฒด์ธ ์ง๊ฐ์์ ํธ๋์ญ์ ์์๋ฃ์ ํ์ํ ELA ๊ธ์ก์ ์ค์ ๋๋ค. ์ด๋ ์๋ธ์๋ ์ ๊ฐ๋ ์ฃผ์ ์์ง์ ๋๋ค.
์์ผ๋ก ๋ชจ๋ฐ์ผ ์ง๊ฐ์ ELA ๋ฟ๋ง ์๋๋ผ ์ถ๊ฐ ์ฌ์ด๋์ฒด์ธ ํ ํฐ์ ๊ฐ์ ์ง๊ฐ์ ์ ์ฅํ ์ ์์ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ชจ๋ Elastos ์ฌ์ด๋์ฒด์ธ ํ ํฐ๋ ํฌํจ๋ ์ ์์ต๋๋ค.
์ง๊ธ๊น์ง "Elastos Alpha๋ฅผ ์ด์ฉํ ์๋ผ์คํ ์ค DAPP ๋ ๋น๋ํ๊ธฐ"์ด์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ^^