- Motivation
- 커밋되어 state를 바꾸기전, transaction은 peer에 의해~ '디폴트 검증과정'을 거침니다.
- transaction에 서명된 identity 검사.
- transaction의 보증 서명 확인.
- transaction이 상응하는 chaincode의 namespace의 '보증정책' 을 만족하는지.
- 그리고 '커스텀 검증과정'도 있습니다.
- UTXO (Unspent Transaction Output) : transaction 입력이 두번 들어오는지? 확인
- Anonymous transactions : 모르는 identity의 peer에서 보증을 했는지? 확인
- 커밋되어 state를 바꾸기전, transaction은 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
- endorsers: escc:
- 예) handlers:
- name 필드가 instantiation에 사용되어, 해당하는 "보증 및 검증"의 구현체가 생성됩니다.
- 이 과정은 "core/handlers/library/library.go" 의해서 처리되고, "커스텀 보증 및 검증" 도 지원하는것 입니다.
- 예를들면 .so 플러그인 파일을 만들어, 아래와 같이 하면 됩니다.
- 예) handlers:
- endorsers:
- escc:
- name: DefaultEndorsement
- custom:
- name: customEndorsement
- library: /etc/hyperledger/fabric/plugins/customEndorsement.so
- escc:
- validators:
- vscc:
- name: DefaultValidation
- custom:
- name: customValidation
- library: /etc/hyperledger/fabric/plugins/customValidation.so
- vscc:
- endorsers:
- 예) handlers:
- 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 |