ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4. Blockchain network(3)
    하이퍼레저 패브릭/이론 2019. 3. 31. 10:09

    네트워크 구성 완료

     

    우리의 목표는 컨소시엄 X1 (조직 R1 R2)의 채널을 만드는 것이었다. 다음 단계에서는 조직 R2가 인프라를 네트워크에 추가한다.

     

    R2는 원장 L1과 체인코드 S5의 사본을 호스트하는 피어 노드 P2를 추가했으며, P2 또한 채널 C1에 가입했다. 어플리케이션 A2와 피어 노드 P2 CA2의 인증서를 사용하여 식별된다. 이제 응용 프로그램 A1 A2 모두 피어 노드 P1 또는 P2를 사용하여 채널 C1에서 스마트 컨트랙트 S5를 호출할 수 있게 된다.

    네트워크 개발인 지금 단계에서 이제 R1 R2 조직이 서로 완전히 거래할 수 있는 채널이 존재한다. 따라서 이제부터는 애플리케이션 A1 A2가 채널 C1의 스마트 컨트랙트 S5와 원장 L1을 사용하여 거래를 생성할 수 있다.

    [트랜잭션 생성 및 승인]

    모든 피어 노드는 항상 원장의 사본을 호스팅하는 것과 달리 스마트 컨트랙트에 대해서는 스마트 컨트랙트를 호스팅하는 노드와 그렇지 않은 노드의 두 가지 종류가 있다. 지금 예제에선 모든 피어 노드가 스마트 컨트랙트의 사본을 호스트하지만, 더 큰 네트워크에서는, 스마트 컨트랙트의 사본을 호스팅하지 않는 더 많은 피어 노드가 있을 것이다. 피어 노드는 스마트 컨트랙트가 설치된 경우에만 스마트 컨트랙트를 실행할 수 있지만, 채널에 연결하는 것만으로도 스마트 컨트랙트의 인터페이스에 대해 알 수 있다.

    스마트 컨트랙트가 설치되어 있는 피어 노드는 트랜잭션 생성을 돕는 특별한 힘을 가지고 있다. 모든 피어 노드가 L1의 복사본에 대한 트랜잭션을 검증한 후 수락하거나 거부할 수 있다. 그러나 스마트 컨트랙트가 설치된 피어 노드만이 유효한 트랜잭션 생성과정의 핵심인 트랜잭션 보증 프로세스에 참여할 수 있다.

    [피어 노드의 유형]

    하이퍼레저 패브릭에서는 모든 피어가 동일하지만 네트워크 구성 방법에 따라 여러 역할을 맡을 수 있다.

    l  Committing peer. 채널의 모든 피어 노드는 Committing peer이다. 생성된 트랜잭션 블록을 수신하면 피어 노드의 원장 사본에 commit되기 전에 유효성이 검사된다.

    l  Endorsing peer. 스마트 컨트랙트를 갖는 모든 피어는 스마트 컨트랙트를 설치한 경우 endorsing peer가 될 수 있다. 그러나 실제로 endorsing peer가 되려면 피어의 스마트 컨트랙트가 디지털 서명 된 트랙잭션을 생성하기 위해 클라이언트 어플리케이션을 사용해야 한다.

    스마트 컨트랙트에 대한 보증 정책은 피어가 원장 사본을 수락하기 전에 생성된 트랜잭션에 디지털 서명해야 하는 조직을 식별한다.

    위 두 가지 유형은 피어 노드의 주된 유형이다. 피어 노드의 두 가지 다른 역할들도 존재한다.

    l  Leader peer. 한 채널에 여러 피어가 있는 조직의 경우, 리더 피어는 Ordering peer로부터 조직의 다른 Committing peer로 트랜잭션을 책임지고 배포하는 노드이다. 피어는 수동 또는 자동으로 리더를 선택할 수 있다.

    따라서 리더십의 관점에서 자동 리더 선출과 수동 리더 선출 두 가지 종류가 있다. 수동 선출의 경우 0개 또는 그 이상의 피어들을 리더로 구성할 수 있다. 자동 선출의 경우, 조직 당 하나의 피어만이 리더로 선출된다. 만약 자동 선출에서 리더의 네트워크가 단절되면 남아있는 피어들 중에서 리더를 재선출한다.

    이것은 조직의 피어 노드들이 하나 또는 그 이상의 ordering service와 연결된 리더를 가질 수 있다는 것을 의미한다. 이는 대량의 트랜잭션을 처리하는 대규모 네트워크에서 복원력과 확장성을 개선하는데 도움이 될 수 있다.

    l  Anchor peer. 피어가 다른 조직의 피어와 통신할 필요가 있는 경우, 그 조직의 채널 구성(: CC1)에 정의된 Anchor peer 중 하나를 사용할 수 있다. 조직은 0개 또는 그 이상의 Anchor peer를 정의할 수 있으며, Anchor peer는 다양한 조직 간의 통신을 도울 수 있다.

    한 개의 피어 노드는 동시에 committing peer, endorsing peer, leader peer 그리고 anchor peer가 될 수 있다. 이 중 오직 anchor peer만이 선택적으로 존재할 수 있고, 실용적인 목적을 위해선 하나의 leader peer와 최소 한 개의 endorsing peer, committing peer가 존재해야 한다.

    [설치 시 인스턴스화하지 않음]

    조직 R1과 비슷한 방식으로 조직 R2 S5를 피어 노드 P2에 설치해야 한다. 애플리케이션 A1 또는 A2 P2에서 트랜잭션을 생성하기 위해 S5를 사용해야 하기 때문이다. 설치를 마치면 피어 노드 P2에는 스마트 컨트랙트 및 원장의 사본이 존재한다. 그러므로 P2P1과 마찬가지로 원장 L1에 트랜잭션을 생성하거나 수락할 수 있다.

    하지만 조직 R1과 달리 조직 R2는 채널 C1에서 스마트 컨트랙트 S5를 인스턴스화 할 필요가 없다. S5가 이미 조직 R1에 의해 채널에서 인스턴스화 되었기 때문이다. 인스턴스화는 한번만 수행하면 된다. 이후에 채널에 참여하는 임의의 피어는 스마트 컨트랙트 S5가 채널에서 이용 가능하다는 사실을 안다. 이 사실은 원장 L1과 스마트 컨트랙트가 실제로 피어 노드에서는 물리적 방식으로 존재하고 채널에서는 논리적인 방식으로 존재한다는 사실을 뜻한다. 조직 R2 L1 S5의 물리적 인스턴스를 네트워크에 추가할 뿐이다.

    네트워크에서 채널 C1은 두 개의 클라이언트 응용 프로그램, 두 개의 피어 노드 및 ordering service를 연결하였다. 채널이 하나뿐이므로 이러한 구성 요소들이 통신하는 논리적 원장은 하나만 존재한다. 피어 노드 P1 P2는 원장 L1의 동일한 사본을 갖는다. 스마트 컨트랙트 S5의 사본은 일반적으로 동일한 프로그래밍 언어를 사용하여 동일하게 구현되지만, 그렇지 않은 경우 의미론적으로 동일해야 한다.

    네트워크에 피어를 신중하게 추가하면 처리량, 안정성 및 탄력성을 향상시킬 수 있다. 예를 들어 네트워크에 있는 피어가 많을수록 더 많은 응용 프로그램이 연결될 수 있고, 한 조직안에 피어가 많을수록 예고되지 않은 피어의 네트워크 단절에도 금방 회복할 수 있다.

    즉 이것은 다양한 운영 목적을 지원하는 정교한 토폴로지를 구성할 수 있다는 것을 의미한다. 네트워크의 규모에 대한 이론적인 제한은 없다. 게다가 한 조직안의 피어들이 서로 효율적으로 발견하고 소통하는 기술 메커니즘 (가십 프로토콜)은 이러한 토폴로지를 지원하는 다수의 피어 노드를 수용할 것이다.

    네트워크 및 채널 정책을 신중하게 사용하면 대규모 네트워크까지도 잘 관리할 수 ​​있다. 조직은 네트워크의 정책을 준수하는 한 네트워크에 피어 노드를 자유롭게 추가할 수 있다. 네트워크와 채널의 정책들은 자율성과 제어의 균형을 잘 조절하며, 이는 분산화 된 네트워크의 특징이다.

    시각적 표현의 단순화

     

    이 다이어그램은 네트워크 N의 채널 C1에 관련된 사실을 다음과 같이 보여준다. 클라이언트 어플리케이션 A1 A2는 피어 P1 P2 orderer O4와 통신하기 위해 채널 C1을 사용한다. 피어 노드 P1 P2는 채널 C1의 통신 서비스를 사용할 수 있다. 또한 Ordering service O4도 채널 C1의 통신 서비스를 이용할 수 있다. 채널 구성 CC1은 채널 C1에 적용된다.

    채널 다이어그램은 채널의 번호를 포함한 파란색 원으로 표시된 연결 지점으로 채널 선을 대체함으로써 단순화되었으며 아무런 정보도 손실되지 않았다. 이 표현은 교차 선을 없애기 때문에 확장성이 뛰어나며 이를 통해 더 큰 네트워크를 보다 명확하게 나타낼 수 있다. 채널 자체보다는 구성 요소와 채널 간의 연결 지점에 초점을 맞추어 단순하게 표현하였다.

    다른 컨소시엄 정의 추가

     

    네트워크 개발의 다음 단계에서는 조직 R3을 소개한다. 우리는 조직 R2 R3가 서로 거래할 수 있는 별도의 어플리케이션 채널을 제공할 것이다. 이 채널은 이전에 정의된 채널과 완전히 분리되어 있어 R2 R3의 트랜잭션을 비공개로 유지할 수 있다.

     

    조직 R1 또는 R4의 네트워크 관리자는 조직 R2 R3을 포함하는 새로운 컨소시엄 정의 X2를 추가했으며, X2에 대한 새 채널을 정의하는 데 사용될 것이다.

    이제 네트워크에는 조직 R1 R2 X1, 조직 R2 R3 X2로 정의된 두 개의 컨소시엄이 있다. 컨소시엄 X2 R2 R3에 대한 새 채널을 만들 수 있도록 생성되었다.

    새 채널은 네트워크 구성 정책 (NC4)에 구체적으로 명시된 조직 ( : R1 또는 R4)에 의해서만 생성될 수 있다. 이는 네트워크 수준에서 자원을 관리할 수 있는 조직과 채널 수준에서 자원을 관리할 수 있는 조직을 분리하는 정책이다. 이러한 정책은 Hyperledger Fabric이 정교한 계층화된 정책 구조를 갖고 있는 이유를 이해하는 데 도움이 된다.

    '하이퍼레저 패브릭 > 이론' 카테고리의 다른 글

    5. Identity  (0) 2019.03.31
    4. Blockchain network(4)  (0) 2019.03.31
    4. Blockchain network(2)  (0) 2019.03.31
    4. Blockchain network(1)  (0) 2019.03.31
    3. Hyperledger Fabric Model  (0) 2019.03.31
Designed by Tistory.