Peer channel-based event services
개요
이전 버전의 Fabric에서는 피어 이벤트 서비스를 이벤트 허브라고했습니다. 이 서비스는 해당 블록이 속한 채널에 관계없이 새로운 블록이 피어의 원장에 추가 될 때마다 이벤트를 보내고 이벤트 피어를 실행하는 조직의 구성원 (예 : 이벤트에 연결되어있는 구성원만 액세스 할 수있었습니다 ).
v1.1부터는 이벤트를 제공하는 두 가지 새로운 서비스가 있습니다. 이러한 서비스는 완전히 다른 디자인을 사용하여 채널별로 이벤트를 제공합니다. 즉, 이벤트 등록은 피어 대신 채널 수준에서 발생하므로 피어 데이터에 대한 액세스를 세부적으로 제어 할 수 있습니다. 이벤트 수신 요청은 피어 조직 외부의 ID (채널 구성에 의해 정의 됨)로부터 허용됩니다. 또한 연결 안정성 문제 또는 피어가 이미 실행중인 네트워크에 참여했기 때문에 손실 된 이벤트를 수신 할 수있는 뛰어난 안정성과 방법을 제공합니다.
사용 가능한 서비스
-
Deliver
이 서비스는 커미트 된 전체 블록을 원장에게 보냅니다. 체인 코드에 의해 이벤트가 설정되면, 블록의 ChaincodeActionPayload에서 찾을 수 있습니다.
-
DeliverFiltered
이 서비스는 "필터링 된"블록, 장부에 커밋 된 블록에 대한 최소한의 정보 집합을 보냅니다. 동료의 소유자가 외부 클라이언트가 주로 트랜잭션 및 트랜잭션 State에 대한 정보를 받기를 원하는 네트워크에서 사용하기위한 것입니다. 체인 코드에 의해 이벤트가 설정되면 필터링 된 블록의 FilteredChaincodeAction에서 찾을 수 있습니다.
이벤트 등록 방법
두 서비스의 이벤트 등록은 전달 시작 정보 메시지가 들어있는 봉투를 원하는 시작 및 정지 위치, 탐색 동작 (준비가되지 않았 으면 실패 또는 준비가되지 않은 경우)까지 포함하는 피어에게 보냄으로써 수행됩니다. 원장에서 가장 오래된 (즉, 첫 번째) 블록 또는 가장 새로운 (즉, 마지막) 블록을 나타내는 데 사용할 수있는 헬퍼 변수 SeekOldest 및 SeekNewest가 있습니다. 서비스가 이벤트를 무기한으로 보내도록하려면 SeekInfo 메시지에 MAXINT64의 중지 위치가 있어야합니다.
상호 TLS가 피어에서 활성화되어 있으면 TLS 인증서 해시를 봉투의 채널 헤더에 설정해야합니다. |
---|
기본적으로 두 서비스 모두 채널 판독기 정책을 사용하여 요청 클라이언트에 이벤트를 인증할지 여부를 결정합니다
전달 응답 메시지 개요(Overview of deliver response messages)
이벤트 서비스는 DeliverResponse
메시지를 다시 보냅니다.
각 메시지에는 다음 중 하나가 포함됩니다.
- status - HTTP 상태 코드입니다. 오류가 발생하면 두 서비스 모두 적절한 실패 코드를 반환합니다. 그렇지 않으면 서비스가 완료되면 SeekInfo 메시지에 의해 요청 된 모든 정보를 전송하고 200 - SUCCESS를 반환합니다.
- block - Deliver 서비스에 의해서만 반환됩니다.
- 필터링 된 블록 - DeliverFiltered 서비스에 의해서만 반환됩니다.
필터링 된 블록에는 다음이 포함됩니다.
- 채널 ID.
- 번호 (즉, 블록 번호).
- 필터링 된 트랜잭션의 배열.
- 트랜잭션 ID.
- type (e.g.
ENDORSER_TRANSACTION
,CONFIG
.) - transaction validation code.
- type (e.g.
- 필터링 된 트랜잭션 작업.
- 필터링 된 체인 코드 동작의 배열입니다.
- 트랜잭션에 대한 chaincode 이벤트 (페이로드가 누락 된 State).
- 필터링 된 체인 코드 동작의 배열입니다.
출처 : http://hyperledger-fabric.readthedocs.io/en/release-1.1/
'[블록체인] 하이퍼레저 > [하이퍼레저 패브릭] ' 카테고리의 다른 글
[하이퍼레저 공식문서]Architecture Reference - Gossip data dissemination protocol (0) | 2018.06.04 |
---|---|
[하이퍼레저 공식문서]Architecture Reference - Read-Write set semantics (0) | 2018.06.04 |
[하이퍼레저 공식문서]Architecture Reference - CouchDB as the State Database (0) | 2018.06.04 |
[하이퍼레저 공식문서]Architecture Reference - Capability Requirements (0) | 2018.06.04 |
[하이퍼레저 공식문서]Architecture Reference - Channels (0) | 2018.06.04 |