在结构链代码级别限制成员的调用访问

我正在尝试在链码级别动态限制成员的调用访问,并在tutorial中找到了此方法  “ stub.getcallerCertificate”,但出现错误。

  

错误:stub.getcallerCertificate未定义(类型shim.ChaincodeStubInterface没有字段或方法getcallerCertificate)

您能告诉我我在代码中犯了什么错误吗?如果可能,请提供一些工作示例,以限制对链式代码级别的成员的访问(仅用于调用事务,就像牢固地检查msg.sender一样)?

Chaincode语言:转到

代码:

 xx,err1 := stub.getcallerCertificate()
   if err1 != nil {
       matchLogger.Info(err1)
   }
   matchLogger.Info("Cert ----")
   matchLogger.Info(string(xx))
wangxuyua 回答:在结构链代码级别限制成员的调用访问

GetCallerCertificate可能是Hyperledger Fabric 0.6的api。在Hyperledger架构V1中,您可以在存根上使用GetCreator调用,也可以使用在Hyperledger架构文档的this section中引用的ClientIdentity库。

基于属性的访问控制只是执行访问控制的一种方式。您可以通过其他方式进行操作,包括利用cid库允许您访问的证书信息。

,

这是我从node.js获得的示例,可能会对您有所帮助。

async function getInvokerID(stub) {
    let cid=new ClientIdentity(stub)
    let id = cid.getID(); // X509 Certificate invoker is in CN form
    console.log(id)
    let attributeValue=cid.getAttributeValue("attributeName")
    console.log(attributeValue)
    let CN = id.substring(id.indexOf("CN=") + 3,id.lastIndexOf("::"));
    return attributeValue;
}
本文链接:https://www.f2er.com/3144448.html

大家都在问