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

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ณ€ํ™”๋œ Hyperledger Fabric v1.0์˜ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

Hyperledger Fabric์˜ ์˜๋ฌธ ๋ฌธ์„œ๋“ค์€ ๋‹ค์Œ์˜ ๋งํฌ์—์„œ๋„ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ์œผ๋‹ˆ ์ฐธ์กฐํ•˜์„ธ์š”. Fabric ๊ธฐ์ˆ ๋ฌธ์„œ
์ตœ์ข… Fabric v1.0์ด ๋ฐœํ‘œ๋˜๊ธฐ ์ „๊นŒ์ง€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… GA ๋˜๊ธด ์ „์—” ์„ค๋ช…์˜ ๋‚ด์šฉ์ด ๋‹ค์†Œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. Fabric v0.6 ์•„ํ‚คํ…์ฒ˜

Fabric v0.6์˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋˜๋Œ์•„ ๋ณด๋ฉด Membership Service, Peer๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
Membership Service๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ enroll ๋ฐ ๊ด€๋ จ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑ,์กฐํšŒ ๋“ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์˜€๊ณ ,
Peer ์—์„œ ๋ธ”๋ก์ฒด์ธ ๊ฐœ๋…์—์„œ ํ•„์š”ํ•œ ์ž‘์—…๋“ค(ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ฒด์ธ์ฝ”๋“œ, ์ด๋ฒคํŠธ, ์›์žฅ ๊ด€๋ฆฌ ๋“ฑ)์„ ์ˆ˜ํ–‰ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

2. Fabric v1.0 ์•„ํ‚คํ…์ฒ˜

Fabric v1.0 ์˜ ์ปจ์…‰์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค

  • ํŠธ๋žœ์žญ์…˜์— ์„œ๋ช…(Endorsement)ํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์— ๋ฐ˜์˜
  • ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๋ฐ ๊ธฐ๋ฐ€์œ ์ง€ ์ง€์›
  • ์ฐธ์—ฌ์ž ์ˆ˜์™€ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋Ÿ‰(TPS) ์กฐ์ ˆ
  • ๋น„๊ฒฐ์ •์ (non-deterministic) ํŠธ๋žœ์žญ์…˜ ์ œ๊ฑฐ
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์˜ ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด(์›์žฅ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ DB)
  • Fabric๊ณผ ์ฒด์ธ์ฝ”๋“œ์˜ ๋™์  ์—…๊ทธ๋ ˆ์ด๋“œ ์ง€์›
  • SPF(Single Point of Failure)๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฉ€ํ‹ฐํ”Œ ๋ฉค๋ฒ„์‰ฝ ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

๊ทธ ์ค‘ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”๋Š” Peer์˜ ์—ญํ• ์ž…๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์—์„œ ๋ชจ๋“  ์—ญํ• ์„ ํ•˜๋‚˜์˜ Peer ์ฆ‰, Validating Peer ์—์„œ ์ˆ˜ํ–‰ํ•˜๋˜ ๊ฒƒ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€์˜ ์—ญํ• ๋กœ ๋‚˜๋ˆ ์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Endorsing Peer ( Endorser )
  • Ordering-service-node ( Orderer )


[์ถœ์ฒ˜] : https://jira.hyperledger.org/browse/FAB-37

์œ„์˜ ๊ทธ๋ฆผ์—์„œ ๋ณด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ƒˆ๋กœ์šด ๋ฒ„์ „์ธ Fabric v1.0 ์—์„œ๋Š” SDK์˜ ์—ญํ• ์ด ๋”์šฑ ์ปค์ง‘๋‹ˆ๋‹ค.
์ด์ „ ๋ฒ„์ „์— ์žˆ๋˜ REST API๋Š” ์—†์–ด์ง€๊ณ  grpc ๋˜๋Š” CLI๋ฅผ ํ†ตํ•ด์„œ ๋ธ”๋ก์ฒด์ธ ์„œ๋ฒ„์™€ ํ†ต์‹ ์„ ํ•˜๋ฉฐ ๋‹ค์†Œ ๋ณต์žกํ•ด์ง„๋“ฏ์ด ๋ณด์ด๋Š” ํŠธ๋žœ์žญ์…˜์˜ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ํ๋ฆ„์„ ์•„์ฃผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์ตœ์ดˆ Client๊ฐ€ ๋ธ”๋ก์ฒด์ธ์— ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰์„ ์œ„ํ•œ Proposal์„ ํ•ฉ๋‹ˆ๋‹ค.
  2. Proposal์€ Endorse Peer์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
  3. Endorser๋“ค์€ Poroposal์„ endorsement policy์— ์˜๊ฑฐํ•ด Validateํ•˜์—ฌ ์„œ๋ช…์„ ํ•œ ๋’ค Proposal response๋ฅผ Client์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  4. ์„œ๋ช…๋œ proposal response๋ฅผ ๋ฐ›์€ Client๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  5. ํŠธ๋žœ์žญ์…˜์€ ๋ชจ๋“  ์ฑ„๋„์— ๋Œ€ํ•ด์„œ Orderer๊ฐ€ ๋ฐ›์•„์„œ ํŠธ๋žœ์žญ์…˜์˜ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ์„ ํ•ฉ๋‹ˆ๋‹ค.
  6. Orderer์— ์˜ํ•ด ์ •๋ ฌ๋œ ํŠธ๋žœ์žญ์…˜์€ ํ•ด๋‹น ์ฑ„๋„์„ ํ†ตํ•ด ๋‹ค์‹œ Peer๋กœ ๋ณด๋‚ด์ ธ์„œ ์ตœ์ข…์ ์œผ๋กœ ์›์žฅ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ ํ๋ฆ„์—์„œ Endorse๋Š” ๋น„๊ฒฐ์ •์ ์ธ ํŠธ๋žœ์žญ์…˜์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ฒฐ์ •์ ์ธ ํŠธ๋žœ์žญ์…˜๋งŒ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ฒŒ๋˜๋ฉฐ,
Orderer๋Š” Fabric v0.6 ์—์„œ Validating Peer ๊ฐ€ ์ˆ˜ํ–‰ํ–ˆ๋˜ PBFT์™€ ๋น„์Šทํ•œ SBFT์™€ ๊ฐ™์€ ํ•ฉ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.(์ •ํ™•ํžˆ PBFT๋Š” ์•„๋‹™๋‹ˆ๋‹ค)

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

Ordering Service๋Š” ๋‹ค์Œ์˜ ์„ค์ • ์˜ต์…˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • SOLO : ์‹ฑ๊ธ€ ๋…ธ๋“œ๋กœ ์„ค์ •
  • Kafka / Zookeeper : 1:n ๋…ธ๋“œ๋กœ Crash Fault Tolerance ์ œ๊ณตํ•˜๋ฉฐ, ํ™€์ˆ˜ ๋…ธ๋“œ๋ฅผ ๊ถŒ์žฅํ•จ.
  • SBFT (Future) : 1:n ๋…ธ๋“œ๋กœ Byzantine Fault Tolerance ์ œ๊ณต

3. ์ •๋ฆฌํ•˜๋ฉฐ

์ด๋ฒˆ ๊ธ€์€ ์ƒˆ๋กญ๊ฒŒ GA๋  Fabric v1.0 ์˜ ์•„์นดํ…์ฒ˜ ์ค‘ ํ‘œ๋ฉด์ ์ธ ์ปดํฌ๋„ŒํŠธ ๋“ค์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํžˆ ์„ค๋ช…์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋ณ€ํ™”๋œ ์ปดํฌ๋„ŒํŠธ๋งŒ ํ•ด๋„ ๊ทธ๋ฆฌ๊ณ  ๊ทธ์— ๋”ฐ๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ํ๋ฆ„๋งŒ ๋Œ€๋žต๋ด๋„ ๋งŽ์€ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๊ณ  ๊ทธ ๋ง์€ ๊ณต๋ถ€ํ•  ๋‚ด์šฉ์ด ๋งŽ์•„์กŒ๋‹ค๊ณ  ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.
์•ž์œผ๋กœ๋Š” ์ข€ ๋” ์ƒ์„ธํ•˜๊ฒŒ ํŠธ๋žœ์žญ์…˜์˜ ํ๋ฆ„์„ ์„ค๋ช…ํ•˜๋ฉด์„œ ๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ ์—ญํ• ์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์•ž์œผ๋กœ๋„ ์ด์–ด์งˆ ๋‚ด์šฉ ๊ธฐ๋Œ€๋ฐ”๋ž๋‹ˆ๋‹ค.