์•ˆ๋…•ํ•˜์„ธ์š”?
๊ทธ ๋™์•ˆ ๋ธ”๋ก์ฒด์ธ์ด ๋ฌด์—‡์ธ์ง€, Hyperledger Fabric์€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐฐ์šธ ๋•Œ ๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ๊ธฐ์ˆ ์„ ํ•˜๋Š” ์‚ฌ๋žŒ์˜ ํ•˜๋‚˜๋กœ ๋ณด๋‹ค ์ค‘์š”ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹ค์ œ๋กœ ์ ์šฉ์‹œ์ผœ ๋ณด๋Š” ๊ฒƒ์ผ ๊ฒ๋‹ˆ๋‹ค.
์ง€๊ธˆ๋ถ€ํ„ฐ๋Š” Hyperledger Fabric์„ ์ด์šฉํ•ด์„œ ๋ธ”๋ก์ฒด์ธ์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋ฉฐ, ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ, ์ฒด์ธ์ฝ”๋“œ๋Š” ์–ด๋–ป๊ฒŒ ๊ฐœ๋ฐœ๋˜์–ด ๋””ํด๋กœ์ด ๋˜๋Š”์ง€ ๋“ฑ, Hyperledger Fabric ๊ธฐ๋ฐ˜์˜ ๋ธ”๋ก์ฒด์ธ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ฉด์„œ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Hyperledger Fabric์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Docker ์ด๋ฏธ์ง€๋กœ ๋ฐฐํฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค ( ๋งค๋‰ด์–ผํ•˜๊ฒŒ ๋นŒ๋“œํ•ด์„œ๋„ ์‚ฌ์šฉ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.). ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋‘” ์†Œ์Šค๊ฐ€ Golang ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ๋Š” Golang์„ ๋ชฐ๋ผ๋„ ์ƒ๊ด€์ด ์—†์œผ๋‚˜ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™(์ดํ•˜, ์ฒด์ธ์ฝ”๋“œ)๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Golang์„ ์•Œ๊ณ  ์žˆ๋Š”๊ฒŒ ํŽธํ•ฉ๋‹ˆ๋‹ค.
(ํ˜„์žฌ ์ฒด์ธ์ฝ”๋“œ๋กœ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด๋Š” Golang, Java์ž…๋‹ˆ๋‹ค. Java ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒด์ธ์ฝ”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ๋Š” Faric์˜ ์žฌ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•จ์œผ๋กœ ์ด๋ฒˆ ๋ฌธ์„œ์—์„œ๋Š” Golang ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.)

1. ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ•„์ˆ˜ ํ™˜๊ฒฝ

์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด Hyperledger Fabric์€ Docker ์ด๋ฏธ์ง€๋กœ ๋ฐฐํฌ๋˜๋ฏ€๋กœ ๋ธ”๋ก์ฒด์ธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” Docker engine์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
์ด ๋ฌธ์„œ์—์„œ๋Š” docker-machine ์„ ํ†ตํ•ด์„œ ๋ชจ๋“  ์ง„ํ–‰์ด ์ด๋ฃจ์–ด ์ง‘๋‹ˆ๋‹ค. Docker engine ๋ฐ VirtualBox ๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ˆ ์•„๋ž˜ ํ•„์ˆ˜ ์„ค์น˜ ์‚ฌํ•ญ์„ ๋ฐ˜๋“œ์‹œ ํ™•์ธ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๋˜ํ•œ, Golang ๊ธฐ๋ฐ˜์˜ ์ฒด์ธ์ฝ”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ๋Š” Golang ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜๋„ ํ•ฉ๋‹ˆ๋‹ค.

์œˆ๋„์šฐ์ฆˆ์˜ ๊ฒฝ์šฐ ์ตœ์‹  Docker๋Š” Windows 10 ์„ ์ตœ์†Œ์‚ฌํ–ฅ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Windows๋Š” Docker Toolbox ๋ฅผ ์„ค์น˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๋งฅ์ด๋‚˜ ์œˆ๋„์šฐ์ฆˆ 10๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ VirtualBox๋ฅผ ๋ณ„๋„๋กœ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2. ์„ ํ–‰ ๊ธฐ์ˆ 

์•„๋ž˜์˜ ์„ ํ–‰๊ธฐ์ˆ ์€ ๊ฐ€๊ธ‰์  ์ž˜ ์•Œ์•„๋‘๋ฉด Hyperledger Fabric ๊ธฐ๋ฐ˜์˜ ํ™˜๊ฒฝ ๊ตฌ์„ฑ ๋ฐ ๊ฐœ๋ฐœ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Docker ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์‹ค์ œ๋กœ ๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์„ Docker ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํšŒ์‚ฌ๋„ ์ ์  ๋” ๋งŽ์•„์ง€๊ณ  ์žˆ์œผ๋‹ˆ ์‹œ๊ฐ„๋‚ด์–ด ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ๊ฒƒ๋„ ๋งŽ์€ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Golang์˜ ๊ฒฝ์šฐ ์ฒด์ธ์ฝ”๋“œ ์ž‘์„ฑ์„ ์œ„ํ•ด์„œ๋Š” ์•Œ์•„์•ผํ•˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก , Java๋‚˜ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๋„ ํ–ฅํ›„ ์ง€์›์ด ๋  ๊ฒƒ์ด๋‚˜ ํ˜„์žฌ๋Š” ๊ธฐ๋ณธ ์–ธ์–ด์ด๋ฏ€๋กœ ์ด๋ฒˆ ๊ธฐํšŒ์— ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.( ์ด ๊ฐ•์ขŒ์—์„œ๋Š” Golang์„ ์‹ฌ๋„์žˆ๊ฒŒ ์‚ฌ์šฉํ•˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค.)

  • Docker
  • Golang

3. Docker VM ํ™˜๊ฒฝ ์ƒ์„ฑ

์ž, ์ด์ œ ๊ธฐ๋ณธ์ ์ธ ํ™˜๊ฒฝ ์ค€๋น„๊ฐ€ ๋‹ค ๋˜์—ˆ์œผ๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ธ”๋ก์ฒด์ธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ docker ์‚ฌ์šฉ์„ ์œ„ํ•œ VM์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

$ docker-machine create --driver virtualbox blockchain

๋‹ค์Œ์œผ๋กœ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ VM์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ Host์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
(OS ๋ณ„๋กœ ๊ฒฐ๊ณผ ๋‚ด์šฉ์ด ํ‹€๋ฆด์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ„ฐ๋ฏธ๋„์„ ์ƒˆ๋กœ ์ ‘์† ํ•˜์‹œ๋ฉด ๋˜‘๊ฐ™์ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

$ docker-machine env blockchain

์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹œ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

  • MacOS

  • Windows

์˜์˜ ์‚ฌ์ง„์˜ ๋งˆ์ง€๋ง‰ ๋‚ด์šฉ๊ณผ ๊ฐ™์ด ๊ฐ OS์— ๋งž์ถฐ์„œ ๋‹ค์Œ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • MacOS
$ eval $(docker-machine env blockchain)
  • Windows
@FOR /f "tokens=*" %i IN ('docker-machine env blockchain') DO @%i

์ตœ์ข…์ ์œผ๋กœ Docker ์‚ฌ์šฉ์„ ์œ„ํ•œ ํ™˜๊ฒฝ ์„ค์ •์ด ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

docker images

4. Hyperledger Fabric Docker ์ด๋ฏธ์ง€ ๋ฐ›๊ธฐ

Docker ์„ค์น˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด ๋‹ค์Œ์œผ๋กœ Hyperledger ์ด๋ฏธ์ง€๋ฅผ ๊ฐ๊ฐ ๋‹ค์šด ๋ฐ›์Šต๋‹ˆ๋‹ค.
๋‹ค์šด๋ฐ›๋Š” ์ด๋ฏธ์ง€์˜ ์ข…๋ฅ˜์™€ ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค์šด๋ฐ›๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Fabric ์ปดํฌ๋„ŒํŠธ ์ด๋ฏธ์ง€ ๋ช… ํƒœ๊ทธ
Fabric base ์ด๋ฏธ์ง€ hyperledger/fabric-baseimage x86_64-0.2.2
๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค hyperledger/fabric-membsrsrvc x86_64-0.6.1-preview
ํ”ผ์–ด ์„œ๋น„์Šค hyperledger/fabric-peer x86_64-0.6.1-preview

๋‹ค์Œ์˜ ๋ช…๋ น์„ ํ†ตํ•ด์„œ ๋ชจ๋“  ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.

docker pull hyperledger/fabric-baseimage:x86_64-0.2.2
docker pull hyperledger/fabric-membersrvc:x86_64-0.6.1-preview
docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview

์ด๋ฏธ์ง€๋ฅผ ๋‹ค ๋ฐ›์œผ์…จ์œผ๋ฉด docker images ๋ช…๋ น์„ ํ†ตํ•ด์„œ ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

docker images

๊ทธ๋ฆฌ๊ณ  baseimage์˜ ๊ฒฝ์šฐ Tab๋ฅผ latest๋กœ ํƒœ๊น…์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„ ๋ธ”๋ก์ฒด์ธ์˜ ์šด์˜๋ชจ๋“œ์—์„œ ์ฒด์ธ์ฝ”๋“œ ๋””ํ”Œ๋กœ์ด๋ฅผ ํ•  ๊ฒฝ์šฐ baseimage๋ฅผ ํ†ตํ•ด ์ฒด์ธ์ฝ”๋“œ ๊ตฌ๋™์„ ์œ„ํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ hyplerledger/fabric-baseimage:latest ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

docker tag hyperledger/fabric-baseimage:x86_64-0.2.2 hyperledger/fabric-baseimgae:latest
docker images

์ž, ์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด Hyperledger Fabric ๊ธฐ๋ฐ˜์˜ ๋ธ”๋ก์ฒด์ธ ํ™˜๊ฒฝ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ์˜ค๋Š˜์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋กœ ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์™€ Validating Peer ํ•˜๋‚˜์”ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ธฐ๋ณธ์ ์ธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์„ ๊ตฌ๋™์‹œ์ผœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ PC์˜ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์—์„œ docker-compose.yml ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๊ณ , ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

docker-compose.yml ํŒŒ์ผ์€ ์ผ๋ฐ˜์ ์œผ๋กœ yml, yaml ํ™•์žฅ์ž๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™”๋œ ์–‘์‹์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ ๋“ฑ์˜ ์„ค์ •ํŒŒ์ผ๋กœ ๋งŽ์ด ์“ฐ์ž…๋‹ˆ๋‹ค.
ํŠน์ง•์€ ๊ณต๋ฐฑ์€ ํƒญ์ด ์•„๋‹Œ ์ŠคํŽ˜์ด์Šค๋กœ ๋ฐ˜๋“œ์‹œ ํƒ€์ดํ•‘ํ•ด์•ผํ•˜๋ฉฐ, ๋“ค์—ฌ์“ฐ๊ธฐ์˜ ์œ„์น˜๋ฅผ ์•„๋ž˜ ๋ฌธ์„œ์™€ ๋™์ผํ•˜๊ฒŒ ํ•ด์•ผ ์ •์ƒ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ์ •๋ณด๋Š” ๋‹ค์Œ์˜ ์œ„ํ‚คํ”ผ๋””์•„๋‚˜ ์›น์—์„œ ๊ฒ€์ƒ‰ํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์œ„ํ‚คํ”ผ๋””์•„ – YAML

membersrvc:
  image: hyperledger/fabric-membersrvc:x86_64-0.6.1-preview
  ports:
    - "7054:7054"
  command: membersrvc
vp0:
  image: hyperledger/fabric-peer:x86_64-0.6.1-preview
  ports:
    - "7050:7050"
    - "7051:7051"
    - "7053:7053"
  environment:
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_LOGGING_LEVEL=DEBUG
    - CORE_PEER_ID=vp0
    - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
    - CORE_SECURITY_ENABLED=true
    - CORE_SECURITY_ENROLLID=test_vp0
    - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
  links:
    - membersrvc
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

yml ํŒŒ์ผ์˜ ํŠน์„ฑ์œผ๋กœ ์ž˜๋ชป ์ž‘์„ฑ๋  ๊ฒฝ์šฐ(๋นˆ ๊ณต๋ฐฑ์— ํƒญ๋ฌธ์ž๋“ฑ ์ŠคํŽ˜์ด์Šค๊ฐ€ ์•„๋‹ˆ ๋‹ค๋ฅธ ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐˆ ๊ฒฝ์šฐ๋‚˜ ํƒญ์˜ ์œ„์น˜๊ฐ€ ๋งž์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋“ฑ) docker ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘์ด ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋งํฌ์—์„œ ๋ฐ›์œผ์‹œ๊ธฐ ๋ฐ”๋ฆฝ๋‹ˆ๋‹ค.
https://github.com/mjkong/blockchain_hyperledger/blob/master/docs/Setup/devmode/docker-compose.yml

ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ์œผ๋ฉด docker-compose.ymlํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์€ ๋ฉ”์„ธ์ง€๊ฐ€ ์—๋Ÿฌ์—†์ด ๋ณด์ด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋ธ”๋Ÿญ์ฒด์ธ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

docker-compose up

Hyperledger Fabric์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ์•„๋ž˜ ๋ฉ”์„ธ์ง€๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

vp0_1         | 09:50:27.129 [rest] StartOpenchainRESTServer -> INFO 054 Initializing the REST service on 0.0.0.0:7050, TLS is disabled.

์—ฌ๊ธฐ๊นŒ์ง€ ๋ธ”๋ก์ฒด์ธ ๋Ÿฐํƒ€์ž„ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๊ธฐ๋ณธํ™˜๊ฒฝ ์„ค์ •์„ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋ฐฉ๊ธˆ docker-compose๋ฅผ ํ†ตํ•ด์„œ ์‹คํ–‰ํ•œ ํ™˜๊ฒฝ์€ ์•ž์„œ Hyperledger Fabric ์†Œ๊ฐœ์‹œ ์„ค๋ช…ํ•œ Single Validating Peer ํ† ํด๋กœ์ง€์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ํ•œ ๊ฐœ๋ฐœ๋ชจ๋“œ๋กœ ๋Ÿฐํƒ€์ž„์„ ์‹คํ–‰ํ•œ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.
์ด ๊ตฌ์„ฑ์„ ํ†ตํ•ด ์•ž์œผ๋กœ ๊ฐœ๋ฐœ๋ชจ๋“œ์—์„œ์˜ ์ฒด์ธ์ฝ”๋“œ ๋””ํ”Œ๋กœ์ด ๋ฐ ํ…Œ์ŠคํŠธ, ์šด์˜๋ชจ๋“œ๋กœ ๋ธ”๋ก์ฒด์ธ ๋Ÿฐํƒ€์ž„ ์‹คํ–‰, ์ฒด์ธ์ฝ”๋“œ ๋””ํ”Œ๋กœ์ด ๋ฐ ํ…Œ์ŠคํŠธ ๋“ฑ์„ ์„ค๋ช…ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.