建议和反馈

请填写你的反馈内容

问答 > 联盟链 > 问答详情

有没有办法知道调用的同行和组织内部golang chaincode为Hyperledger fabric V1.0?10LK

有没有办法知道调用的同行和组织内部golang chaincode为Hyperledger fabric V1.0?

2020-02-13
0
请先登陆或注册

Diva2020-02-13

当前,interface.go文件中描述了可用于链码的所有API 目前尚无API可让您识别链码中的调用方和组织。我认为这样做的主要原因是,链码必须与该类型的信息无关,因为由对等方和链码管理的所有ACL均应与之无关,无论谁调用它,并且保持无状态,都应保持确定性行为。

如果需要,您可以尝试通过使用GetCreatorAPI 来利用创建交易建议请求的客户的身份

    // GetCreator returns `SignatureHeader.Creator` (e.g. an identity)
    // of the `SignedProposal`. This is the identity of the agent (or user)
    // submitting the transaction.
    GetCreator() ([]byte, error)

然后要解析客户端证书以了解客户端,也可以考虑使用瞬态字段使客户端将相关信息放置在那里,稍后链码可以读取这些信息:

// GetTransient returns the `ChaincodeProposalPayload.Transient` field.// It is a map that contains data (e.g. cryptographic material)// that might be used to implement some form of application-level// confidentiality. The contents of this field, as prescribed by// `ChaincodeProposalPayload`, are supposed to always// be omitted from the transaction and excluded from the ledger.GetTransient() (map[string][]byte, error)


投一票
评论(0)
赞赏(0)

求助中

解决了这个问题,预计可以帮助到

  • 0
  • 2
  • 6
  • 4
  • 2
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励