์๋
ํ์ธ์. ์ ๋ DRD KP ํ๋ก์ ํธ(ํ ์ธํธ์ ์๋ช
์ฃผ๊ธฐ ๋ชจ๋ํฐ๋ง์ ์ํ ๋ถ์ฐ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ) ํ์์ ์ผํ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์์๋ ๊ธฐ์ ์ ์ ์ฝ ํ์ ์ด ํ๋ก์ ํธ๋ฅผ ์ํ ์ํฐํ๋ผ์ด์ฆ ๋ธ๋ก์ฒด์ธ์ ๊ฐ๋ฐํ ์ฐ๋ฆฌ ํ์ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค. ๋๋ถ๋ถ Hyperledger Fabric์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ง๋ง, ์ฌ๊ธฐ์ ์ค๋ช
๋ ์ ๊ทผ ๋ฐฉ์์ ํ๊ฐ๋ ๋ชจ๋ ๋ธ๋ก์ฒด์ธ์ ์ ์ฉํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ ์ฐ๊ตฌ์ ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ์ต์ข
์ ํ์ด ์ฌ์ฉํ๊ธฐ ์ฆ๊ฒ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋๋ฌด ์ด๋ ต์ง ์์ ๋ฐฉ์์ผ๋ก ์ํฐํ๋ผ์ด์ฆ ๋ธ๋ก์ฒด์ธ ์๋ฃจ์
์ ์ค๋นํ๋ ๊ฒ์
๋๋ค.
๋ฐ๊ฒฌ์ด๋ ์์์น ๋ชปํ ํด๊ฒฐ์ฑ
์ ์์ ๊ฒ์ด๋ฉฐ, ์ฌ๊ธฐ์๋ ์ด๋ค ๋
ํนํ ๊ฐ๋ฐ๋ ๋ค๋ฃจ์ง ์์ ๊ฒ์
๋๋ค(์๋ํ๋ฉด ์ ๋ ๊ทธ๊ฒ๋ค์ ๊ฐ๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค). ๋๋ ๋จ์ง ๋ด ๊ฒธ์ํ ๊ฒฝํ์ ๊ณต์ ํ๊ณ "๊ฐ๋ฅํ๋ค"๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์๋ง๋ ๋๊ธ์์ ์ข์ ๊ฒฐ์ ๊ณผ ๊ทธ๋ ์ง ์์ ๊ฒฐ์ ์ ๋ด๋ฆฐ ๋ค๋ฅธ ์ฌ๋์ ๊ฒฝํ์ ๋ํด ์ฝ๊ณ ์ถ์ ๊ฒ์
๋๋ค.
๋ฌธ์ : ๋ธ๋ก์ฒด์ธ์ ์์ง ํ์ฅ ๊ฐ๋ฅํ์ง ์์ต๋๋ค.
์ค๋๋ ๋ง์ ๊ฐ๋ฐ์๋ค์ ๋ ธ๋ ฅ์ ๋ธ๋ก์ฒด์ธ์ ์๋ฆ๋ค์ด ํฌ์ฅ์ ๋ด๊ธด ์ํํญํ์ด ์๋ ์ ๋ง ํธ๋ฆฌํ ๊ธฐ์ ๋ก ๋ง๋๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค. ์ํ ์ฑ๋, ๋๊ด์ ๋กค์ , ํ๋ผ์ฆ๋ง ๋ฐ ์ค๋ฉ์ด ์ผ๋ฐํ๋ ์ ์์ต๋๋ค. ํ์ผ. ์๋๋ฉด TON์ด ๋ค์ XNUMX๊ฐ์ ๋์ ์ถ์๋ฅผ ์ฐ๊ธฐํ๊ณ ๋ค์ ํ๋ผ์ฆ๋ง ๊ทธ๋ฃน์ด ๋ ์ด์ ์กด์ฌํ์ง ์๊ฒ ๋ ์๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ ๋ค๋ฅธ ๋ก๋๋งต์ ๋ฏฟ๊ณ ๋ฐค์ ํ๋ฅญํ ๋ฐฑ์๋ฅผ ์ฝ์ ์ ์์ง๋ง ์ง๊ธ ์ฌ๊ธฐ์๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ๊ฐ์ง๊ณ ๋ญ๊ฐ๋ฅผ ํด์ผ ํฉ๋๋ค. ์ผ์ ๋๋ด์ธ์.
ํ์ฌ ํ๋ก์ ํธ์์ ์ฐ๋ฆฌ ํ์ ํ ๋น๋ ์์ ์ ์ผ๋ฐ์ ์ธ ์ฉ์ด๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ ๋ขฐ ๊ด๊ณ๋ฅผ ๊ตฌ์ถํ๊ณ ์ถ์ง ์์ ์์ฒ ๋ช ์ ๋ฌํ๋ ๋ง์ ์ฃผ์ ๊ฐ ์์ต๋๋ค. ํน๋ณํ ์ฑ๋ฅ ์๊ตฌ ์ฌํญ ์์ด ์ผ๋ฐ PC์์ ์๋ํ๊ณ ์ค์ ์ง์ค์ ํ๊ณ ์์คํ ๋ณด๋ค ๋์์ง ์์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ์๋ฃจ์ ์ DLT๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํด์ผ ํฉ๋๋ค. ์๋ฃจ์ ์ด๋ฉด์ ๊ธฐ์ ์ ์ ์์ ์ธ ๋ฐ์ดํฐ ์กฐ์ ๊ฐ๋ฅ์ฑ์ ์ต์ํํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ๋ธ๋ก์ฒด์ธ์ด ์กด์ฌํ๋ ์ด์ ์ ๋๋ค.
๋ฐฑ์์ ๋ฏธ๋์ด์ ์ฌ๋ก๊ฑด์ ๋ค์ ๊ฐ๋ฐ์ด ์ด๋น ์๋ฐฑ๋ง ๊ฑด์ ํธ๋์ญ์ ์ ํ์ฉํ ๊ฒ์ด๋ผ๊ณ ์ฝ์ํฉ๋๋ค. ์ ๋ง ๋ฌด์์ ๋๊น?
๋ฉ์ธ๋ท ์ด๋๋ฆฌ์์ ํ์ฌ ~30tps๋ก ์คํ๋๊ณ ์์ต๋๋ค. ์ด ๋๋ฌธ์ ์ด๋ค ๋ฉด์์๋ ๊ธฐ์
์ ์๊ตฌ์ ์ ํฉํ ๋ธ๋ก์ฒด์ธ์ผ๋ก ์ธ์ํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ํ๊ฐ๋ ์๋ฃจ์
์ค์์ 2000tps๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฒค์น๋งํฌ๊ฐ ์๋ ค์ ธ ์์ต๋๋ค(
์จ์ด ์์
๊ฑฐ๋๊ฐ ์์๋ ์๊ฐ๋ถํฐ ์์คํ ์ ์ต์ข ์น์ธ๊น์ง์ ์ง์ฐ์ ๊ฒ์ฆ ๋ฐ ์ฃผ๋ฌธ์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ํต๊ณผํ๋ ๋ฉ์์ง์ ์๋๋ฟ๋ง ์๋๋ผ ๋ธ๋ก ํ์ฑ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ธ๋ก์ฒด์ธ์ ํตํด 1000000tps๋ก ์ปค๋ฐํ ์ ์์ง๋ง 10MB ๋ธ๋ก์ ํ์ฑํ๋ ๋ฐ 488๋ถ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ํด๋ ๋ ์ฌ์์ง๊น์?
์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๋ถ๋ถ๊ณผ ์ด๊ฒ์ด ๋ธ๋ก ํ์ฑ ๋งค๊ฐ๋ณ์์ ์ด๋ป๊ฒ ๊ด๋ จ๋๋์ง ์ดํดํ๊ธฐ ์ํด Hyperledger Fabric์์ ํธ๋์ญ์ ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ์์ ๊ฐ์ ธ์จ:
(1) ํด๋ผ์ด์ธํธ๋ ํธ๋์ญ์ ์ ํ์ฑํ๊ณ ์ด๋ฅผ ์น์ธํ๋ ํผ์ด์๊ฒ ๋ณด๋ด๊ณ , ํผ์ด๋ ํธ๋์ญ์ ์ ์๋ฎฌ๋ ์ด์ ํ๊ณ (์ฒด์ธ์ฝ๋์ ์ํด ๋ณ๊ฒฝ๋ ์ฌํญ์ ํ์ฌ ์ํ์ ์ ์ฉํ์ง๋ง ์์ฅ์ ์ปค๋ฐํ์ง ์์) RWSet(ํค ์ด๋ฆ, ๋ฒ์ ๋ฐ CouchDB์ ์ปฌ๋ ์ ์์ ๊ฐ์ ธ์จ ๊ฐ, (2) ๋ณด์ฆ์ธ์ ์๋ช ๋ RWSet๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ค์ ๋ณด๋ ๋๋ค. (3) ํด๋ผ์ด์ธํธ๋ ํ์ํ ๋ชจ๋ ํผ์ด(๋ณด์ฆ์ธ)์ ์๋ช ์ ํ์ธํ ๋ค์ ํธ๋์ญ์ ์ ์ฃผ๋ฌธ ์๋น์ค์ ๋ณด๋ ๋๋ค. , ๋๋ ํ์ธ ์์ด ์ ์กํ๋ฉด(ํ์ธ์ ๋์ค์ ์ํ๋จ) ์ฃผ๋ฌธ ์๋น์ค๊ฐ ๋ธ๋ก์ ํ์ฑํ๊ณ (4) ๋ณด์ฆ์๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ํผ์ด์๊ฒ ๋ค์ ๋ณด๋ ๋๋ค. ํผ์ด๋ ์ฝ๊ธฐ ์ธํธ์ ํค ๋ฒ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฒ์ , ๋ชจ๋ ๋ณด์ฆ์ธ์ ์๋ช ๊ณผ ์ผ์นํ๋์ง ํ์ธํ๊ณ ๋ง์ง๋ง์ผ๋ก ๋ธ๋ก์ ์ปค๋ฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ์ ๋ถ๋ ์๋๋๋ค. "์ฃผ๋ฌธ์๊ฐ ๋ธ๋ก์ ํ์ฑํฉ๋๋ค"๋ผ๋ ๋จ์ด ๋ค์๋ ๊ฑฐ๋ ์์๋ฟ๋ง ์๋๋ผ ๋ฆฌ๋๊ฐ ํ๋ก์ด์๊ฒ ๋ณด๋ด๋ 3๊ฐ์ ์ฐ์ ๋คํธ์ํฌ ์์ฒญ๋ ์จ๊ฒจ์ ธ ์์ต๋๋ค. ๋ฆฌ๋๋ ๋ก๊ทธ์ ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ๊ณ ํ๋ก์ด์๊ฒ ๋ณด๋ด๊ณ ํ์๋ ๊ทธ๋ค์ ๋ก๊ทธ๋ ์ฑ๊ณต์ ์ธ ๋ณต์ ํ์ธ์ ๋ฆฌ๋์๊ฒ ๋ณด๋ด๊ณ , ๋ฆฌ๋๋ ๋ฉ์์ง๋ฅผ ์ปค๋ฐํ๊ณ , ํ๋ก์์๊ฒ ์ปค๋ฐ ํ์ธ์ ๋ณด๋ด๊ณ , ํ๋ก์๋ ์ปค๋ฐํฉ๋๋ค. ๋ธ๋ก ํฌ๊ธฐ์ ์๊ฐ์ด ์์์๋ก ์ฃผ๋ฌธ ์๋น์ค๊ฐ ํฉ์๋ฅผ ์๋ฆฝํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ ์์ฃผ ๋ฐ์ํฉ๋๋ค.. Hyperledger Fabric์๋ ๋ ๊ฐ์ง ๋ธ๋ก ํ์ฑ ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค. BatchTimeout - ๋ธ๋ก ํ์ฑ ์๊ฐ ๋ฐ BatchSize - ๋ธ๋ก ํฌ๊ธฐ(ํธ๋์ญ์ ์ ๋ฐ ๋ธ๋ก ์์ฒด์ ํฌ๊ธฐ(๋ฐ์ดํธ)). ๋งค๊ฐ๋ณ์ ์ค ํ๋๊ฐ ํ๊ณ์ ๋๋ฌํ๋ฉด ์ฆ์ ์ ๋ธ๋ก์ด ๋ฐํ๋ฉ๋๋ค. Orderer ๋ ธ๋๊ฐ ๋ง์์๋ก ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ๋ฐ๋ผ์ BatchTimeout ๋ฐ BatchSize๋ฅผ ๋๋ ค์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ RWSets์ ๋ฒ์ ์ด ๊ด๋ฆฌ๋๋ฏ๋ก ๋ธ๋ก์ ๋ ํฌ๊ฒ ๋ง๋ค์๋ก MVCC ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค. ๋ํ BatchTimeout์ด ์ฆ๊ฐํ๋ฉด UX๊ฐ ์ฌ๊ฐํ๊ฒ ์ ํ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ค์ ๊ณํ์ ํฉ๋ฆฌ์ ์ด๊ณ ๋ช ๋ฐฑํด ๋ณด์ ๋๋ค.
๋ธ๋ก ์๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๊ฑฐ๋ ์ํ๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ
ํ์ฑ ์๊ฐ๊ณผ ๋ธ๋ก ํฌ๊ธฐ๊ฐ ๊ธธ์ด์ง์๋ก ๋ธ๋ก์ฒด์ธ์ ์ฒ๋ฆฌ๋์ ๋์์ง๋๋ค. ํ๋๊ฐ ๋ค๋ฅธ ํ๋๋ฅผ ์ง์ ๋ฐ๋ฅด์ง๋ ์์ง๋ง RAFT์์ ํฉ์๋ฅผ ์ค์ ํ๋ ค๋ฉด ๋ฆฌ๋์ ํ๋ก์ด ๊ฐ์ ์ธ ๋ฒ์ ๋คํธ์ํฌ ์์ฒญ์ด ํ์ํ๋ค๋ ์ ์ ๊ธฐ์ตํด์ผ ํฉ๋๋ค. ์ฃผ๋ฌธ ๋ ธ๋๊ฐ ๋ง์์๋ก ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ๋ธ๋ก ํ์ฑ์ ํฌ๊ธฐ์ ์๊ฐ์ด ์์์๋ก ๊ทธ๋ฌํ ์ํธ ์์ฉ์ ๋ ๋ง์์ง๋๋ค. ์ต์ข ์ฌ์ฉ์์ ์์คํ ์๋ต ์๊ฐ์ ๋๋ฆฌ์ง ์๊ณ ํ์ฑ ์๊ฐ๊ณผ ๋ธ๋ก ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
๋จผ์ , ๋์ผํ ๋ฒ์ ์ ๋ค์ํ RWSets๋ฅผ ํฌํจํ ์ ์๋ ํฐ ๋ธ๋ก ํฌ๊ธฐ๋ก ์ธํด ๋ฐ์ํ๋ MVCC ์ถฉ๋์ ์ด๋ป๊ฒ๋ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ๋ถ๋ช ํ ํด๋ผ์ด์ธํธ ์ธก์์๋(๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ๊ด๋ จํ์ฌ ์ด๋ ๋ฐฑ์๋์ผ ์ ์์ต๋๋ค. ๋ด ๋ง์) MVCC ์ถฉ๋ ์ฒ๋ฆฌ๊ธฐ, ์ด๋ ์ฌ์๋ ๋ ผ๋ฆฌ๊ฐ ์๋ ํธ๋์ญ์ ์์ ํธ์ถ์ ๋ํ ๋ณ๋์ ์๋น์ค์ด๊ฑฐ๋ ์ผ๋ฐ ๋ฐ์ฝ๋ ์ดํฐ์ผ ์ ์์ต๋๋ค.
์ฌ์๋๋ ์ง์ ์ ๋ต์ผ๋ก ๊ตฌํ๋ ์ ์์ง๋ง, ๊ทธ๋ฌ๋ฉด ๋๊ธฐ ์๊ฐ๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํน์ ์์ ์ ํ ๋ด์์ ๋ฌด์์ ์ฌ์๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ผ์ ํ ์ฌ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ณํ์์ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ ์ผ๋์ ๋๊ณ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ๋ ํด๋ผ์ด์ธํธ์ ์์คํ
์ ์ํธ ์์ฉ์ ๋น๋๊ธฐ์์ผ๋ก ๋ง๋ค์ด BatchTimeout์ผ๋ก ์ค์ ํ๋ 15์ด, 30์ด ๋๋ 10000000์ด๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๋๋ก ํ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๋์์ ๊ฑฐ๋๋ก ์ธํด ์์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ก๋๊ฑฐ๋ ๊ธฐ๋ก๋์ง ์๋๋ก ํ๋ ๊ธฐ๋ฅ์ ์ ์งํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋์ญ์
์ํ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ์ฌ์ด ์ต์
์ ์ฌ์ฉ์ด ๊ฐํธํ๊ธฐ ๋๋ฌธ์ CouchDB์
๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ฆ์ ์ฌ์ฉํ ์ ์๋ UI์ REST API๊ฐ ์์ผ๋ฉฐ ์ด์ ๋ํ ๋ณต์ ๋ฐ ์ค๋ฉ์ ์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค. Fabric์ด ์๋ ์ํ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ CouchDB ์ธ์คํด์ค์ ๋ณ๋์ ์ปฌ๋ ์
์ ์์ฑํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฐ ์ข
๋ฅ์ ๋ฌธ์๋ฅผ ์ ์ฅํด์ผ ํฉ๋๋ค.
{
Status string // ะกัะฐััั ััะฐะฝะทะฐะบัะธะธ: "pending", "done", "failed"
TxID: string // ID ััะฐะฝะทะฐะบัะธะธ
Error: string // optional, ัะพะพะฑัะตะฝะธะต ะพะฑ ะพัะธะฑะบะต
}
์ด ๋ฌธ์๋ ํธ๋์ญ์ ์ด ํผ์ด์๊ฒ ์ ์ก๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ก๋๋ฉฐ, ์ด๊ฒ์ด ์์ฑ ์์ ์ธ ๊ฒฝ์ฐ ์ํฐํฐ ID๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฐํ๋๊ณ (๋์ผํ ID๊ฐ ํค๋ก ์ฌ์ฉ๋จ) Status, TxID ๋ฐ Error ํ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋๋ฃ๋ก๋ถํฐ ๊ด๋ จ ์ ๋ณด๊ฐ ์์ ๋๋ฉด ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
์ด ๋ฐฉ์์์ ์ฌ์ฉ์๋ ๋ธ๋ก์ด ์ต์ข
์ ์ผ๋ก ํ์ฑ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ 10์ด ๋์ ํ๋ฉด์ ๋ฌผ๋ ๋ฅผ ๋ณด๋ฉด์ ์์คํ
์ผ๋ก๋ถํฐ ์ฆ๊ฐ์ ์ธ ์๋ต์ ๋ฐ๊ณ ์์
์ ๊ณ์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ํธ๋์ญ์
์ํ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด BoltDB๋ฅผ ์ ํํ์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํด์ผ ํ๊ณ ํนํ ์ด ์ํธ ์์ฉ์ด ์ผ๋ฐ ํ
์คํธ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ฐ์ํ ๋ ๋
๋ฆฝํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์์ ๋คํธ์ํฌ ์ํธ ์์ฉ์ ์๊ฐ์ ๋ญ๋นํ๊ณ ์ถ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ฐ๋ฐ CouchDB๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์ค๋ช
ํ ๊ตฌ์ฑํ๋ฅผ ๊ตฌํํ๋ ์๋๋ฉด ๋จ์ง ์ธ๊ณ ์ํ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ด๊ณ์์ด CouchDB์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๋ฐฉ์์ ์ต์ ํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก CouchDB์์ b-ํธ๋ฆฌ ๋
ธ๋์ ํฌ๊ธฐ๋ 1279๋ฐ์ดํธ์
๋๋ค. ์ด๋ ๋์คํฌ์ ์นํฐ ํฌ๊ธฐ๋ณด๋ค ํจ์ฌ ์์ต๋๋ค. ์ฆ, ํธ๋ฆฌ๋ฅผ ์ฝ๊ณ ์ฌ์กฐ์ ํ๋ ค๋ฉด ๋ ๋ง์ ๋ฌผ๋ฆฌ์ ๋์คํฌ ์ก์ธ์ค๊ฐ ํ์ํฉ๋๋ค. ์ต์ ์ ํฌ๊ธฐ๊ฐ ํ์ค์ ์ถฉ์กฑํฉ๋๋ค.
๋ฐฐ์: ๋ฒํผ ์ ๋ต
๊ทธ๋ฌ๋ ๋ง์ ๋ฉ์์ง๊ฐ ์์ ์ ์์ต๋๋ค. ์์คํ ์ด ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ ์ด์์ผ๋ก ๋ค์ด์ด๊ทธ๋จ์ ํ์๋ ๊ฒ ์ธ์๋ XNUMX๊ฐ์ ๋ค๋ฅธ ์๋น์ค์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ Intellij Idea๋ฅผ ์คํํ๋ ๊ฒ์ด ๊ทน๋๋ก ์ง๋ฃจํ ์์คํ ์์๋ ์๋ฒฝํ๊ฒ ์๋ํด์ผ ํฉ๋๋ค.
ํต์ ์์คํ (์์ฐ์์ ์๋น์)์ ์๋ก ๋ค๋ฅธ ์ฒ๋ฆฌ๋ ๋ฌธ์ ๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ํ ์ ์๋์ง ๋ด ์๋ค.
์ ํ: ์ฐ๋ฆฌ๋ T์ด ์์ ์ต๋ X๊ฐ์ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ์ฃผ์ฅํ ์ ์์ต๋๋ค. ์ด ์ ํ์ ์ด๊ณผํ๋ ๋ชจ๋ ์์ฒญ์ ์ญ์ ๋ฉ๋๋ค. ๋งค์ฐ ๊ฐ๋จํ์ง๋ง UX๋ ์์ด๋ฒ๋ฆด ์ ์์ต๋๋ค.
์ ์ด: ์๋น์๋ ๋ถํ์ ๋ฐ๋ผ ์์ฐ์์ tps๋ฅผ ์ ์ดํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํฉ๋๋ค. ๋์์ง๋ ์์ง๋ง ๋ก๋ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์์๊ฒ ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผ ํ ์๋ฌด๊ฐ ์์ต๋๋ค. ๋ฏธ๋์ ๋ธ๋ก์ฒด์ธ์ ์๋ง์ ๊ธฐ์กด ์์คํ ์ ํตํฉ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์๊ฒ๋ ์ด๊ฒ์ด ์ฉ๋ฉ๋ ์ ์์ต๋๋ค.
๋ฒํผ๋ง: ์ ๋ ฅ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ ํญํ๋ ค๊ณ ์ ์ฐ๋ ๋์ ์ด ์คํธ๋ฆผ์ ๋ฒํผ๋งํ๊ณ ํ์ํ ์๋๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ถ๋ช ํ ์ด๊ฒ์ ์ข์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ ๊ฒฝ์ฐ ์ต๊ณ ์ ์๋ฃจ์ ์ ๋๋ค. RabbitMQ์ ํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒํผ๋ฅผ ๊ตฌํํ์ต๋๋ค.
๋ ๊ฐ์ง ์๋ก์ด ์์
์ด ์ฒด๊ณ์ ์ถ๊ฐ๋์์ต๋๋ค. (1) API ์์ฒญ์ ๋ฐ์ ํ ํธ๋์ญ์
์ ํธ์ถํ๋ ๋ฐ ํ์ํ ๋งค๊ฐ๋ณ์์ ํจ๊ป ๋ฉ์์ง๊ฐ ๋๊ธฐ์ด์ ์ถ๊ฐ๋๊ณ ํด๋ผ์ด์ธํธ๋ ์์คํ
์์ ํธ๋์ญ์
์ด ์๋ฝ๋์๋ค๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค. 2) ๋ฐฑ์๋๋ ๋๊ธฐ์ด์์ ๊ตฌ์ฑ์ ์ง์ ๋ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ต๋๋ค. ํธ๋์ญ์
์ ์์ํ๊ณ ์ํ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
์ด์ ์ํ๋ ๋งํผ ๋น๋ ์๊ฐ๊ณผ ๋ธ๋ก ์ฉ๋์ ๋๋ ค ์ฌ์ฉ์์๊ฒ ์ง์ฐ์ ์จ๊ธธ ์ ์์ต๋๋ค.
๊ธฐํ ๋๊ตฌ
์ผ๋ฐ์ ์ผ๋ก ์ต์ ํํ ๋ด์ฉ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์๋ ์ฒด์ธ์ฝ๋์ ๋ํด ์ธ๊ธํ์ง ์์์ต๋๋ค. ์ฒด์ธ์ฝ๋๋ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ๊ณ ์์ ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ํ์ํ ์ ๋ถ์
๋๋ค. ํ๋ ์์ํฌ๋ ์ฒด์ธ์ฝ๋๋ฅผ ๊ฐ๋จํ๊ณ ์์ ํ๊ฒ ์์ฑํ๋ ๋ฐ ๋ง์ ๋์์ด ๋ฉ๋๋ค.
๋ํ ์ฐ๋ฆฌ ํ์ Fabric ์์
์ ๊ฐ๋จํ๊ณ ์ฆ๊ฒ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ์ ํธ๋ฆฌํฐ ์ธํธ๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
๊ฒฐ๋ก
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด Hyperledger Fabric์ Quorum, ๊ธฐํ ๊ฐ์ธ ์ด๋๋ฆฌ์ ๋คํธ์ํฌ(PoA ๋๋ PoW)๋ก ์ฝ๊ฒ ๊ต์ฒดํ๊ณ ์ค์ ์ฒ๋ฆฌ๋์ ํฌ๊ฒ ์ค์ด๋ฉด์๋ ๋์์ ์ผ๋ฐ UX๋ฅผ ์ ์งํ ์ ์์ต๋๋ค(๋ธ๋ผ์ฐ์ ์ฌ์ฉ์์ ํตํฉ ์์คํ ์ธก๋ฉด ๋ชจ๋) ). ๊ตฌ์ฑํ์์ Fabric์ Ethereum์ผ๋ก ๊ต์ฒดํ ๋ ์ฌ์๋ ์๋น์ค/๋ฐ์ฝ๋ ์ดํฐ์ ๋ ผ๋ฆฌ๋ง MVCC ์ถฉ๋ ์ฒ๋ฆฌ์์ ์์ nonce ์ฆ๊ฐ ๋ฐ ์ฌ์ ์ก์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค. ๋ฒํผ๋ง ๋ฐ ์ํ ์ ์ฅ์ ํตํด ์๋ต ์๊ฐ๊ณผ ๋ธ๋ก ํ์ฑ ์๊ฐ์ ๋ถ๋ฆฌํ ์ ์์์ต๋๋ค. ์ด์ ์์ฒ ๊ฐ์ ์ฃผ๋ฌธ ๋ ธ๋๋ฅผ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ ๋ธ๋ก์ด ๋๋ฌด ์์ฃผ ํ์ฑ๋์ด ์ฃผ๋ฌธ ์๋น์ค๋ฅผ ๋ก๋ํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ์์ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ์ ๊ฐ ๊ณต์ ํ๊ณ ์ถ์ ์ ๋ถ์
๋๋ค. ๋๊ตฐ๊ฐ์ ์
๋ฌด์ ๋์์ด ๋๋ค๋ฉด ๊ธฐ์๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com