Blockchain (Hyperledger Fabric)/작업 중인 Solution

Hyperledger Composer 정리

김야키 2019. 4. 19. 13:16

이번 포스팅은 제가 스터디한 내용을 적으려고 합니다!

 


 

우선 개발하는 Hyperledger Composer을 정리 해 봐야겠습니다.

 

Development environment

Frameworks : Hyperledger Fabric

  • Hyperledger 블록체인의 기본 틀을 제공해 주는 프레임워크
  • 프레임워크를 이용하여 블록체인 환경을 개발
  • 기본적으로 제공해 주는 Admin Card를 이용

Tools : Hyperledger Composer

  • Fabric를 더 체계적으로 개발을 할 수 있도록 도움을 주는 Tool
  • Playground를 이용한 GUI개발이 가능
  • Development Tools를 이용하여 CLI환경 개발이 가능
  • 여러가지 Key Concepts를 이용하여 개발에 도움을 줌
  • Eclipse, Visual Studio, Android Studio등과 같은 개발 Tool

 

가볍게 이야기 하면 Fabric라는 프레임워크를 Composer이라는 툴 위에 얹어서 개발을 한다고 보시면 편하겠습니다.

뭐... Eclipse위에 JAVA를 얹어서 웹개발을 한다던가 Visual Studio위에 C#을 얹어서 개발을 한다는 의미로 보시면 됩니다.

사실 Fabric의 Chaincode가 어떻게 형성이 되고 작성이 되는지는 아직 정확히 알 수가 없네요...

 


 

다음으로는 Tools에서 언급했던 Key Concepts를 이야기 해보겠습니다.

(제가 아는 선에서 작성을 하는지라 부족한 부분은 댓글로 피드백 해주시면 좋겠습니다.)

 

Key Concepts

Blockchain State Storage

  • 비즈니스 네트워크를 통해 이루어진 모든 트랜잭션은 블록체인 원장(Ledger)에 저장되고 현재 자산(Asset) 및 참가자(Participant) 상태는 블록체인 상태 데이터배이스에 저장 됨
    • 뒤에서 말할 자산(Asset)과 참가자(Participant)들의 정보들은 상태 데이터베이스에 저장
    • 참가자간의 자산 거래내역을 즉 트랜잭션 내역을 Ledger에 저장을 한다는 의미 입니다.
  • 블록체인은 원장(Ledger)과 상태 데이터베이스를 피어(Peer) 집합에 분산 시키고 원장(Ledger) 및 상태 데이터베이스에 대한 업데이트가 합의 알고리즘을 사용하여 모든 피어(Peer)간에 일관성 있게 유지 되도록 함
    • 저는 다루지 않았지만 실제 블록체인 네트워크는 여러 서버에 걸쳐서 연결되어 구성이 되는 하나의 네트워크 입니다.
    • 이 여러 서버가 각자가 원장(Ledger)에 현재 이루어지는 모든 트랜잭션을 기록하고, 이 기록을 모든 서버가 일관성 있게 유지시키기 위해서 합의 알고리즘 이라는 기록한 원장(Ledger)의 유효성 검사를 합니다.
    • 이 유효성 검사가 완료 되면 네트워크 내의 모든 서버가 동일한 원장(Ledger)를 기록하고 있게 됩니다.

Assets

  • 자산(Asset)은 유형 또는 무형의 상품, 서비스 또는 거래를 하는 물품을 나타내며 레지스트리에 저장됨
    • 거래를 진행하기 위해서는 거래를 하는 사람 외에 무었이 필요할까요? 당연히 거래를 진행하는 물품이 필요합니다.
    • Hyperledger에서는 이 물품을 자산(Asset)이라 표현을 하고 있을 뿐 입니다.
    • 당연히 디지털화 된 물품이기 때문에 현실에 존재하는 물건이 아닌 계약 내용등이 될 수도 있으며, 판매하는 주택, 특정 그룹의 회비, 실제 물품의 정보 등을 선언할 수 있습니다.
  • 자산(Asset)은 비즈니스 네트워크의 거의 모든 것을 나타낼 수 있음
    • 앞서 말한 판매하는 주택은 실제 주택을 등록하는 것이 아닌 주택의 정보를 등록한다는 의미 입니다.
    • Hyperledger 네트워크 상에서는 이 주택의 소유주를 기록하여 저장한다고 보면 됩니다.
  • 자산(Asset)에는 고유한 식별자가 있어야 하지만 그 외에는 정의한 모든 속성을 포함할 수 있음
    • 거래를 진행하기 위해서 등록한 물품 혹은 자산(Asset)에는 그에 따른 식별자가 필요합니다.
    • 특정 정보를 담고 있는 물품의 '이름'이라고 보시면 됩니다.

 

여담

티스토리가 바뀐뒤로 글꼴 설정을 어떻게 해야할지 몰라서 좀 난잡해 보이긴 하지만 최대한 정리는 하였습니다...ㅠㅠ

다음 포스팅에서는 Key Concepts에서 제가 사용했던

  • Participants
  • Transactions
  • Queries
  • Historian Registry
  • Business Network Cards

등을 다루어 보도록 하겠습니다!

궁금하신 점이나 피드백은 언제나 환영합니다!! 하지만 비난은 하지 말아주세요...ㅠㅠ 저도 아직 학생이라 부족합니다..