์๋ ํ์ธ์. eosBLACK ํ์ ๋๋ค.
์ด๋ฒ 4๋ฒ์งธ ๊ฐ๋ฐ์ผ์ง๋ eosBLACKKํ์ ์์ด์ ์กฐ๊ธ์ ๋ป ๊น์ ๋ด์ฉ์ผ๋ก ์์ฑํ๊ณ ์ ํฉ๋๋ค.
eosBLACK์์ ๊ฐ๋ฐํ MySQL ํ๋ฌ๊ทธ์ธ์ด EOSIO๊ฐ๋ฐ์ฌ์ธ ๋ธ๋ก์์ ๊ฐ๋ฐ์์ค ๊ณต์ ํ์ด์ง ๊นํ๋ธ(Github)์ ๋ฑ๋ก๋์์ต๋๋ค. ์ด๋ก์จ eosBLACK์ ์ด์ค์ค(EOSIO)์ ์ปจํธ๋ฆฌ๋ทฐํฐ(Contributor)๋ก ์ฐธ์ฌํ๊ฒ ๋์์ต๋๋ค. ์ฐธ๊ณ ๋ก eosBLACK์ด ๊ฐ๋ฐํ MySQL ํ๋ฌ๊ทธ์ธ์ eosio์ ์๊ฐ๋ ํ๋ฌ๊ทธ์ธ ์ค ์์์์์๋ ์ต์ด์ด์ ์ ์ธ๊ณ์์๋ 5๋ฒ์งธ๋ก, eosBLACKํ์ ๊ฐ๋ฐ๋ ฅ์ ๊ณต์์ ์ผ๋ก ์ธ์ ๋ฐ์ ๊ฒ์ผ๋ก ์๊ฐ๋๋ฉฐ, ๊ทธ ์๋ฏธ๊ฐ ๋จ๋ค๋ฅด๋ค๊ณ ์๊ฐ๋ฉ๋๋ค..
์ด๋ฒ ํฌ์คํ ์ eosBLACK ๊ฐ๋ฐํ MySQL ํ๋ฌ๊ทธ์ธ์ ํ์ฉํ์ฌ โํธ๋์ปค ๋ง๋ค๊ธฐโ ๋ผ๋ ์ฃผ์ ๋ฅผ ๊ฐ์ง๊ณ 3๋ถ์ ๊ฑธ์ณ ์ฐ์ฌํ ์์ ์ ๋๋ค. ์ด๋ฒ ์ฐ์ฌ๋ฅผ ํตํด EOSIO ์ํํธ์จ์ด์ ๊ตฌ์กฐ์ ๋ํ ์ดํด๊ฐ ์กฐ๊ธ ๋ ๋์ด์ง๋ ๊ณ๊ธฐ๊ฐ ๋ ์ ์์ง ์์๊น ๊ธฐ๋ํ๋ฉฐ ์ค๋์ ์ฒซ ๋ฒ์งธ๋ก EOSIO Plugin์ ์ญํ ์ ๋ฌด์์ด๋ฉฐ ์ด๋ค ๊ตฌ์กฐ๋ก ๋์ด ์๋์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Plugin์ด๋?
๊ฐ๋ฐ์๋ถ๋ค์ ๋๋ถ๋ถ ์ต์ํ๊ณ ๊ฑฐ๋ถ๊ฐ ์์ด ์ฐ๋ ์ฉ์ด์ด์ง๋ง ๊ฐ๋จํ ์ค๋ช ํ๊ณ ๋์ด๊ฐ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ปดํจํ ์์ ํ๋ฌ๊ทธ์ธ์ ๊ธฐ์กด ๊ธฐ๋ฅ์ ํน์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ์ํํธ์จ์ด ๊ตฌ์ฑ ์์์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์ ์๊ณ ์๋ ํ๋ฌ๊ทธ์ธ์ผ๋ก๋ ์น ๋ธ๋ผ์ฐ์ ์์ ํํ ๋ณผ ์ ์๋ Adobe Flash Player๊ฐ ์๊ฒ ๋ค์. ์ฆ, ํ๋ฌ๊ทธ์ธ์ ๋ฉ์ธ ํ๋ก๊ทธ๋จ์ ์ด๋ค ํน์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ์ถ๊ฐํ๋ ์ํํธ์จ์ด๋ฅผ ๋งํฉ๋๋ค.
EOSIO Plugin์ ์ญํ
ํ์ง๋ง, EOSIO์์ ํ๋ฌ๊ทธ์ธ์ ๋ฉ์ธ ์ํํธ์จ์ด์ด์ ํน์ ๊ธฐ๋ฅ ์ถ๊ฐ์ ์ญํ ๊น์ง ํฉ๋๋ค. EOSIO์ nodeos๋ฅผ ๋ค์ฌ๋ค๋ณด๊ธฐ ์ํด์ โeosio/programs/nodeosโ๊ฒฝ๋ก๋ฅผ ๋ณด๋ฉด โmain.cppโํ์ผ ํ ๊ฐ๋ง์ด ๋ค์ด์์ ๋ฟ์ ๋๋ค. ์ด ํ์ผ์ ์ด์ด ์ดํด๋ณด๋ฉด EOSIO์ ์จ๊ฐ ํ๋ฌ๊ทธ์ธ์ด ๋์ด๋ ๊ฒ์ ๋ณด์ค ์ ์์ต๋๋ค. ์ฆ, ๋ชจ๋ ๊ธฐ๋ฅ์ plugin์ผ๋ก ๊ตฌ์กฐํ/๋ชจ๋ํ๋ฅผ ํ ๊ฒ์ด๋ผ ๋ณผ ์ ์์ต๋๋ค. main.cpp์ main() ํจ์๋ฅผ ํ์ด๋ณด๋ฉด ๋ฌด์จ ๋ง์ธ์ง ๊ธ๋ฐฉ ์ดํด๊ฐ ๊ฐ ๊ฒ์ ๋๋ค.
์ ์ฝ๋์์ ๋ณด๋ฏ์ด main() ํจ์์์๋ ํ๋ฌ๊ทธ์ธ๋ค์ ๋ํ initialize ์์ ์ ํฉ๋๋ค. ํ์ ํ๋ฌ๊ทธ์ธ์ผ๋ก ์๋ ค์ง chain_plugin, producer_plugin์ ๋น๋กฏํด http_plugin, net_plugin ๋ฑ์ด ๊ธฐ๋ณธ์ผ๋ก ์ด๊ธฐํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ดํ app().startup() ๊ตฌ๋ฌธ์ด ์คํ๋๋ฉด, ๊ฐ ํ๋ฌ๊ทธ์ธ์ startup()์ด ์คํ๋๋ฉด์ node๊ฐ ๋์ํ๊ธฐ ์์ํฉ๋๋ค.
EOSIO Plugin ๋ง๋ณด๊ธฐ
ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐ์ ์น์ ํ๊ฒ๋ EOSIO๊ฐ ๋ฐฉ๋ฒ์ ์ ์ํด ์ฃผ๊ณ ์๋๋ฐ, โeos/pluginโ ๋๋ ํฐ๋ฆฌ ์์ โeosio-make_new_plugin.shโ๋ฅผ ์ด์ฉํ์ฌ ํ๋ฌ๊ทธ์ธ ํด๋์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์์ ๊ฐ์ด ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ฉด ์๋์ ๊ฐ์ 2๊ฐ์ ํ์ผ์ด $pluginName ๊ณผ ๊ฐ์ ์ด๋ฆ์ ๋๋ ํฐ๋ฆฌ์ ํจ๊ป ์์ฑ๋ฉ๋๋ค.
$pluginName/include/eosio/$pluginName/$pluginName.hpp
$pluginName/$pluginName.cpp
์ด ํ๋ฌ๊ทธ์ธ ํ ํ๋ฆฟ์ โeosio/plugins/plugin_templateโ๋๋ ํฐ๋ฆฌ ์์ ์๋ 2๊ฐ์ ํ์ผ์ copy ํ ๊ฒ๋ค์ธ๋ฐ ํค๋ ํ์ผ์ ๋ด๋ถ๋ฅผ ๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
main.cpp ํ์ผ์ code ์์ ๋ณธ ๊ฒ์ฒ๋ผ plugin_initialize()๋ app().initialize() ํจ์ ์คํ ์์ plugin_startup()์ app().startup() ๊ตฌ๋ฌธ์ ์คํ ์์ ์คํ๋๋ ๋ถ๋ถ์ ๋๋ค. plugin_initailize() ๋ถ๋ถ์์๋ nodeos ์คํ ๋ ๋ฐ์์ผ ํ parameter ๋ค์ ํ์ธํ๊ณ ์ฒ๋ฆฌํ๋ ๋ด์ฉ๋ค์ด ๋ค์ด๊ฐ๋๋ค. ๋ค๋ฅธ plugin๋ค์ ์ฐธ์กฐํ๋ฉด ์ดํดํ๊ธฐ๊ฐ ๋ ์ฌ์ธ ํ ๋ฐ์. ์๋ฅผ ๋ค์ด, mongo_db_plugin ๋ฑ์ ์ฐธ์กฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ตฌ์ฒด์ ์ธ ๊ตฌํ ๋ด์ฉ์ ๋ํ ๋ถ๋ถ์ _plugin ํด๋์ค๊ฐ ์๋ _plugin_impl ํด๋์ค๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด ๊ตฌํํ๊ฒ ๋ฉ๋๋ค. ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์ ์ฌ๋ฌ ๊ฐ์ง ๊ตฌํ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง nodeos๋ก ๋ถ ํฐ ๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ์ํ๋ค๋ฉด ๋ค์์ signal๋ค์ ์ฐธ์กฐํ์๊ธฐ ๋ฐ๋๋๋ค.
์ด signal ์ค์์ ์ฝ๊ฒ ์ดํดํ ์ ์๋ 4๊ฐ์ง signal์ ์์ ํ์ํ์ต๋๋ค. node์ ๋์ ์์๋๋ก ํ์๋ฉด applied_transaction, accepted_transaction, accepted_block, irreversible_block ์์์ ๋๋ค. Transaction์ accept, ๋ธ๋ก ์์ฑ accept, ์ดํ ๋ธ๋ก์ด ๋น๊ฐ์ญ ๋ธ๋ก์ผ๋ก ๋ณํ๋๋ ๊ณผ์ ์์ ๋์ค๋ ๋ฐ์ดํฐ๋ค์ ํ์ธํด ๋ณผ ์ ์์ด์ nodeos์ ์ด๋ค ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ nodeos๋ก ๋ถํฐ ๋์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ๊ณ ์ ํ ๋, Plugin ๊ฐ๋ฐ์ ์๊ฐํด ๋ณผ ์ ์์ต๋๋ค.
1.1.x ๋ฒ์ ๊น์ง๋ ํ๋ฌ๊ทธ์ธ์ด ์์ค๋ด์ ํฌํจ๋์์ผ๋ 1.2.x ๋ฒ์ ์ดํ๋ก plugin์ ์ถ๊ฐ์ ์ธ(additional) ๊ฐ๋ฐ์ด ๋์ด ๋น๋ ๋ฐฉ๋ฒ๋ ๋ณ๊ฒฝ๋์๊ณ EOSIO์ ์์ค ๋ด์ ํฌํจ๋์ง ์์ต๋๋ค. ๋ณ๊ฒฝ๋ ๋น๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ต๋๋ค.
EOSIO 1.2.X ์ด์
ํ๋ฌ๊ทธ์ธ ๋๋ ํฐ๋ฆฌ๋ฅผ EOSIO ์์ค ๋ด์ ์์ฑํ๊ณ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ ๊ฐ์ด ์์ ํ์ฌ ํฌํจ์์ผฐ์ต๋๋ค.
EOS 1.2.x ์ดํ
์๋์ ๊ฐ์ด eosio_build.sh ํ์ผ์ ์๋ ๋ณ์ ํ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ๋น๋ ์ค๋น๊ฐ ๋ฉ๋๋ค.
nodeos ์คํ ์์ ํ๋ฌ๊ทธ์ธ์ ํฌํจ์ํค๊ธฐ ์ํด์๋ ์ต์ ์ ์ถ๊ฐํด ์ฃผ๋ฉด ๋ฉ๋๋ค.
์ฌ๊ธฐ๊น์ง EOSIO ์์์ ํ๋ฌ๊ทธ์ธ ์ญํ ๊ณผ ๊ตฌ์กฐ, nodeos์ ํฌํจ์ํค๋ ๋ฐฉ๋ฒ๊น์ง ๊ฐ๋ตํ ์ค๋ช ํ์ต๋๋ค. ๋ค์ ํฌ์คํ ์์๋ ์ค์ ํ๋ฌ๊ทธ์ธ์ ์ ์์ ๋ํด์ ์๊ฐํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
eosBLACK ํ ๋๋ฆผ.
eosBLACK Contact:
eosBLACK Homepage
eosBLACK Koreos
eosBLACK Medium
eosBLACK steemit
eosBLACK Facebook
eosBLACK twitter
eosBLACK Telegram(Korean)
eosBLACK Telegram(English)
White Paper (Chinese)
White Paper (Korean)
White Paper (English)