์•ˆ๋…•ํ•˜์„ธ์š”?

์˜ค๋Š˜์€ Hyperledger Fabric์˜ ์„ค์ •ํŒŒ์ผ๋“ค์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
์„ค์ •ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ€์ด์Šค๊ฐ€ ๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์— ํด๋ผ์ด์–ธํŠธ ๋ฐ Peer ๋“ฑ๋ก
  • Validating Peer ๋ฐ non-validating Peer ์„ค์ •
  • Validating Peer ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ •(Peer id, network id, root node ๋“ฑ)
  • ๋ณด์•ˆ ์„ค์ • ( TLS ์„ค์ • )
  • ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ๋“ˆ ์„ค์ •

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

๋ธ”๋ก์ฒด์ธ ์„œ๋น„์Šค๋“ค์˜ ์„ค์ •ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •์ดํ›„ docker commit ๋ช…๋ น์„ ํ†ตํ•ด์„œ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋กœ ํƒœ๊น…์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ, ์ง์ ‘ ์ˆ˜์ •ํ–ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ  docker ๋ช…๋ น์— -e ์˜ต์…˜์œผ๋กœ ์ „๋‹ฌ๋œ ์„ค์ •์— ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, docker ๋ช…๋ น์œผ๋กœ ์ „๋‹ฌ๋œ ์„ค์ •์ด override ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ
ํ•„์š”์— ๋”ฐ๋ผ ์ ์ ˆํžˆ ์กฐํ•ฉ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ™”ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ๋งŽ์€ ๊ฐ’๋“ค์— ๋Œ€ํ•ด์„œ๋Š” docker ๋ช…๋ น์˜ ์˜ต์…˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ํŽธํ•ฉ๋‹ˆ๋‹ค. (๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ, Logging level )

1. ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์˜ ์„ค์ •

๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค๋Š” ์•ž์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด Peer์™€ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ ๋ฐœ๊ธ‰๊ธฐ๊ด€์˜ ์—ญํ• ์„ ํ•˜๋ฉฐ Peer ๋ฐ ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ์„ ๋‹ด๋‹นํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ค์ •์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ, Peer์„ ์œ„ํ•œ ์•„์ด๋”” ์„ค์ •
  • ๋ณด์•ˆ ์„ค์ • (TLS ์‚ฌ์šฉ์—ฌ๋ถ€)
  • ์„œ๋น„์Šค ํฌํŠธ

๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์˜ ์„ค์ •ํŒŒ์ผ ์œ„์น˜๋Š” ๋‹ค์Œ์˜ ๊ฒฝ๋กœ์— ์žˆ์Šต๋‹ˆ๋‹ค.

/opt/gopath/src/github.com/hyperledger/fabric/membersrvc/membersrvc.yaml

์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—†๋‹ค๋ฉด ์ƒˆ๋กœ ์‹คํ–‰ํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์œผ๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ค‘์ผ ๊ฒฝ์šฐ
docker exec -it < ์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„> bash
  • ์ปจํ…Œ์ด๋„ˆ ์ƒˆ๋กœ ์‹คํ–‰ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
docker run -it hyperledger/fabric-membersrvc:x86_64-0.6.1-preview bash

์ ‘์†ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์˜ ๊ฒฝ๋กœ์— ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ์—ด์–ด์„œ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

# cd membersrvc
# vi membersrvc.yaml

์„ค์ •ํŒŒ์ผ์„ ์—ด์—ˆ์œผ๋ฉด ์•ž์„  ๋ธ”๋กœ๊ทธ์—์„œ๋„ ๊ฐ•์กฐํ•˜์˜€์˜€์ง€๋งŒ .yaml, .yamlํŒŒ์ผ์€ ๋ชจ๋“  ๊ณต๋ฐฑ์€ ์ŠคํŽ˜์ด์Šค์ด๋ฉฐ ๋“ค์—ฌ์“ฐ๊ธฐ๋„ ๋™์ผํ•œ ์œ„์น˜์—ฌ์•ผ ํ•œ๋‹ค๋Š”๊ฑฐ ๋‹ค์‹œ ๊ธฐ์–ตํ•˜๊ณ  ์ˆ˜์ •ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์„ค์ •์€ ๋‹ค์Œ์˜ ์ตœ์ƒ์œ„ ํ•ญ๋ชฉ์—์„œ ์ˆ˜์ •ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • server:
  • security:
  • logging:
  • eca:

์˜ค๋Š˜ ๋ธ”๋กœ๊ทธ์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ถ”๊ฐ€ ๋ฐ log level์˜ ์ˆ˜์ • ์œ„์ฃผ๋กœ๋งŒ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ( ํ–ฅํ›„ ๋ณด์•ˆ ์„ค์ •์„ ์œ„ํ•œ ๋ธ”๋กœ๊ทธ์—์„œ ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์™€ Validating Peer์— ๋Œ€ํ•œ TLS ์„ค์ •์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. )
๋จผ์ € ๊ฐ„๋‹จํžˆ, ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” logging: ํ•˜์œ„ ์„ค์ • ํ•ญ๋ชฉ์— ๊ฐ’๋งŒ ์ˆ˜์ •ํžˆ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๋กœ๊ทธ๋ ˆ๋ฒจ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • CRITICAL | ERROR | WARNING | NOTICE | INFO | DEBUG

์—ฌ๊ธฐ์—์„œ๋Š” ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ DEBUG๋กœ ์„ค์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํด๋ผ์ด์–ธํŠธ ์ถ”๊ฐ€๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ถ”๊ฐ€๋Š” eca.users ํ•ญ๋ชฉ์—์„œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์€ ์ˆ˜์ •ํ•˜๊ธฐ ์ „ eca.users ์— ์„ค์ •๋œ ๋‚ด์šฉ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

์„ค์ •ํŒŒ์ผ์˜ ๋‚ด์šฉ์— ์˜๋ฌธ์œผ๋กœ ์„ค๋ช…๋˜์–ด ์žˆ์ง€๋งŒ eca.users์—์„œ ํด๋ผ์ด์–ธํŠธ์™€ Peer๋“ฑ์„ ๊ตฌ๋ถ„์€ ์ˆซ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ง€๊ณ  ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • 1: client
  • 2: peer
  • 4: validator
  • 8: auditor

๊ทธ๋Ÿฌ๋ฏ€๋กœ, ํด๋ผ์ด์–ธํŠธ ์ถ”๊ฐ€๋ฅผ ์œ„ํ•œ ๊ฐ’์€ 1์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , Validating peer ์ถ”๊ฐ€๋ฅผ ์œ„ํ•ด์„œ๋Š” 4๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, eca.afiliations ๋Š” ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ง€์ •์ž…๋‹ˆ๋‹ค.

afiliations๋Š” ์œ ์ง€ํ•œ์ฑ„ bank_a์˜ ์†Œ์†์œผ๋กœ ํด๋ผ์ด์–ดํŠธ๋ฅผ ์œ„ํ•œ ID( ID : test_user, PW : password )๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ •๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋กœ ์ˆ˜์ •ํ•˜๊ธฐ ์ „์— ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค ๊ตฌ๋™ ์‹œ ์ƒ์„ฑํ•œ ์ธ์ฆ์„œ ํŒŒ์ผ ๋ฐ ์บ์‹œ ํŒŒ์ผ๋“ค์„ ์‚ญ์ œํ•˜์‹œ๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

์ธ์ฆ์„œ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# rm -rf /var/hyperledger/*

์ž, ๋กœ๊ทธ๋ ˆ๋ฒจ ์ˆ˜์ • ๋ฐ ํด๋ผ์ด์–ธํŠธ ID ์ถ”๊ฐ€๋ฅผ ํ•˜์˜€์œผ๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋น ์ ธ๋‚˜์™€ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋จผ์ € ์‹œ์ž‘ํ•ด ๋ณด๋Š” ๋ธ”๋ก์ฒด์ธ 05 โ€“ ์šด์˜ ๋ชจ๋“œ์—์„œ ์Šค๋งˆํŠธ ์ปจํŠธ๋ž™(์ฒด์ธ์ฝ”๋“œ) ๊ฐœ๋ฐœ์˜ 2๋ฒˆ ํ•ญ๋ชฉ์—์„œ๋„ ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋กœ commitํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ฐธ์กฐ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ปจํ…Œ์ด๋„ˆ ID ํ™•์ธ

๋‹ค์Œ์˜ ๋ช…๋ น์„ ํ†ตํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ID๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.(์กฐํšŒํ•ด์„œ ๋‚˜์˜ค๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์ œ์ผ ๋งˆ์ง€๋ง‰ ์ปฌ๋Ÿผ์— ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.)

docker ps
2. ์ปจํ…Œ์ด๋„ˆ commit

์œ„์—์„œ ํ™•์ธํ•œ ์ปจํ…Œ์ด๋„ˆ ID ํ˜น์€ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋กœ commit์„ ํ•ฉ๋‹ˆ๋‹ค.

docker commit ๋ช…๋ น์˜ ๋งˆ์ง€๋ง‰ ์•„๊ทœ๋จผํŠธ๋Š” ์ƒ์„ฑํ•˜๊ฒŒ ๋  ์ด๋ฏธ์ง€ ๋ช…:ํƒœ๊ทธ ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ๋ช…์„ ์ฃผ์–ด๋„ ๋˜๋ฉฐ, ํ˜„ ์˜ˆ์ œ์—์„œ๋Š” ์›๋ž˜ ์ด๋ฏธ์ง€ ์ด๋ฆ„์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

docker commit < ์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„> hyperledger/fabric-membersrvc:latest

3. ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ

์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค ์ด๋ฏธ์ง€๋ฅผ docker-compose ํŒŒ์ผ์— ์ ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹คํ–‰ ํ•œ ๋’ค, registrar API ํ˜ธ์ถœ์„ ํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์ƒ ๋“ฑ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

peer๋ฅผ ์œ„ํ•œ ID ๋˜ํ•œ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ž…๋ ฅํ•ด์•ผํ•  ํฌ๋งท์€ Validating Peer ์˜ ๊ฒฝ์šฐ {{id: 4 ํŒจ์Šค์›Œ๋“œ}} ์ž…๋‹ˆ๋‹ค.

2. Peer ์„œ๋น„์Šค์˜ ์„ค์ •

๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์— ์ด์–ด Peer ์„œ๋น„์Šค์˜ ์„ค์ •์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Peer ์„œ๋น„์Šค์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ๋“ค์ด ์ฃผ๋กœ ์„ค์ •๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

  • REST Section
  • Logging Section
  • Peer Section

์ด ์ค‘ Peer Section ์—์„œ ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ์„ค์ •๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์„ค์ •ํŒŒ์ผ์˜ ์œ„์น˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณณ์— ์žˆ์Šต๋‹ˆ๋‹ค.

/opt/gopath/src/github.com/hyperledger/fabric/peer/core.yaml

๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค์™€ ๋™์ผํ•˜๊ฒŒ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ์‹คํ–‰์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—†๋‹ค๋ฉด ์ƒˆ๋กœ ์‹คํ–‰ํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์œผ๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ค‘์ผ ๊ฒฝ์šฐ
docker exec -it < ์ปจํ…Œ์ด๋„ˆ ID ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„> bash
  • ์ปจํ…Œ์ด๋„ˆ ์ƒˆ๋กœ ์‹คํ–‰ ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
docker run -it hyperledger/fabric-peer:x86_64-0.6.1-preview bash

์ ‘์†ํ•˜์˜€์œผ๋ฉด ๋‹ค์Œ์˜ ๊ฒฝ๋กœ์— ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ์—ด์–ด์„œ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

# cd peer
# vi core.yaml

๊ทธ๋Ÿผ, ์ด ์„ค์ •ํŒŒ์ผ์˜ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด์„œ ์–ด๋–ป๊ฒŒ ์ฝ์œผ๋ฉด ๋˜๋Š”์ง€ ๊ทธ๋ฆฌ๊ณ  docker run ๋ช…๋ น์— ํฌํ•จ๋˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜์™€๋Š” ์–ด๋–ค ๊ด€๊ณ„์— ์žˆ๋Š”์ง€๋ถ€ํ„ฐ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์•„๋ž˜ ์šด์˜๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” docker-compose ํŒŒ์ผ๊ณผ Peer์˜ ์„ค์ •ํŒŒ์ผ์ธ core.yaml ํŒŒ์ผ์„ ๋น„๊ตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

vp0์˜ environment์— ์žˆ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ค‘ “- CORE_PEER_ID=vp0” ๋ฅผ core.yaml ํŒŒ์ผ๊ณผ ๋น„๊ตํ•˜๋ฉด ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ “peer:” ํ•˜์œ„์— ์žˆ๋Š” “id:”์— ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.
core.yaml์—์„œ๋Š” peer.id ๋กœ ์ฝ์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. docker-composeํŒŒ์ผ์—์„œ๋Š” ํ•ด๋‹นํ•˜๋Š” ํ•ญ๋ชฉ์—์„œ ์•ž์— “CORE”๋ฅผ ๋ถ™์—ฌ์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜์˜ ํ‚ค๊ฐ’์„ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜์‹œ๋Š” docker-compose ํŒŒ์ผ๊ณผ core.yaml๊ณผ ๋น„๊ตํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

membersrvc:
  image: hyperledger/fabric-membersrvc:x86_64-0.6.1-preview
  ports:
    - "7054:7054"
  command: membersrvc
vp0:
  image: hyperledger/peer:1.0
  ports:
    - "7050:7050"
    - "7051:7051"
    - "7053:7053"
  environment:
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_VM_ENDPOINT=https://192.168.99.100:2376
    - 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"

์šด์˜๋ชจ๋“œ์™€ ๊ฐ™์ด multi nodeํ™˜๊ฒฝ์—์„œ ๋ฐ˜๋“œ์‹œ ๋…ธ๋“œ๋ณ„๋กœ ์„ค์ •ํ•ด์•ผ ํ•  ํ•ญ๋ชฉ์€ ๋‹ค์Œ์ž…๋‹ˆ๋‹ค.

  • peer.id
  • vm.endpoint

๊ทธ๋ฆฌ๊ณ  ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์‹œ ๋‹ค์Œ์˜ ํ•ญ๋ชฉ์„ ๋ฐ˜๋“œ์‹œ ์„ค์ •ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • security.enabled
  • security.enrollid
  • security.enrollsecret
  • peer.pki.eca_paddr
  • peer.pki.tca_paddr
  • peer.pki_tlsca.paddr

์œ„์˜ ๋ถ€๋ถ„์„ ์œ ๋…ํ•ด์„œ ์„ค์ •ํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ผ๋ฉฐ, ์„ค์ • ํ•ญ๋ชฉ ์™ธ ๋ชจ๋“  ์ ˆ์ฐจ๋Š” ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค ์„ค์ • ๋•Œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.