Open Source Blockchain Engine์ธ It-chain ์ ์ธ๋ฒ์งธ ํฌ์คํธ์ ๋๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ IT-CHAIN์์ Smart Contract ์ ๋ฐฐํฌ์ ์คํ์ ๋ด๋นํ๋ IVM COMPONENT์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
It-chain ์์๋ icode๋ผ ๋ถ๋ฆฌ๋ smart contract์ ๋ฐฐํฌํ ์ ์์ผ๋ฉฐ, It-chain ์์์ ์ผ์ด๋๋ Transaction ์ด ๋ดํฌํ๋ ์๋ฏธ๋ ๋ฐ๋ก ์ด๋ค ๋ ธ๋์์ ์ด๋ค smart contract์ ์ด๋ค ํจ์๋ฅผ ์คํ์์ผฐ๋๊ฐ์ ๊ดํ ์ ๋ณด์ด๋ฉฐ ๊ทธ ๊ตฌ์กฐ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
icodeId: _icodeid,
type: invoke | query
function: _functionName
}
์ฌ๊ธฐ์ ํธ๋์ญ์ ์ ์คํ์ํจ๋ค๋ ๊ฒ์ ํด๋นํ๋ icode ์๊ฒ ํน์ ์์ฒญ์ ์ ๋ฌํ๋ ๊ฒ์ ๋๋ค.
transaction์ ์ข ๋ฅ์๋ invoke์ query๊ฐ ์๋๋ฐ, ์ฌ๊ธฐ์ invoke๋ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ์์ ์ด๊ณ query๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์์ ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๊ฐ ์์ด์ฝ๋๋ ํน์ ํจ์์ ๋ํ handler๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ํน์ ํจ์๋ฅผ ์คํํ๋ฉด ๊ทธ์ ๋งค์นญ๋๋ ํธ๋ค๋ฌ๊ฐ ๋์ํ์ฌ ์์ด์ฝ๋ ๋ด์์ ์ผ๋ จ์ ์์ ์ด ์ผ์ด๋๊ฒ ๋ฉ๋๋ค.
๊ฐ ๋ ธ๋์์ ๋ฐฐํฌ๋ Smart contract์ธ icode ๋ค์ ์์ ์ ๊ณ ์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ git repository์ ์์ฅ๋๋ฉฐ, ์ด๋ค ๋ ธ๋์์ ํน์ icode๋ฅผ ์คํํ๊ธฐ ์ํด์๋ git repository์์ ํด๋น icode ๋ฅผ ๋ฐ์์์ ์์ ์ ๋ ธ๋์ docker container๋ฅผ ๊ตฌ์ถํ์ฌ ๊ทธ ๋ด๋ถ์์ icode๋ฅผ ์คํ์ํต๋๋ค.
์ฆ, ์๋ก์ด ์ค๋งํธ ์ปจํธ๋์ด ์์ฑ๋๋ฉด ์ด๋ ํน์ git repository ๋ก ์ ๋ก๋๋๊ณ ์ฌ์ฉ๋๊ธฐ ์ ๊น์ง ํด๋น git repository์ ์ ์ฅ๋์ด ์์ต๋๋ค.
๋ธ๋ก์ฒด์ธ ๋ ธ๋์์ ์ฌ๋ฌ๊ฐ์ icode ๊ฐ ํ๋์ ๋ ธ๋์์ ์คํ๋์ด์ผ ํ๋ฉฐ, ๊ฐ icode๋ ์๋ก์๊ฒ ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๊ธฐ ์ํด์ ๊ฐ icode๊ฐ ์คํ๋๋ ํ๊ฒฝ์ ๊ฐ์ํํ์ฌ ๋ ๋ฆฝ์ํฌ ํ์์ฑ์ด ์๊ธฐ๊ฒ ๋์์ผ๋ฉฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด it-chain ์์๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ์ ์ธ Docker ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
Docker ๋ ํ๋์ ๋ ธ๋์์ ์ฌ๋ฌ๊ฐ์ ๋ ๋ฆฝ ์คํ ํ๊ฒฝ์ ๊ตฌ์ฑํด ์ค ์ ์์ผ๋ฉฐ, ๊ฐ ์คํํ๊ฒฝ์ Container๋ผ๋ ๋จ์๋ก ๋ถ๋ฆ ๋๋ค.
IVM์์ ๊ฐ icode๋ ๊ฐ๊ฐ ์ ๋ง๋ค์ ๋ ๋ฆฝ๋ ์คํ๊ณต๊ฐ์ธ Container ๋ฅผ ๊ฐ์ง๋ฉฐ it-chain์์๋ ๊ฐ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ณ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Tesseract ๋ผ๋ ๋ ์์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ, Tesseract ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ ์ปจํ ์ด๋์ DB์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ ฅํ๋ ์์ ์ ์ํํฉ๋๋ค.
Smart Contract ์ด๋ ์ฌ์ฉ์๊ฐ ํน์ ํจ์๋ ์์ฒญ์ ์ ๋ฌํ์์ ๋ ํญ์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๋ ์ผ์ข ์ ๋ธ๋๋ฐ์ค๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. icode๋ docker์์์ ๋์ํ๋ฉฐ ์์ invoke ๋ฑ์ ์ฒ๋ฆฌํจ์ ์์ด sdk์ ํจ์๋ค์ ์ฌ์ฉํ๋๋ฐ ์ฌ๊ธฐ์ sdk๋ ivm์ tesseract์๊ฒ grpc ํต์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ ์ฝ๋ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋จผ์ , icode ์ ๊ฐ ํจ์๋ transaction์ ๋ง๋ค์ด๋ด๊ณ ์ด tx๋ ๋ฆฌ๋์๊ฒ ์ ๋ฌ๋ฉ๋๋ค.
๋ฆฌ๋๋ tx๋ฅผ ๋ฐ์ ๋ธ๋ก์ ๋ง๋ค๊ณ ํด๋น ๋ธ๋ก์ ๋ฐ์ ๋ด๋ถ์ ์๋ tx๋ฅผ ์คํ์ํด์ผ๋ก์ ์ค์ icode ๊ฐ ์คํ์ด ๋ฉ๋๋ค.
ํ์ฌ ์์ฒด์ธ ํ์ ๊ณ์ํด์ icode์ ์คํ์ ์ ํจ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ค์ํ ์๋๋ค์ ํ๊ณ ์์ต๋๋ค.
๊ฐ๋ น, ํ์ฌ it-chain์ transaction ๋ด์ ์์ ํจ์๋ก ์ธํด ๊ฐ ๋ ธ๋์์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๋ฑ ๋ ธ๋ ๋ณ๋ก ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ง๊ณ ๊ณต์ ํ๊ธฐ ์ํ ์ฐ๊ตฌ์ ์๋๋ฑ์ด ์์ผ๋ฉฐ, it-chain ํ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ ๋ ธ๋์์ ์์ฑ๋ ๋ธ๋ก์ transaction ๋ค์ ๋ฐ๋ก ์คํ์ํค๊ณ ๋ฐ์ํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ํ๋ฒ ๊ฐ transaction์ ์คํ์ํจ ๋ค ์๋๋ฐฉ์ด ์คํ์ํจ ๊ฒฐ๊ณผ๊ฐ๊ณผ ๋์ ๊ฒฐ๊ณผ๊ฐ์ด ์ผ์นํ ๋์๋ง icode ๋ฅผ ์คํ์ํค๋ ๋ฑ์ ์ฅ์น๋ฅผ ๊ตฌํ์ค์ ์์ต๋๋ค.
์คํ๋ ์ค๋งํธ ์ปจํธ๋ํธ๋ ๊ฐ ๋ ธ๋์ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค๊ณ ๋ณ๊ฒฝ๋ ์ํ๋ค์ ๊ฐ ์ปจํ ์ด๋๊ฐ ์ ๊ทผํ ์ ์์ด์ผ ํ๊ธฐ์ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ ์ํ๊ฐ ์ ์ฅ ๊ณต๊ฐ์ด ํ์ํ๊ฒ ๋์์ผ๋ฉฐ ์ด๋ฅผ World State Database ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
it-chain์์ world state database ๋ ํค๋ฐธ๋ฅ DB ์ธ Level DB๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋์์ต๋๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ It-chain ๋ด์์ Smart Contract์ ๋ฐฐํฌ ๋ฐ ์คํ, ๊ด๋ฆฌํ๋ IVM Component์ ๋ํด ์์๋ณด์์ต๋๋ค.
๋ค์ ํฌ์คํธ์์๋ it-chain์์ ๋ ธ๋์ ์ธ์ฆ์ ๋ด๋นํ๋ Authentication์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
It-chain: https://github.com/it-chain/engine
Opensource Blockchain Engine It-chain ์๋ฆฌ์ฆ
์ด ์ ์๋ฌผ์ ํฌ๋ฆฌ์์ดํฐ๋ธ ์ปค๋จผ์ฆ ์ ์์ํ์-๋น์๋ฆฌ-๋ณ๊ฒฝ๊ธ์ง 4.0 ๊ตญ์ ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ์ด์ฉํ ์ ์์ต๋๋ค.
LNH