Endorsement Policy내용
Endorsement policies
Endorsement Policy은 트랜잭션이 적절하게 보증되는지 여부를 결정하는 방법을 피어에게 지시하는 데 사용됩니다. 피어가 트랜잭션을 수신하면 트랜잭션 유효성 검증 플로우의 일부로 트랜잭션의 체인 코드와 연관된 VSCC (유효성 검증 시스템 체인 코드)를 호출하여 트랜잭션의 유효성을 판별합니다. 보증(endorsing)이 많은 피어로부터 하나 이상의 보증(endorsement)을 포함한다는 것을 상기하십시오. VSCC는 다음 결정을 내려야합니다 :
- 모든 보증은 유효합니다 (즉, 예상 메시지에 대한 유효한 인증서의 유효한 서명입니다)
- 적절한 수의 보증이 있다.
- 보증은 예상된 소스에서 나온 것입니다.
Endorsement Policy은 두 번째 및 세 번째 점을 지정하는 방법입니다.
Endorsement policy syntax in the CLI
CLI에서는 간단한 언어를 사용하여 원칙에 대한 부울 표현에 대한 정책을 표현합니다.
principal은 서명자의 신원을 확인하고 서명자가 해당 MSP 내에서 갖는 역할을 확인하는 임무를 맡은 MSP의 관점에서 설명합니다. 구성원(member) , 관리자(admin) , 클라이언트(client) 및 피어(peer)의 네 가지 역할이 지원됩니다 . principal은 MSP
. ROLE
로 설명됩니다. 여기서 MSP
는 필수 MSP의 ID이며, ROLE
은 member
, admin
, client
및 peer
의 네 개의 문자열 중 하나입니다. 유효한 주체의 예로는 'Org0.admin'
( Org0
MSP의 모든 관리자 ) 또는 'Org1.member'
( Org1
MSP의 모든 구성원), 'Org1.client'
( Org1
MSP 클라이언트 ) 및 'Org1.peer'
( Org1
MSP의 피어 )입니다.
언어 구문은 다음과 같습니다. :
EXPR(E[, E...])
여기에서 EXPR
은 두 개의 부울 표현식을 나타내는 AND
또는 OR
이고 E
는 principal(위에 설명 된 구문을 사용하는) 이거나 EXPR
에 대한 다른 중첩 호출입니다.
- 예 :
-
AND('Org1.member', 'Org2.member', 'Org3.member')
는 3 명의 주체(principal) 각자에게서 1 개의 서명을 요구한다.OR('Org1.member', 'Org2.member')
은 두 명의 주체(principal) 중 한 명에게 1 개의 서명을 요구한다.OR('Org1.member', AND('Org2.member', 'Org3.member'))
는Org1
MSP의 멤버로부터 하나의 서명 또는,Org2
MSP의 멤버로부터 하나의 서명을, 그리고Org3
MSP의 멤버로부터 하나의 서명을 요청합니다.
Specifying endorsement policies for a chaincode
체인 코드 배포자는 이 언어를 사용하여 지정된 정책에 대해 체인 코드의 인증을 확인하도록 요청할 수 있습니다.
Note! 인스턴스 생성시 지정되지 않은 경우 Endorsement Policy은 기본적으로 "채널에 있는 조직의 모든(any) 구성원"으로 지정됩니다. 예를 들어 'Org1' 및 'Org2'가 포함된 채널의 기본 Endorsement Policy은 'OR ('Org1.member ','Org2.member ')입니다.
-P
스위치를 사용하여 인스턴스를 생성 할 때 정책을 지정할 수 있으며 그 뒤에 정책이 옵니다.
예 :
peer chaincode instantiate -C <channelid> -n mycc -P "AND('Org1.member', 'Org2.member')"
이 명령은 Org1 및 Org2 구성원이 트랜잭션에 서명해야하는 AND('Org1.member', 'Org2.member')
정책으로 chaincode mycc
를 배포 합니다.
ID 분류가 활성화된 경우(Membership Service Providers (MSP) 참조) PEER 역할을 사용하여 peers에게만 보증을 제한할 수 있습니다.
예 :
peer chaincode instantiate -C <channelid> -n mycc -P "AND('Org1.peer', 'Org2.peer')"
Note! 인스턴스 생성 후 채널에 추가된 새 조직은 체인 코드를 쿼리할 수 있지만 (쿼리에 채널 정책 및 체인 코드에 의해 적용되는 모든 응용 프로그램 수준 검사가 정의한 적절한 권한을 가지고 있음에도 불구하고 체인 코드로 승인된 트랜잭션을 커밋 할 수는 없습니다). 새로운 조직의 보증을 통해 트랜잭션을 커밋 할 수 있도록 Endorsement Policy을 수정해야합니다(Upgrade and Invoke Chaincode 참조).
출처 : http://hyperledger-fabric.readthedocs.io/en/release-1.1/endorsement-policies.html
'[블록체인] 하이퍼레저 > [하이퍼레저 패브릭] ' 카테고리의 다른 글
[하이퍼레저 공식문서]Operations Guides - Logging Control (0) | 2018.06.04 |
---|---|
[하이퍼레저 공식문서]Operations Guides - Error handling (0) | 2018.06.04 |
[하이퍼레저 공식문서]Operations Guides - Channel Configuration(configtx) (0) | 2018.06.04 |
[하이퍼레저 공식문서]Operations Guides - Membership Service Providers(MSP) (0) | 2018.06.04 |
[하이퍼레저 공식문서]Operations Guides - Updating a Channel Configuration (0) | 2018.06.04 |