* 본 문서는 hyperledger-fabricdocs Documentation Release master 을 공부한 내용을 바탕으로 개인적인 방식으로 작성되었습니다.
키워드 | 역할 | 특징 |
Network (N) | Hyperledger Blockchain Network 가 구성될 Private Network | |
Network Configuration (NC) | 특정 Organization 들을 위한 Network 구성 | Network Configuration 에 대한 권한은 초기 구성한 Organization 뿐만 아니라 정책(policy) 변경을 통해 추가 부여 받은 Organization 또한 해당 Network Configuration에 대한 모든 권한을 가짐 |
MSP(Memebership Services Provider) | 신규 멤버에게 네트워크 접근 허가 권한을 부여 | X.509 인증 방식 사용 |
Organization (R) | Network Configuration의 관리자 | MSP 를 통해 신규 멤버를 Network Configuration 에 추가 할 수 있 다른 Organization 과 Consortium 을 이룰 수 있 |
Consortium (X) | Organization 간의 컨소시움 | 구성된 Network Configuration 에 대한 모든 권한을 보유 |
Channel Configuration (CC) | Consortium 을 위한 채널 구성 | Channel Configuration 정책에 맞는 organization 만 channel 에 참여 가능 |
Channel (C) | Consortium 노드들의 통신 채널 | channel 은 Network 로부터 완전한 독립 channel 참가자 들에게만 권한이 있음 |
Ledger (L) | 채널 당 1개의 Ledger | Smart Contract에 의해서 조회 및 업데이트 됨 |
Orderer (O) | Transaction을 전달 받고 Block 을 채널에 전파 | Orderer는 자신과 연결된 channel 들의 존재만 알 뿐 내부 내용은 알지 못함 |
Peer (P) | Committing peer, Endorsing Peer, Leader Peer, Anchor Peer(option) | Commit peer - 모든 peer 노드는 committing peer - 트랜잭션들의 블록을 수신 - 트랜잭션들은 이후에 검증됨 - 검증은 각 peer node의 ledger 사본에 커밋하여 기록하기 전에 이루어짐 Endorsing peer - smart contract가 설치된 모든 peer는 endorsing peer 가 될 수 있음 - 해당 smart contract 는 client application이 트랜잭션 서명 응답을 받을때 사용 되어야만 함 - smart contract 에 대한 endorsement policy 는 organization 에서 어떤 peer가 전자서명을 할 것인지 규정함 - 이는 committing peer 의 ledger 사본에 기록되기 전에 이루어짐 Leader peer - orderer로부터 다른 committing peer들로 트랜잭션을 전달하는 역할을 함 - static/dynamic 방식의 leader 설정 가능 - organization의 peer들은 orderer와 연결 된 1개 이상의 leader peer 노드를 보유 할 수 있음 - 이를 통해 대량의 트랜잭션이 발생하는 대규 네트워크에서 확장성과 탄력성을 높여줌 Anchor peer - 다른 organization 과 연결된 노드 - channel configuration 에 정의 - 옵션 |
Smart Contract (S) | Ledger 를 query 및 update 하기 위한 수 transaction logic 을 담고 있음 Peer에 설치되어야 사용 가능 설치 후 Channel 에 배포 되어야 함 |
Smart Contract 를 설치 한다는 것 - peer에 물리적인 smart contract 호스팅을 한다는 것 Smart Contract가 Channel 에 정의 되었다 것 - 논리적인 호스팅이 채널에 이루어 졌다는 것 Smart Contract 를 설치했다 하더라도 내부 program logic 을 볼 순 없음 |
Chaincode | Smart Contract 를 블록체인 네트워크 deploy 할 때 패키징 되는 형태 | chaincode commit 은 channel 당 1 멤버만 가능 배포 위해 과반수의 Organiaztion 들이 Chaincode definition 을 허가 해야 함 그 이후에야 Client Application 이 Smart Contract 호출 가능 |
Endorsement Policy | transaction 에 대한 서명 정책 | transaction에 대해 우선적인인 허가를 누가 할 것인지 정해야 함 정책 반영: chaincode 정의를 channel에 committing 하여 channel ledger에 endorsement policy를 올리는 행위 |
나만의 해석
Hyperledger Fabric 이라는 가상의 공간
- Network: 건물
- Network Configuration: 건물 사용 정책
- 건물 사용 정책에 등록된 입주사만 건물에 입주 할 수 있음
- 초기에는 첫 입주사가 건물 사용 정책을 마련 후 입주
- Organization: 건물의 입주사
- 입주사는 건물 관리에 대한 권한을 보유
- 입주사는 다른 신규 멤버를 MSP 를 통해 초대 할 수 있음
- 입주사에 의해 초대된 신규 멤버 기존 입주사와 동등한 권한을 보유
- 입주사는 다른 입주사를 초대하여 모임을 이룰 수 있음
- 모임은 회의실에서 진행 할 수 있음
- Organization Units(OU): 입주사에서 특정 목적을 갖고 분할된 팀
- 팀 별로 목적에 맞게 건물 사용자 정책을 구성 할 수 있어 편리함
- 반면에 각 팀별로 멤버 자격 검증 서비스를 관리 해야 함
- Node Organization Units(Node OU): 팀별 서명 검증 서비스 관리 담당자
- 지정된 담당자를 통해 팀 멤버 서명 검증 서비스를 관리
- 명확한 목적이 팀에 맞게 서명 검증 서비스를 분할 할 수 있음
- Policy: 건물 사용 정책
- 건물, 회의실, 의제 정관리 프로그램에 대한 변동사항을 수락 혹은 거절하는 결정권을 어떤 사용자에게 부여할 것인지에 대한 정책
- 이는 회의 참여자들에 의해 동의됨
- MSP(Membership Services Provider): 개인의 서명을 통한 입주사 사이의 멤버 자격 검증 서비스
- 기존 입주사가 새로운 사람을 초대해주기 위해서는 신규 멤버의 서명으로 입주사로서의 자격을 검증하여 등록
- 역할
- 어떤 대표 서명 생성 업체 혹은 중간 서명 생성 업체에서 서명을 발급 받았는지 멤버 허가 리스트 관리
- 어떤 서명 생성 업체를 통해 입주사 멤버들이 유효한 서명을 발급했는지 확인
- Local MSP: 회의실 안에서 이루어지는 의견 제시를 위한 멤버 자격 검증 서비스
- 회의 참여하는 모든 멤버는 등록이 되어있어야만 함
- Channel MSP: 회의실 사용에 대한 멤버 자격 검증 서비스
- 회의에 참여하는 모든 입주사들은 회의실 사용 멤버 자격 검증 서비스가 등록 되어야 함
- 입주사의 건물 관리자 또한 회의실에 대한 자격 검증 서비스에 등록 되어있어야 함, 그래야 회의실에서 나오는 의견을 듣고 결과를 전달 할 수 있음
- 회의에 참여하는 모든 멤버가 등록이 되어 있을 뿐만 아니라 회의실에서 의제에 대한 의견 합의를 하는 과정에서도 지속적으로 검증이 되어야 함
- X.509: 서명 방식
- CA: 개인 서명 생성 업체
- 입주사에 신규 멤버 등록전에 개인 서명 생성 업체를 통해 서명을 생성해야 함
- Certification: 개인의 서명으로서 멤버 자격 정보 관리 업체를 통해 발행
- 의견 제시시 해당 자격 정보를 통해 의견 서명 진행
- 의겸 검증시 해당 자격 정보를 통해 의견 검증 진행
- Being a new organization member: 입주사의 새로운 멤버로 참여하여 활동하기 위해서는 다음과 같은 조건이 필요
- 입주사 멤버 자격 정보 관리 업체로부터 서명 생성
- 기존 건물 입주사들의 승인. 이는 신규 멤버의 서명과 해당 입주사의 멤버 자격 매칭 서비스를 통해 진행
- 초대 멤버 모임 혹은 회의실에 해당 신규 멤버가 포함된 자격 매칭 서비스를 업데이트
- 건물 사용자 정책에 신규 멤버 등록
- Consortium: 건물 입주사가 회의에 초대한 멤버들과의 모임, 회의 참여자 모임
- Orderer: 입주사 소속 건물 관리자, 회의실에서 나온 의견을 듣고 결과를 전달해주는 역할
- 첫 건물 입주사에서 건물 관리 역할을 수행 하는 것이 일반적인 상황
- 첫 입주사 이후 입주한 다른 입주사는 건물 관리자에 대한 동등한 권리를 가짐(근무는 여전히 기존 입주사에서 맡음)
- 추후 다른 입주사 또한 본인들의 건물 관리자를 지정할 수 있음(이 또한 다른 건물 입주사들과 동일한 권리를 공유)
- 어떤 회의실을 가 사용하는지 알 수 있음
- Channel: 건물의 회의실
- 회의실 외부 공간과 완벽한 차단
- 회의실 사용 정책에 등록된 멤버만 참여할 수 있음
- 회의실에 참석한 모든 멤버는 회의실에 대한 동등한 권한을 보유
- Consensus: 회의실에서 나오는 의견들에 대한 합의 과정
- Transaction: 회의실에서 나온 의제에 관련한 의견들
- Ledger: 의제 정보가 담긴 데이터 베이스
- 회의실 서버당 한 종류의 의제 정보 데이터베이스 보유
- 각 멤버는 회의실 서버의 의제 정보 데이터베이스 사본을 보유
- 변동 사항이 있다면 자신의 사본 데이터베이스에 기록
- Smart Contract: 의제 정보 관리 프로그램
- 이 프로그램이 설치되어 있어야만 의제를 관리 조회 및 수정 할 수 있음
- 해당 프로그램을 사용해서 의견이 제출 됨
- Chaincode: 의제 정보 관리 프로그램의 배포 버전, 배포는 채널 당 1 멤버만 함
- Chaincode Commit: 의제 정보 관리 프로그램을 수정하여 회의실에 배포한다는 것은 해당 회의실의
- Channel Configuration: 회의실 사용 정책
- 사전에 등록된 멤버만 회의실 을 사용 할 수 있음
- Peer Joining Channel: 입주사 멤버가 의제를 회의실에 올리는 행위
- 한 입주사의 멤버는 의제를 발의하기 위해 의제 정보 데이터 베이스와 의제 관리 프로그램을 해당 회의실 서버에 올려 다른 회의 참여자들과 공유 하려 함
- 참석하기 위해서는 자신의 입주사의 건물 관리자에게 본인 인증 과정과 함꼐 회의실 참여 요청을 보냄
- 해당 입주사의 건물 관리자는 요청을 받으면, 회의실 사용 정책에 해당 멤버 권한을 추가
- 이를 통해 참석된 멤버는 회의실에서 해당 회의의 의제 정보 데이터베이스와 의제 관리 프로그램을 해당 회의실 서버에 올려 다른 회의 참여자들과 공유 할 수 있음
- Endorsement: 회의 참석한 지정 입주사의 의제에 대한 의견 서명
- Endorsement Policy: 다른 입주사들이 자신의 의제 정보 사본 데이터 베이스에 기록 하기 전에 대표로 의견 서명을 진행 할 입주사 선택 정책
- Client Application: 회의실에서 이루어지는 의제에 관련된 외부 일반 사용자, 의견 제시
- 의제 정보 관리 프로그램이 설치된 멤버를 통해 접속 할 수 있음
- 외부 일반 사용자는 의제에 관련된 의견을 제시
- 제시된 의견은 의제 관리 프로그램에 입력 됨
- 입력된 의견은 의제 정보 관리 프로그램 설치 멤버에 의해 서명된 이후 일반 사용자에게 서명 응답이 전달 됨
- Peer: 회의 참석자(회의 참석 가능한 세입자 집단 소속)
- with Smart Contract Installed Peer: 의제 정보 관리 프로그램이 설치 되어있는 경우 의견에 대해 서명 할 수 있음
- without Smart Contract Installed Peer: 의제 정보 관리 프로그램이 설치 되어있지 않은 경우 의견을 검증 찬성 반대만 할 수 있음
- Commiting-Peer: 회의실에 참석한 모든 멤버에 해당
- 회의실에 나온 의견에 대해 검증 할 수 있음
- Endorsing-Peer: 의제 정보 관리 프로그램이 설치된 멤버(실제 사용되는 보안 버전과 일치 해야 함)
- 의견에 대한 서명을 진행
- 의견 서명 담당자 지정 정책에 등록된 멤버만 될 수 있음
- Leader-Peer: 입주사 대표자, 동일 입주사에서 여러 멤버가 회의에 참석 한 경우 필요
- 관리자로부터 전달 받은 내용을 회의실 내부 참석 해당 입주사 멤버들에게 전달 공지
- 동일 입주사에서 회의에 참석한 멤버가 여러명일 경우 선정 가능
- 해당 입주사 회의 참석자 중 대표자 선정은 고정 혹은 변동으로 가능
- Anchor-Peer: 외부 연락책
- 회의에 참석한 입주사가 아닌 입주사와 연락하기 위한 특별 외부 연락책
'Hyperledger Fabric' 카테고리의 다른 글
[Paper Summary] Performance Benchmarking and Optimizing Hyperledger Fabric Blockchain Platform (0) | 2020.07.29 |
---|---|
[Hyperledger Fabric v2.0] Policies (0) | 2020.07.28 |
[Hyperledger Fabric v2.0] Transaction Workflow (0) | 2020.07.27 |
[Hyperledger Fabric v2.0] sample network 구축 (0) | 2020.07.23 |
[Hyperledger Fabric v2.0] MSP structure (0) | 2020.07.21 |
댓글