已设置背书策略为 “AND(‘Org1.member’,‘Org2.member’,‘Org3.member’)”
已安装并实例化链码到 peer0.org1 peer0.org2 peer0.org3 (打算把这三个节点作为背书节点)
SDK客户端请求代码如下:
//执行链码
func exec (fname string,args [][]byte) (channel.Response,error){
//生成通道上下文环境
ctx := sdk.ChannelContext(channelID,fabsdk.WithOrg(org),fabsdk.WithUser(user))
//实例化客户端
cli,_:=channel.New(ctx)
//操作
//cli.Execute() // peer chaincode invoke -c '{"Args":["setValue","buyer","100"]}' //只返回操作结果
//cli.Query() // peer chaincode query //返回查询内容
return cli.Execute(channel.Request{
ChaincodeID:chaincodeID,
Fcn:fname,
Args:args,
},channel.WithTargetEndpoints("peer0.org1.example.com","peer0.org2.example.com","peer0.org3.example.com"))
}
执行后,执行响应状态码为200成功,实际数据未改变
收到响应如下:
{
"Proposal": {
"TxnID": "86c3a5777fa9da0561d2127f53a4e2615191c84c4a9c7233ab32c2ca23cac987",
"header": "CmoIAxoMCKnPh/cFEPa5v7oBIgt0ZXN0Y2hhbm5lbCpAODZjM2E1Nzc3ZmE5ZGEwNTYxZDIxMjdmNTNhNGUyNjE1MTkxYzg0YzRhOWM3MjMzYWIzMmMyY2EyM2NhYzk4NzoJEgcSBWVzaG9wErsGCp4GCgdPcmcxTVNQEpIGLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNHRENDQWIrZ0F3SUJBZ0lRRUsxUHltaDNPSGYxU2NmV1o2R2lNekFLQmdncWhrak9QUVFEQWpCek1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RVpNQmNHQTFVRUNoTVFiM0puTVM1bGVHRnRjR3hsTG1OdmJURWNNQm9HQTFVRUF4TVRZMkV1CmIzSm5NUzVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREEyTVRFd09EQXhNRGxhRncwek1EQTJNRGt3T0RBeE1EbGEKTUZzeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZBWURWUVFIRXcxVApZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFEREJaQlpHMXBia0J2Y21jeExtVjRZVzF3YkdVdVkyOXRNRmt3CkV3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFRkE1a2NTbWcvNlpoQllONXlrT1dKTm5oR3U0UldleTIKdXpDTUFMdHk4a0RDd0duU0toS0NsR29tcFNGUC8zSUd6Ykxkbklxd1R6UHlQRm5aMlVSaWU2Tk5NRXN3RGdZRApWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEVlIwakJDUXdJb0FnaXgxV3VpcENDSFRPCk5xOHB0Nzg4YU9zeW81SkJtYUszbmR2dGU0VGp5WVF3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnTUFmTXBRbWMKdjRPS1NPTHUxZGRyYlo0emlzRW1peElCZG8zbmVzZEpmeVFDSUJLd1NhNERFOURWNjBKclBuM1I1M1h3NFhBbgpiU0lrUW1wc1RNWXdyWFNnCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KEhgDHMJfC0RtxLYAdBrJQyFpRdoRl4JVnqU=",
"payload": "CigKJggBEgcSBWVzaG9wGhkKCHNldFZhbHVlCgVidXllcgoGMTUwMDAw"
},
"Responses": [
{
"Endorser": "localhost:7051",
"Status": 200,
"ChaincodeStatus": 200,
"version": 1,
"response": {
"status": 200,
"message": "OK"
},
"payload": "CiClshe/4xHjJ3DnOXkQckIu1kx1QnEQVeOAZfHhe1Q9UBJkCk0SNAoFZXNob3ASKxopCgVidXllchogeyJvd25lciI6ImJ1eWVyIiwidmFsdWUiOjE1MDAwMH0SFQoEbHNjYxINCgsKBWVzaG9wEgIIARoDCMgBIg4SBWVzaG9wGgUxLjAuMA==",
"endorsement": {
"endorser": "CgdPcmcxTVNQEoAGLS0tLS1CRUdJTiAtLS0tLQpNSUlDR2pDQ0FjQ2dBd0lCQWdJUkFPMmNUS2dXcTd3TFU1aUhJdEp1T1A0d0NnWUlLb1pJemowRUF3SXdjekVMCk1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaGJpQkcKY21GdVkybHpZMjh4R1RBWEJnTlZCQW9URUc5eVp6RXVaWGhoYlhCc1pTNWpiMjB4SERBYUJnTlZCQU1URTJOaApMbTl5WnpFdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpBd05qRXhNRGd3TVRBNVdoY05NekF3TmpBNU1EZ3dNVEE1CldqQmJNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU4KVTJGdUlFWnlZVzVqYVhOamJ6RWZNQjBHQTFVRUF4TVdjR1ZsY2pBdWIzSm5NUzVsZUdGdGNHeGxMbU52YlRCWgpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJObkNHUUhXN28rTUxOTXBYNzBDVWZvSXp5MzNpYlVUCnNXU3F2ZTNxZTJyZTllN3VVL3AzK1pYOGhDbUZQUkNRMnFQdGdmcmxLbzVoaWVFT242VHd2eHlqVFRCTE1BNEcKQTFVZER3RUIvd1FFQXdJSGdEQU1CZ05WSFJNQkFmOEVBakFBTUNzR0ExVWRJd1FrTUNLQUlJc2RWcm9xUWdoMAp6amF2S2JlL1BHanJNcU9TUVptaXQ1M2I3WHVFNDhtRU1Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ2I0Tm13CkwvYUdYK2gvRXY3S1JGclN2VWlJcm51eHcyMmVjSE05K3JRTEZBSWdJRVR1ZmU3cUJxWUliVHdTb1hwa05FbkMKZjBRVm0razV3L0V6YUcvWjhYWT0KLS0tLS1FTkQgLS0tLS0K",
"signature": "MEUCIQDkf9pNn4pXtJNJV/UwMeAHjg15uGiH0V75XYSGKu10swIgcL9tp7kISeW9fXXVa/TWJEVeg0VQ5GV2kblCcs4v4jc="
}
},
{
"Endorser": "localhost:9051",
"Status": 200,
"ChaincodeStatus": 200,
"version": 1,
"response": {
"status": 200,
"message": "OK"
},
"payload": "CiClshe/4xHjJ3DnOXkQckIu1kx1QnEQVeOAZfHhe1Q9UBJkCk0SNAoFZXNob3ASKxopCgVidXllchogeyJvd25lciI6ImJ1eWVyIiwidmFsdWUiOjE1MDAwMH0SFQoEbHNjYxINCgsKBWVzaG9wEgIIARoDCMgBIg4SBWVzaG9wGgUxLjAuMA==",
"endorsement": {
"endorser": "CgdPcmcyTVNQEoAGLS0tLS1CRUdJTiAtLS0tLQpNSUlDR1RDQ0FiK2dBd0lCQWdJUVpsK0RRZUYxcm5kRFZEODBKb3NSY3pBS0JnZ3Foa2pPUFFRREFqQnpNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVaTUJjR0ExVUVDaE1RYjNKbk1pNWxlR0Z0Y0d4bExtTnZiVEVjTUJvR0ExVUVBeE1UWTJFdQpiM0puTWk1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURBMk1URXdPREF4TURsYUZ3MHpNREEyTURrd09EQXhNRGxhCk1Gc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVQKWVc0Z1JuSmhibU5wYzJOdk1SOHdIUVlEVlFRREV4WndaV1Z5TUM1dmNtY3lMbVY0WVcxd2JHVXVZMjl0TUZrdwpFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXlFajZCU1lqeWtFRzRHYWR4SVZMYnNpMWptMzV1bno0CkZDbzd2K2lJc1JpMGZ6Mjg1dThkLysxalpnbmowUlRzMUFneGZxREMyUlNuSlE5aXNWcXhwcU5OTUVzd0RnWUQKVlIwUEFRSC9CQVFEQWdlQU1Bd0dBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZ3c1dTV1RGhrcUt6dwpSRTBXVEZpYWdwMkl2U1g5U05hYTJicjVrbnE2RVpNd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFQUkNxc2tqCkhndnZ1NHh5cG1tVXRGTG1WcU94RU4wbjVQUXlla29zYWF1dEFpQXNlTk02L0hRTE1JK255dUlwdVJxbWN2ZUoKZWl5RFBMaGVMZGtYK3hYMlBRPT0KLS0tLS1FTkQgLS0tLS0K",
"signature": "MEUCIQD1/9ONHDtcvdaMi3Vp25Jv9OasXdaTfTh2tnM1Wrh5AgIgKcjE0rSYpH2gQYzkgrxXoG49dFvhBXHwWxlquvVBddg="
}
},
{
"Endorser": "localhost:11051",
"Status": 200,
"ChaincodeStatus": 200,
"version": 1,
"response": {
"status": 200,
"message": "OK"
},
"payload": "CiClshe/4xHjJ3DnOXkQckIu1kx1QnEQVeOAZfHhe1Q9UBJkCk0SNAoFZXNob3ASKxopCgVidXllchogeyJvd25lciI6ImJ1eWVyIiwidmFsdWUiOjE1MDAwMH0SFQoEbHNjYxINCgsKBWVzaG9wEgIIARoDCMgBIg4SBWVzaG9wGgUxLjAuMA==",
"endorsement": {
"endorser": "CgdPcmczTVNQEoAGLS0tLS1CRUdJTiAtLS0tLQpNSUlDR1RDQ0FiK2dBd0lCQWdJUUhJVzFnSzlmZTFrWk1uV2k5WjBxM0RBS0JnZ3Foa2pPUFFRREFqQnpNUXN3CkNRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnkKWVc1amFYTmpiekVaTUJjR0ExVUVDaE1RYjNKbk15NWxlR0Z0Y0d4bExtTnZiVEVjTUJvR0ExVUVBeE1UWTJFdQpiM0puTXk1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURBMk1URXdPREF4TURsYUZ3MHpNREEyTURrd09EQXhNRGxhCk1Gc3hDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVQKWVc0Z1JuSmhibU5wYzJOdk1SOHdIUVlEVlFRREV4WndaV1Z5TUM1dmNtY3pMbVY0WVcxd2JHVXVZMjl0TUZrdwpFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRURvUkpKS1l4SDAxeXRKRm0rOGxMdXpKZU9mbEdncStzCmd0NHE3U3hOclVtdGozVCtFRDVIc3Y0RHRYVnpvVUorQ3k3bkRqOTFMUllhOFUwaENDeWlucU5OTUVzd0RnWUQKVlIwUEFRSC9CQVFEQWdlQU1Bd0dBMVVkRXdFQi93UUNNQUF3S3dZRFZSMGpCQ1F3SW9BZ25EQ3VMWG1Lc3RxdApKaWhMRDlzZjFpUHdVK0JYU1NjWVlVY0s3K09rdnpzd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFPNW5GU3V6CldDS3JNdlZSdTFHK0gvaDZ1bzFPb01XSVZqZmdxRjRUWkZYb0FpQlBGRndxZnpseWRWUXM1c2RpU21PcFhSUnQKNzZwRlpZTit4T0dmdTRCUzhRPT0KLS0tLS1FTkQgLS0tLS0K",
"signature": "MEQCIAgBCrJNy5QQOJ7P6GShr8ezYMX/24LmeWl2mRZTlQwyAiBUiOh2SYjL5t6wA6CuprSddztt2XnjVJlzQuRBaGZfVg=="
}
}
],
"TransactionID": "86c3a5777fa9da0561d2127f53a4e2615191c84c4a9c7233ab32c2ca23cac987",
"TxValidationCode": 10,
"ChaincodeStatus": 200,
"Payload": null
}
可以看到,分别收到来自三个背书节点的响应,并具有相同多endorser和各自多signature
但TxValidationCode为10,交易验证失败
状态码10代表什么含义?
应当如何解决?
感谢指导