1. Gossip
- peer 들은 스스로 끊임 없이 브로드캐스트 메시지를 생성하여 peer 들의 상태를 확인
- 상태를 업데이트 하지 못한 peer 는 무작위로 보내지는 분산원장을 받을 수 없음
- 각 조직의 peer 들은 orderer 로부터 분산원장을 업데이트 할 수 있는데 한 꺼번에 많이 오면 과부하
- Leader peer 를 무작위로 선출하여 대표로 orderer와 통신
Leader peer
- peer 들에게 주기적으로 heartbeat 메시지를 보내어 살아있는지 확인
- heartbeat 메시지가 수신되지 않으면 죽은것으로 간주후 채널에서 제
2. Identity
PKI (public key infrastructure)
- peer, orderer, client 가 서로 신원을 확인할 수 있게함
- peer, orderer, client 의 디지털 인증서를 cryptogen, Fabric-CA 를 이용하여 생성가능
- 디지털 인증서를 안전하게 제공/생성/관리하는 기술
- CA (Certificate Authority) 에서 관리
- 디지털인증서, 공개키/비밀키, CA, Certificate Revocation List
디지털인증서
- 국제표준 X.509 인증서 사용
- 인증서 양식
- Certificate Format Version : 인증서 버전
- Certificate Serial Number : 인증서 시리얼 구분번호
- Signature Algorithm Identifier for CA : CA가 사인할 때 사용하는 알고리즘
- Issuer Name : CA 정보
- Validity Period : 인증서 유효기간의 시작일과 만료일
- Subject Name : 인증서 사용자 정보
- Subject Public Key Information : 인증서 사용자 공개키
- Extension : 인증서의 추가적인 정보와 정책
- CA Signature : CA의 디지털 인증서
공개키와 비밀키
- 신원인증과 데이터 암호화
- 인증방식
- 사용자A의 비밀키를 이요해 데이터 암호화
- 사용자 A의 공개키 획득
- 암호화된 파일 전송
- 사용자A의 공개키를 이용해 데이터를 복호화
- 데이터 암호화방식
- 사용자 A의 공개키 획득
- 사용자A의 공개키를 이요해 데이터 암호화
- 암호화된 파일 전송
- 사용자A의 비밀키를 이용해 데이터 복호화
CA
- 공개키와 비밀키만으로는 보안이 취약하여 나온 인증 노드
- 사용자A의 공개키를 CA 로 부터 받아 사용자 인증
CRL
3. MSP(Mermbership Service Provider)
- Identity 기술을 바탕으로 만든 멤버쉽 관리 기술
- 각 organization 에 맞게 조직을 세분화 할 수 있음
Local MSP
- 하이퍼레저 패브릭 네트워크 노드에 역할을 부여함
- 어떤 노드가 peer, orderer, client 인지 정의
- 노드별 권한 정의
- 모든 네트워크 노드는 하나 이상의 local MSP 정의되어야 함
Channel MSP
4. Orderer
과정
트랜잭션 제출
- DApp 이 Endorsing peer 에게 트랜잭션을 제출
- Endorsing peer 는 전달받은 proposal 값을 바탕으로 체인코드를 시뮬레이션
- 올바른 값이 나오면 Identity 를 이용해 서명한 디지털 인증서와 read/write set을 함께 DApp에 전송
- 해당 트랜잭션의 체인코드가 실행되는 과정
블록 패키징
- 제출한 트랜잭션을 orderer가 수집하여 순서대로 정렬한 후 최신 블록을 생성하는 과정
- Endorsing peer 에게 받은 인증서와 set를 DApp 은 orderer 에게 전달
- 트랜잭션을 전달받은 orderer은 순서대로 정렬한 후 최신 블록 생성
검증
- 생성한 블록을 각 조직의 peer 들에게 전달하고 peer 는 해당 블록이 올바르게 생성됐는지 검증
- orderer 에게 블록을 전달받은 Leader peer 는 peer 들에게 블록을 전달
- peer 들은 블록에 포함된 결괏값이 정상적인지, 각각의 트랜잭션 결괏값이 정책에 부합하는지 검증 작업 거침
- 로컬저장소에 블록체인에 최신 블록을 추가하고 World state 데이터 베이스를 업데이트
카프카 클러스터
- 파티션에 topic 단위의 메시지를 저장
- 메시지는 여러 파티션에 복사되어 저장
- 일정한 메시지가 모이면 consumer 에게 전달
- Producer - orderer
- Consumer - Peer
- Topic - 분산원장