원서 : https://hyperledger-fabric.readthedocs.io/en/release-1.4/pluggable_endorsement_and_validation.html

  • Motivation
    • 커밋되어 state를 바꾸기전, transaction은 peer에 의해~ '디폴트 검증과정'을 거침니다.
      • transaction에 서명된 identity 검사.
      • transaction의 보증 서명 확인.
      • transaction이 상응하는 chaincode의 namespace의 '보증정책' 을 만족하는지.
    • 그리고 '커스텀 검증과정'도 있습니다.
      • UTXO (Unspent Transaction Output) : transaction 입력이 두번 들어오는지? 확인
      • Anonymous transactions : 모르는 identity의 peer에서 보증을 했는지? 확인
  • Pluggable endorsement and validation logic
    • Hyperledger Fabric에서는 "커스텀 보증 및 검증"을 제공합니다.
    • peer에 구현 및 배포를 하는식으로, chaincode에서 플러그인 방식으로 다룰수있습니다.
    • 모든 chaincode는 instantiation시, "보증 및 검증"이 정해집니다.
    • 당연히 peer 관리자가 이 "보증 및 검증"을 커스텀 하게 바꿀수있습니다.
  • Configuration
    • 각각에 peer는 local-configuration (core.yaml)을 가지고 있습니다. (여기에 사용할 "보증 및 검증" 명시)
    • 기본적으로 handler 에 'ESCC' 및 'VSCC' 로 명시되있습니다. 
      • 예) handlers:
        • endorsers: escc:
          • name: DefaultEndorsement
        • validators: vscc:
          • name: DefaultValidation
    • name 필드가 instantiation에 사용되어, 해당하는 "보증 및 검증"의 구현체가 생성됩니다.
    • 이 과정은 "core/handlers/library/library.go" 의해서 처리되고, "커스텀 보증 및 검증" 도 지원하는것 입니다.
    • 예를들면 .so 플러그인 파일을 만들어, 아래와 같이 하면 됩니다.
      • 예)  handlers:
        • endorsers:
          • escc:
            • name: DefaultEndorsement
          • custom:
            • name: customEndorsement
            • library: /etc/hyperledger/fabric/plugins/customEndorsement.so
        • validators:
          • vscc:
            • name: DefaultValidation
          • custom:
            • name: customValidation
            • library: /etc/hyperledger/fabric/plugins/customValidation.so
  • Endorsement plugin implementation
    • 보증 플러그인을 만드시려면, "core/handlers/endorsement/api/endorsement.go" 플러그인 인터페이스를 사용 합니다.
    • ...
  • Validation plugin implementation
    • 검증 플러그인을 만드시려면, "core/handlers/validation/api/validation.go" 플러그인 인터페이스를 사용 합니다.
    • ...
  • Important notes
    • ...

-끝-

'hyperledger > fabDoc.Ops-Guides' 카테고리의 다른 글

The Operations Service  (0) 2019.08.03
Access Control Lists (ACL)  (0) 2019.08.03
Endorsement policies  (0) 2019.08.03
Channel Configuration (configtx)  (0) 2019.08.03
Membership Service Providers (MSP)  (0) 2019.08.03

+ Recent posts