#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 생성.

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

#7. 패브릭 채널

ㅁ패브릭이 프라이빗 블록체인으로서 가장  특징 : 채널. 특정 노드들 간의 소통.

 

ㅁ채널.

 ㅇ네트워크 멤버들  서브넷(하위 네트워크).

  -특정멤버들(피어, 유져, org) 끼리만 블록체인(렛져) 스마트컨트랙트(체인코드) 공유 가능.

  A, B 만의 채널 형성 가능.

  -다른 채널 데이터에 접근 불가.

  A피어가 ‘사과’, ‘포도채널에   가입돼 있으면,   접근 가능.

  ㆍ채널링(채널설정) 때에  과들을 관리하는 부장(피어) 멀티채널 가입하도록 가능.

 

 MSP, identity 의해 식별가능.

 

 ㅇ채널  블록체인 따로 존재.

  -채널 1개에 레져 1개임. 그래서 레져가 2개라면 채널도 2개임.(스마트컨트랙트는 설치를 해야 소유)

  -채널 제작 , genesis block 채널정보가 있는 트랜잭션으로 시작함. (채널의 생성과 시작은 genesis block)

  ㆍ각 피어들이 블락정보를 가지고 채널에 join하는 방식.

 

  -채널에 피어들이 블록 공유시.

  ㆍ리더피어 : 오더러와 연결해서 블록을 가져오는 기능( 피어들보다 최우선, 가장 먼저 수령)

    · 채널마다 리더 피어가 있으며 이들이 채널  피어들에게 블록배분,   각자 validating 하는 구조.

  ㆍ앵커링피어 : 네트워크 관련 정보를 공유.

    · 서로 다른 채널에 있는 앵커링 피어들은 비즈니스 로직과는 무관하게 네트워크에 있는 피어를 찾아줌.

 ㅇ동일채널의 체인코드들은 체인코드의 정보(이름, 번호) 알고 있을 경우, 상호작용 가능. /쓰기 호출가능.

 

 L1-S1 L2-S1 서로 읽을 수는 있지만 쓰기 못하고, 값을 변화 시킬  없음.

  - 피어는 모든 체인코드를 들고 있기에 읽을수 있지만, P2 L2 S1이나 S2 읽기 불가.

  - L2-S1 L1 내용을 불러 와서 작성불가.

 

ㅁ오더링 서비스와 피어를 통한 블록의 이동

 ㅇ색으로 채널의 구분하며 피어들이 가진 블록들이 쌓이는 과정.

 ㅇ피어가 레져를 들고 있고, 레져는 채널 별로 관리됨.

 ㅇ다른 채널의 체인코드는 호출불가. 가입되어 있으면 읽기만 가능.

+ Recent posts