#8. 패브릭 가십 프로토콜

ㅁ구성요소들  커뮤니케이션 : 가십 프로토콜.

 ㅇ피어  블록 송수신 관련.

  -헤더를  받고 헤싱으로-

  -인증서 기반으로 소통을 (일반 퍼블릭 블록체인과 다른 ).

 

  -커미터 : 모든 피어. 블록체인(레져) 소유. execute, validate 하는 역할.

  -앵커 : 자신이 속한 organization 네트워크 정보 소유  전달 역할.

  -리더 : 오더러로 부터 블록받아옴. 주는 것만 받는  아닌 필요할  자신이 땡겨올 수도 있음(시간설정).

           ※리더 선정 : 어드민의 지정 혹은 자기들끼리의 선택.

 

ㅁ피어(앵커)

 ㅇ초기 블록체인 네트워크 설정시 오더러, 피어  위치 확인해야 .

 (cli 이용해서) 채널을 만들 , 오더러 옵션 부여 가능하므로 이때 특정 피어 존재를 알리게 .

 ㅇ앵커피어 트랜잭션을 통해 네트워크에 알리기 가능.

       ※크립토 관련 재료 제작 , 채널관련 트랜잭션, 앵커피어 트랜잭션( 그룹의 앵커피어가 누군지 알리는)  제작.

 

ㅁ리더피어

 ㅇ어드민이 정의 : 환경변수 or core.yaml. 통해 정의

          ) docker-compose-node3.yaml - org2peer0 - enviroment

          ) - CORE_PEER_GOSSIP_USELEADERLECTION : false

          ) - CORE_PEER_GOSSIP_ORGLEADER : true

 

 ㅇ다이나믹으로 선언 :

  - 명의 리더 , 나머지는 팔로워. 피어들은 항상 서로에게 heart beats 날리며

  -리더의 heart beats 안오면 리더 선출이 시작되며 ID 높은 peer 리더가 .

 

ㅁ오더러 연결

 config 통해서 연결 : genesis.block

  -초기 네트워크 셋업시 - 크립토 관련 모듈 제작 - conifg TX gen으로 config TX 파일 소모해

  -관련 제네시스 블록 생성.

  -오더러는 처음 시스템 채널에 자신의 제네시스 블록을 갖고 있게 .

 

  - () ‘Raft’ 환경설정을 보면 (configtx-original.yaml 내의 SampleMultiNodetcdRaft)

  - host, port, ClientTLSCert 등등 정보가 들어가 있음.

  - configtxGen 파일이 위의 정보를 소모해서 genesis.block 생성.

  - 그래서 제네시스 블록 안에 오더러들의 인증서들이 입력되어 있음.

#1. 패브릭 구조 (https://youtu.be/d9EmSrNFDY8)

 

ㅁ기존 블록체인들과의 차이.

ㅇ패브릭은 구성요소들이 각 역할이 분배됨.(블록생성자!=SC처리노드): 오더러(블록생성), 피어(시뮬레이팅, 저장).

cf)기존 비트와 이더는 노드 하나가 모든 것을 처리.(블록생성자=SC처리노드): 마이닝. 지갑. 월드스테이트 등.

 

ㅇ패브릭은 인증서 기반. 중간관리자 존재(FCA_Fabric Certificate Authority).

cf)비트와 이더는 개인키 기반

 

ㅇ패브릭은 하나의 키 값을 한 블록 내에서 여러 번 읽고 수정 불가.

 

ㅁ구성요소

하이퍼 레저 기본구조 및 구동순서

1) Peer(피어)

- Ledger(블록체인, 블록저장). World State(in Ledger, 최신버전의 데이터)

- Simulating.(트랜잭션을 연산)

 

2) Orderer(오더러)

- 블록생성(배포용도), 유저로 부터 받은 거래를 검사하지 않고 바로 블록생성.

- Ordering Service(오더러들이 모인 곳)이 생성된 블록을 피어들에게 배포해줌.

 

3) App(유저)

- 거래생성 및 거래 확인요청(‘제안의 형태로 피어에게 전송)

- 확인, 검사받은 거래를 오더러에게 전송.

- Check Endorsement Polices : 확인, 검사하는 방식에 대한 규정.

 

ㅇ합의

- BFT 방식, 투표 (3명중 2명만 확인하면 통과)

 

Ledger

- 구성 : 블록체인, World state

- 오직 피어 만이 활용가능한 Ledger(블록)를 갖고 있음.

- 오더러 또한 Ledger(블록)을 갖고 있기는 하지만 활용하지 못하고, 오로지 배포만 가능함.

 

 

 

+ Recent posts