원서 : 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
  • 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

+ Recent posts