ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Hyperledger
    BlockChain 2020. 12. 15. 15:38

    합의 알고리즘

     

    Kafka는 블록체인 합의 알고리즘이 아니다.

     

    Kafka는 Linkedin에서 개발한 분산 메시징 시스템으로, 실시간 대용량 로그 처리에 특화되어 있다. 그래서 다른 합의 알고리즘들이 전달되는 내용에 대한 검증을 하는 반면, kafka는 CFT(Crash Fault Tolerance)이다. -> 검증 없이 순서만 정확히 쌓이도록 한다.

     

     

    트랜잭션과 gRPC

     

    Hyperledger Fabric은 HTTP 통신이 아니라 gRPC 통신으로 진행된다.

     

    gRPC : 고성능 RPC 프레임워크 [ Protocol Buffer (메시지 serializer)에 HTTP2 통신 방식을 입혀서 빠른 통신을 가능하도록 한다 ]

    1. 어떤 메시지를, 어떤 메서드를 통해서 누가 주고 받는지를 결정한다는 것은 굉장한 특징이다. 이는 많은 노드가 많은 종류의 요청/응답을 주고 받아야할 때 유용하게 이용될 수 있다.
    2. Bi-directional Streaming and Integrated Auth ( 양방향 스트리밍 통신 )

     

    RPC : Remote Procedure Call [ <-> HTTP 기반 REST 통신 ]

     

    HTTP와는 다르게 RPC는 요청/응답 측의 인터페이스 규약을 정의해서 가지고 있다.(skeleton, stub) 이를 기반으로 보다 정적인 통신을 한다.

     

    Protocol Buffer는 데이터 통신이나 저장을 위해, 데이터를 구조화하고 정렬(serializing)하는 것입니다. [ 작고 빠르고 간단한 XML ]

     

    HTTP/2

    • 기본적으로 HTTP 통신은 커넥션 당 하나의 요청 밖에 처리하지 못한다. 그래서 사실상 논리적으로 하나의 로직인데 여러번 통신이 비효율적으로 발생하는 문제가 있다. 게다가 느리다. 이런 비효율적인 HTTP 통신 방식을 개선해보고자 나온 것이 HTTP/2이다.
    • 커넥션이 형성되면 스트리밍 형식으로 여러 데이터가 양방향으로 오고가게 된다. 지나치게 비대했던 Header도 압축되었고, 클라이언트가 요청한 데이터의 종속성을 파악하여 서버 측에서 딸린 자료들을 함께 PUSH할 수도 있다.

     

    shim 패키지 : 체인코드 내의 상태값, 트랜잭션 컨텍스트 등에 접근할 수 있는 API를 제공

     

    peer 패키지 : 피어 정보를 담는 프로토콜 버퍼 패키지

     

    stub : gRPC와 관련된 부분으로 프로토콜 버퍼 메시지 타입 호출시 이용하는 파라미터를 감싸는 객체이다. 

     

    shim.ChaincodeStubInterface : SDK 내장 타입을 불러와서 가지고 있는 형태

    'BlockChain' 카테고리의 다른 글

    PBFT Consensus Algorithm  (0) 2020.12.15

    댓글

Designed by Tistory.