티스토리 뷰

반응형

해당 글은 Hyperledger Fabric 페이지의 게시글을 번역 및 정리한 자료입니다.

원본 사이트 : http://hyperledger-fabric.readthedocs.io/en/release-1.1/gossip.html


Gossip data dissemination protocol


Hyperledger 패브릭은 트랜잭션 실행 (승인 및 커밋) 피어 및 트랜잭션 주문 노드에서 작업 부하를 나누어 블록 체인 네트워크 성능, 보안 및 확장 성을 최적화합니다. 이러한 네트워크 운영 분리는 데이터 무결성 및 일관성을 보장하기 위해 안전하고 신뢰할 수 있으며 확장 가능한 데이터 보급 프로토콜을 필요로합니다. 이러한 요구 사항을 충족시키기 위해 Hyperledger Fabric은 gossip data dissemination protocol을 구현 합니다 .


Gossip protocol

피어들은 gossip을 활용하여 원장과 채널 데이터를 확장 가능한 방식으로 방송합니다. gossip  메시지는 계속되고 채널의 각 피어는 여러 피어에서 지속적으로 최신의 일관된 원장 데이터를 수신합니다. 각각의 gossip  메시지에 서명함으로써 위조 된 메시지를 보내는 비잔틴 참가자가 쉽게 식별되고 원치 않는 목표에 대한 메시지 배포를 막을 수 있습니다. 지연, 네트워크 파티션 또는 블록 손실로 이어지는 기타 원인으로 인해 영향을받은 피어는 이러한 누락 된 블록을 소유 한 피어에게 연락하여 현재 원장 상태로 동기화됩니다.

gossip  기반 데이터 보급 프로토콜은 Hyperledger 패브릭 네트워크에서 세 가지 기본 기능을 수행합니다.

  1. 사용 가능한 구성원 피어를 계속 식별하고 결국 오프라인이 된 피어를 감지하여 피어 검색 및 채널 구성원을 관리합니다.
  2. 채널의 모든 피어간에 원장 데이터를 보급합니다. 나머지 채널과 동기화되지 않은 데이터가있는 피어는 누락 된 블록을 식별하고 올바른 데이터를 복사하여 동기화합니다.
  3. 원장 데이터의 피어 - 투 - 피어 상태 이전 업데이트를 허용하여 새로 연결된 피어를 최대 속도로 가져옵니다.

gossip 기반 방송은 다른 피어로부터 채널의 메시지를 수신 한 피어가 작동 한 다음 이 메시지를 채널의 무작위로 선택된 여러 피어로 전달합니다.이 숫자는 구성 가능한 상수입니다. 피어는 메시지 전달을 기다리는 대신 끌어 오기 메커니즘을 사용할 수도 있습니다. 이 주기가 반복되어 채널 구성원의 결과로 원장과 상태 정보가 지속적으로 최신 상태로 유지됩니다. 새로운 블록을 보급하기 위해 채널 의 리더 피어는 주문 서비스에서 데이터를 가져 와서 동료에게 gossip  전파를 시작합니다.


Leader election

리더 선거 (leader election) 메커니즘은 주문 서비스와의 연결을 유지하고 자체 조직의 친구들간에게 새로 도착한 블록의 배포를 시작할 각 조직마다 하나의 피어 를 선출 하는 데 사용됩니다 . 리더 선거를 활용하면 시스템에서 주문 서비스의 대역폭을 효율적으로 활용할 수 있습니다. 리더 선거 모듈에는 두 가지 작동 모드가 있습니다.

  1. 정적(Static) - 시스템 관리자는 조직의 한 피어를 리더가되도록 수동으로 구성합니다 (예 : 주문 서비스와 열린 연결을 유지하는 것).
  2. 다이나믹(Dynamic) - 피어는 리더 선출 절차를 실행하여 조직의 한 피어를 선택하여 리더가되고, 주문 서비스에서 블록을 가져오고, 조직의 다른 피어에게 블록을 보급합니다.

Static leader election

정적 리더 선거를 사용하면 조직 내의 리더 피어 집합을 수동으로 정의 할 수 있습니다. 하나의 노드를 리더 또는 모든 사용 가능한 피어로 정의 할 수 있으므로 주문에 너무 많은 피어를 연결해야합니다 서비스가 비효율적 인 대역폭 사용을 유발할 수 있습니다. 정적 리더 선택 모드를 사용하려면 core.yaml 섹션에서 다음 매개 변수를 구성하십시오.

peer:
    # Gossip related configuration
    gossip:
        useLeaderElection: false
        orgLeader: true

또는 이러한 매개 변수를 환경 변수로 구성하고 재정의 할 수 있습니다.

export CORE_PEER_GOSSIP_USELEADERELECTION=false
export CORE_PEER_GOSSIP_ORGLEADER=true

1. 다음 구성은 피어를 대기 모드로 유지 합니다. 즉 피어가 리더가 되려고하지 않습니다.

export CORE_PEER_GOSSIP_USELEADERELECTION=false
export CORE_PEER_GOSSIP_ORGLEADER=false

2. true 값으로 CORE_PEER_GOSSIP_USELEADERELECTION 및 CORE_PEER_GOSSIP_USELEADERELECTION을 설정하면 모호하며 오류가 발생합니다.

3. 정적 구성에서 조직 관리자는 실패 또는 충돌시 리더 노드의 고 가용성을 제공해야합니다.


Dynamic leader election

역동적 인 리더 선거를 통해 조직 동료는 주문 서비스에 연결하고 새로운 블록을 꺼낼 피어 하나 를 선출 할 수 있습니다 . 리더는 각 조직의 동료를 위해 독립적으로 선출됩니다.

선출 된 리더는 활동의 증거로 다른 동료들에게 하트 비트 메시지 를 보내는 책임이 있습니다 . 한 명 이상의 동료가 일정 기간 동안 하트 비트 업데이트를 받지 못하면 새로운 리더 선출 절차를 시작하여 결국 새로운 리더를 선출하게됩니다. 최악의 경우 네트워크 파티션의 경우 조직을 위해 한 명 이상의 능동적 인 리더가 있으므로 탄력성과 가용성을 보장하여 조직의 동료가 계속 발전 할 수 있도록합니다. 네트워크 파티션이 치유되면 지도자 중 하나가 리더십을 포기할 것이므로 안정된 상태에서 각 조직의 네트워크 파티션이 없으면 주문 서비스에 연결하는  하나의 능동적 인 리더 가있게 됩니다 .

다음 구성은 리더 하트 비트 메시지의 빈도를 제어 합니다.

peer:
    # Gossip related configuration
    gossip:
        election:
            leaderAliveThreshold: 10s

동적 리더 선거를 사용하려면 core.yaml 내에 다음 매개 변수를 구성해야합니다.

peer:
    # Gossip related configuration
    gossip:
        useLeaderElection: true
        orgLeader: false

또는 이러한 매개 변수를 환경 변수로 구성하고 재정의 할 수 있습니다.

export CORE_PEER_GOSSIP_USELEADERELECTION=true
export CORE_PEER_GOSSIP_ORGLEADER=false


Gossip messaging

온라인 피어는 공개 키 인프라 (PKI) ID 및 보낸 사람의 메시지 서명을 포함하는 "활성"메시지를 지속적으로 브로드 캐스트하여 가용성을 나타냅니다 . 피어는 이러한 살아있는 메시지를 수집하여 채널 멤버쉽을 유지합니다. 피어가 특정 피어로부터 살아있는 메시지를 수신하지 않으면이 "죽은"피어는 결국 채널 멤버쉽에서 제거됩니다. "살아있는"메시지는 암호로 서명되기 때문에 악의적 인 피어는 루트 인증 기관 (CA)이 승인 한 서명 키가 없기 때문에 절대로 다른 피어를 사칭 할 수 없습니다.

수신 된 메시지를 자동으로 전달하는 것 외에도 상태 조정 프로세스 는 각 채널의 피어간에 world state 를 동기화 합니다. 각 피어는 불일치가 확인되면 자체 상태를 복구하기 위해 채널의 다른 피어에서 계속 블록을 가져옵니다. 가십 거리의 데이터 보급을 유지하기 위해 고정 연결이 필요하지 않기 때문에이 프로세스는 노드 충돌에 대한 내구성을 포함하여 공유 원장에 데이터 일관성 및 무결성을 안정적으로 제공합니다.

채널이 분리되어 있기 때문에 한 채널의 피어는 다른 채널에서 정보를 보내거나 공유 할 수 없습니다. 모든 피어가 여러 채널에 속할 수 있지만 분할 메시징은 피어의 채널 구독을 기반으로 메시지 라우팅 정책을 적용하여 채널에없는 피어로 블록이 전파되는 것을 방지합니다.

노트:

1. 지점 간 메시지의 보안은 피어 TLS 계층에서 처리되며 서명이 필요하지 않습니다. 피어는 CA에서 할당 한 인증서로 인증됩니다. TLS 인증서도 사용되지만 가십 계층에서 인증 된 것은 피어 인증서입니다. 원장 블록은 주문 서비스에서 서명 한 다음 채널의 리더 피어에게 전달합니다. 

2. 인증은 피어에 대한 멤버쉽 서비스 공급자의 관리를받습니다. 피어가 처음으로 채널에 연결되면 TLS 세션이 멤버 자격 정보와 바인딩됩니다. 이는 본질적으로 네트워크와 채널의 구성원 자격과 관련하여 연결 피어에 대한 각 피어를 인증합니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함