본문 바로가기
블록체인/Hyperledger

하이퍼레저 패브릭(Hyperledger Fabric) Ⅱ

by upswp 2021. 3. 15.

하이퍼레저 패브릭 네트워크

하이퍼레저의 구성 요소를 바탕으로 네트워크 구축하는 과정을 단계별로 알아보자!

위의 그림은 3개의 조직이 속해 있는 네트워크이다. 여기서 Org1과 Org2만 공유할 수 있는 원장을 만들기 위한 채널을 생성하기 위한 과정을 살펴본다.

Org1과 Org2가 서로 협의하여 오더링 서비스 노드를 구축한다.

이후 orderer는 채널에 참여하는 조직 및 노드에 대한 정보와 블록 생성 방법 및 블록 당 트랜잭션 허용 정보등을 바탕으로 제네시스 블록을 생성하여 채널을 구축한다.

채널이 구축되고 나면 각 조직에서는 Leader peer를 채널에 참여시키고, 채널 1에서 공유할 수 있는 원장을 보유하게 된다.

채널 1에서 공유하는 원장에 접근하기 위해 체인코드를 설치(execution을 수항하는 endorsing peer에 설치)하고 사용자들도 참여할 수 있도록 dapp도 함께 설치한다.

  • DAPP(Decentralized Application) : 탈중앙화된 어플리케이션으로, 이더리움이나 퀀텀 등의 플랫폼 위에서 동작하는 어플리케이션을 말한다.

더 나아가 목적에 맞게 채널들을 여러 조직과 이어 나갈 수 있다.

하이퍼레저 패브릭 동작 흐름

  1. 클라이언트 어플리케이션이 피어에 연결한다.
  2. 연결이 되면 트랜잭션을 생성해서 피어의 endorser에 보낸다.
  3. 피어는 받은 트랜잭션에 대해 체인코드를 확인한다.
  4. 체인코드는 원장에 대한 쿼리 거래의 경우 즉시 결과를 반환한ㄷ.
  5. update와 같은 원장에 대한 변경이 있는 트랜잭션일 경우 피어는 받은 트랜잭션에 대해 응답을 한다.
  6. 응답을 받은 클라이언트는 해당 거래 제안을 orderer에 보낸다.
  7. 오더러는 합의 알고리즘에 의거해 블록을 생성하고 이를 피어로 보낸다.
  8. 피어의 앵커(anchor)는 오더러로 부터 트랜잭션 블록을 받고 committer가 트랜잭션을 검증하여 확정한다. 또한 이를 이용해 피어는 원장을 업데이트 한다. 이후 클라이언트에게 업데이트 이벤트를 보낸다.
  9. 클라이언트는 업데이트 이벤트를 받게되고 트랜잭션 과정이 끝난다.