티스토리 뷰

반응형

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

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


Capability Requirements


Fabric은 대개 여러 국가 또는 대륙에있는 여러 조직을 포함하는 분산 시스템이기 때문에 여러 다른 버전의 Fabric 코드가 네트워크에 존재할 수 있습니다 (일반적으로). 그럼에도 불구하고 네트워크가 트랜잭션을 동일한 방식으로 처리하여 모든 사람이 현재 네트워크 상태에 대해 동일한 시각을 갖도록하는 것이 중요합니다.

즉, 모든 네트워크와 네트워크 내의 모든 채널은 처리 트랜잭션에 참여할 수 있도록 "기능"이라고하는 집합을 정의해야합니다. 예를 들어, Fabric v1.1은 "피어"와 "클라이언트"의 새로운 MSP 역할 유형을 소개합니다. 그러나 v1.0 피어가 이러한 새로운 역할 유형을 이해하지 못하면 해당 역할 유형을 참조하는 보증 정책을 적절히 평가할 수 없습니다. 즉, 새 역할 유형을 사용하기 전에 네트워크가 v1.1 채널 기능 요구 사항을 사용하도록 동의해야 모든 피어가 동일한 결정을 내릴 수 있습니다.

필요한 기능을 지원하는 바이너리만 채널에 참여할 수 있으며 최신 바이너리 버전에서는 해당 기능을 사용할 수있을 때까지 새로운 유효성 검사 논리를 사용할 수 없습니다. 이런 식으로 기능 요구 사항은 서로 다른 빌드와 버전이 있더라도 네트워크가 상태를 포착 할 수 없음을 보장합니다.


기능 요구 사항 정의

기능 요구 사항은 채널 구성 (채널의 가장 최근 구성 블록에 있음)에서 채널별로 정의됩니다. 채널 구성에는 세 가지 위치가 있으며 각 위치는 다른 유형의 기능을 정의합니다.

Capability Type Canonical Path JSON Path
Channel /Channel/Capabilities .channel_group.values.Capabilities
Orderer /Channel/Orderer/Capabilities .channel_group.groups.Orderer.values.Capabilities
Application /Channel/Application/Capabilities .channel_group.groups.Application.values. Capabilities
  • 채널 :이 기능은 피어 및 주문자 모두에게 적용되며 루트 채널 그룹에 있습니다.
  • 주문자: 주문자에게만 적용되며 주문자그룹에 있습니다.
  • 응용 프로그램 : 피어에만 적용되며 응용 프로그램 그룹에 있습니다.

기능은 기존 관리 구조와 일치시키기 위해 이러한 그룹으로 분류됩니다. 주문자 기능을 업데이트하는 것은 주문 조직이 응용 프로그램 조직과 독립적으로 관리하는 것입니다. 마찬가지로 응용 프로그램 기능을 업데이트하는 것은 응용 프로그램 관리자 만 관리 할 수있는 것입니다. "Orderer"와 "Application"사이의 기능을 분리함으로써 가상의 네트워크는 v1.6 피어 어플리케이션 네트워크를 지원하면서 v1.6 주문 서비스를 실행할 수 있습니다.

그러나 일부 기능은 'Application'및 'Orderer'그룹을 교차합니다. 이전에 보았 듯이 새로운 MSP 역할 유형을 추가하는 것은 주문자 및 응용 프로그램 관리자가 모두 동의하고 인식해야하는 것입니다. 주문자는 거래가 주문서를 통과 할 수 있도록하기 위해 MSP 역할의 의미를 이해해야하며 동료는 트랜잭션을 확인하기 위해 역할을 이해해야합니다. 이러한 종류의 기능 (응용 프로그램과 주문자 구성 요소 모두에 걸쳐 있음)은 최상위 "채널"그룹에 정의됩니다.

주문자 및 응용 프로그램 기능이 버전 1.1 및 v1.4에 각각 정의되어있는 동안 채널 기능은 버전 v1.3에 정의 될 수 있습니다. "채널"그룹 수준에서 기능을 사용한다고해서 더 구체적인 "주문자"및 "응용 프로그램"그룹 수준에서이 동일한 기능을 사용할 수 있음을 의미하지는 않습니다.

기능 설정

기능은 채널 구성의 일부로 설정됩니다 (초기 구성의 일부로 - 잠시 후에 - 또는 재구성의 일부로).


채널 재구성의 다양한 측면을 통해 이야기하는 두 개의 문서가 있습니다. 먼저 채널에 조직 추가 프로세스를 안내하는 자습서가 있습니다 . 또한 채널 구성 업데이트를 통해 가능한 다양한 종류의 업데이트에 대한 개요와 서명 프로세스에 대한 전체적인 내용을 제공하는 문서도 있습니다 .

새 채널은 기본적으로 주문자 시스템 채널의 구성을 복사하므로 주문자 시스템 채널의 주문자 및 채널 기능 및 채널 생성 트랜잭션에서 지정한 응용 프로그램 기능을 사용하도록 새 채널이 자동으로 구성됩니다. 그러나 이미 존재하는 채널은 재구성해야합니다.

Capabilities 값의 스키마는 다음과 같이 protobuf에 정의됩니다.

message Capabilities {
      map<string, Capability> capabilities = 1;
}

message Capability { }
{
    "capabilities": {
        "V1_1": {}
    }
}

초기 구성의 기능

릴리스 아티팩트의 config 디렉토리에 분산 된 configtx.yaml 파일에는 기능 유형 (채널, 주문자 및 애플리케이션)에 대해 가능한 기능을 나열하는 기능 섹션이 있습니다.

기능을 활성화하는 가장 간단한 방법은 v1.1 샘플 프로파일을 선택하고 네트워크에 맞게 사용자 정의하는 것입니다. 예 :

SampleSingleMSPSoloV1_1:
    Capabilities:
        <<: *GlobalCapabilities
    Orderer:
        <<: *OrdererDefaults
        Organizations:
            - *SampleOrg
        Capabilities:
            <<: *OrdererCapabilities
    Consortiums:
        SampleConsortium:
            Organizations:
                - *SampleOrg

루트 수준 (채널 기능 용) 및 주문자 수준 (주문자 기능 용)에 정의 된 기능 섹션이 있습니다. 위의 샘플은 YAML 참조를 사용하여 YAML의 맨 아래에 정의 된대로 기능을 포함합니다.

발주자 시스템 채널을 정의 할 때 응용 프로그램 섹션이 없으므로 해당 기능은 응용 프로그램 채널을 만드는 동안 정의됩니다. 채널 생성시 새로운 채널의 응용 프로그램 기능을 정의하려면 응용 프로그램 관리자가 SampleSingleMSPChannelV1_1 프로파일 다음에 채널 생성 트랜잭션을 모델링해야합니다.

SampleSingleMSPChannelV1_1:
     Consortium: SampleConsortium
     Application:
         Organizations:
             - *SampleOrg
         Capabilities:
             <<: *ApplicationCapabilities

여기서 응용 프로그램 섹션에는 YAML 끝에 정의 된 ApplicationCapabilities 섹션을 참조하는 Capabilities라는 새로운 요소가 있습니다.


Channel 및 Orderer 섹션의 기능은 주문 시스템 채널의 정의에서 상속되며 채널 생성 과정에서 주문자가 자동으로 포함합니다.


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함