원서 : https://hyperledger-fabric.readthedocs.io/en/release-1.4/peer_event_services.html
- General overview
- Hyperledger Fabric 구버젼에서는 peer 이벤트 서비스를 event-hub 라고 했습니다.
- 이 서비스는 (channel과 상관없이) 새로운 block이 peer의 ledger에 추가될때마다, 발생 하였습니다.
- 그리고 해당 peer의 oranization의 member만 접근할수있었습니다.
- v1.1 부터는 새로운 이벤트 서비스가 제공 되게 되었습니다. (완전히 다른 디자인으로, channel별 제공)
- peer 레벨이 아닌, channel 레벨로 이벤트가 발생되~ 해당 데이터 접근제어를 할수있게 되었습니다.
- 즉, peer의 organization의 member가 아닌 외부member도 접근을 할수있는것 입니다.
- 이로써 좀더 안전하고 놓친 이벤트를 다시 받을수도 있게 된것 입니다.
- Available services
- Deliver : ledger에 커밋된 전체 block을 발송한다. chaincode에 설정된 이벤트는 block의 ChaincodeActionPayload 에서 찾을수 있다.
- DeliverFiltered : ledger에 커밋된 block에서 부분적으로 필터링된 발송한다. 주요정보만 제공하기를 원할때 쓴다. chaincode에 설정된 이벤트는 block의 FilteredChaincodeAction 에서 찾을수 있다.
- How to register for events
- 이벤트 등록은 '원하는 정보', '시작과 끝 위치', '동장' 등을 보내저 하면 된다.
- SeekOldest 및 SeekNewest 변수로, 첫block 이나 마지막block을 나타내는데 사용할수 있다.
- SeekInfo 에 길이를 제한 할수있다.
- 기본적으로, Deliver 및 DeliverFiltered 둘다 channel reader 정책을 기반으로 client의 인가를 판단한다.
- Overview of deliver response messages
- 이벤트 서비스는 DeliverResponse 메세지를 답장합니다.
- 각 메시지는 아래의 것을 포함합니다.
- status : HTTP status-code
- block : Deliver 메세지
- filtered block : DeliverFiltered 메세지
- (filtered block은 추가적으로 아래의 것을 포함)
- channel ID
- block number
- array of filtered transactions
- transaction ID
- type (예:ENDORSER_TRANSACTION, CONFIG)
- transaction validation code
- filtered transaction actions
- array of filtered chaincode actions
- chaincode event for the transaction
- array of filtered chaincode actions
- SDK event documentation
- 이벤스 서비스의 자세한 내용은 "SDK documentation"를 참고하세요.
-끝-
'hyperledger > fabDoc.Arch-Ref' 카테고리의 다른 글
10) Read-Write set semantics (0) | 2019.08.18 |
---|---|
9) Private Data (0) | 2019.08.18 |
6) Channels (0) | 2019.08.18 |
5) Service Discovery (0) | 2019.08.18 |
1) Architecture Origins (0) | 2019.05.15 |