2017-10-31 4 views
0

하나의 채널에 4 명의 피어가 참여한 비즈니스 네트워크가있는 경우 피어가 트랜잭션 제안을 수락했는지, 피어가 트랜잭션을 승인했는지, 피어가 트랜잭션 페이로드를 상태 데이터베이스에 커밋했는지 확인하는 방법은 무엇입니까?하이퍼 드레거 네트워크에서 피어 유형 결정

답변

1

모든 피어는 일단 처리하면 트랜잭션을 수락하거나 거절합니다. 이벤트 구독 및 트랜잭션 상태 업데이트를 수락했는지 알 수 있습니다.

트랜잭션을 보증하는 피어는 해당 SerializedIdentity를 보증서에 넣습니다. 그러므로 어느 거래 상대방이 어떤 거래를 승인했는지 알고 싶다면

var block common.Block 
data := block.Data.Data 
env, err := utils.GetEnvelopeFromBlock(envBytes) 
payload, err := utils.GetPayload(env) 
tx, err := utils.GetTransaction(payload.Data) 
ccActionPayload, err := utils.GetChaincodeActionPayload(tx.Actions[0].Payload) 
endorsements := ccActionPayload.Action.Endorsements 
var endorsers []*peer.Endorser 
for _, e := range endorsements { 
    endorsers = append(endorsers, e.Endorser) 
} 
+0

과 같은 코드로 거래해야합니다. 피어의 하위 집합은 보증인이며 최종적으로 승인 된 트랜잭션은 새로운 블록의 일부인 채널 원장과 각 배의 모든 원장 사본에 추가됩니다. 그리고 다른 한편으로는 모든 피어가 통근자가되는 것은 아니며 동료 중 일부만이 자산을 주 데이터베이스에 커밋합니다. 내가 맞습니까? –

+0

채널에 참여한 모든 피어는 해당 채널의 커미터입니다. – yacovm