首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从SDK调用链码

无法从SDK调用链码
EN

Stack Overflow用户
提问于 2019-08-22 02:28:54
回答 1查看 234关注 0票数 0

我可以通过下面的命令从我的同级调用链码:

代码语言:javascript
复制
peer chaincode invoke -o coreOrderer.dip.com:7050 --tls --cafile /etc/hyperledger/tlsca.dip.com-cert.pem --tlsRootCertFiles /etc/hyperledger/fabric/tls/ca.crt -C dipchannel -n mycc --peerAddresses peer0.core.dip.com:7051 -c '{"Args":["query","a"]}'

它起作用了,我可以在对等日志中看到:

代码语言:javascript
复制
Entry chaincode: name:"mycc"
Exit chaincode: name:"mycc"  (2ms)

我可以在我的链码容器中看到这个调用的结果。

但是当我试图通过SDK从我的代码中调用

代码语言:javascript
复制
    req := channel.Request{
        ChaincodeID: "mycc",
        Fcn:         "query",
        Args:        [][]byte{[]byte("a")},
    }
    resp, err := client.Execute(req)

我得到了空响应,在对等体日志中我看到:

代码语言:javascript
复制
Entry chaincode: name:"cscc"
Exit chaincode: name:"cscc"  (1ms)

Entry chaincode: name:"lscc"
Exit chaincode: name:"lscc"  (1ms)

为什么调用cscc和lscc链码而不调用mycc?

EN

回答 1

Stack Overflow用户

发布于 2019-08-22 13:56:30

请检查以下是系统链码

LSCC生命周期系统链码处理上述生命周期请求。>>> 链码生命周期

CSCC配置系统链码处理对等端上的通道配置。帮助规范访问控制的>>>

QSCC查询系统链码提供了获取分块、事务等账本查询接口。

注意:特别是安装、实例化和升级不适用于系统链码。

系统链码在Hyperledger Fabric中用于实现许多系统行为,以便系统集成商可以根据需要替换或修改这些行为。

与用户链码不同,系统链码不会使用SDK或CLI中的建议进行安装和实例化。它由对等节点在启动时注册和部署

COMING to your query >>>>

检查您是否提供了身份,因为它进入了CSCC,CSCC是ACL的调节器

查看我的代码片段下面

代码语言:javascript
复制
func (setup *FabricSetup) Query() (string, error) {
    // Channel client is used to query and execute transactions
    clientContext := setup.sdk.ChannelContext(setup.ChannelID, fabsdk.WithUser(setup.OrgAdmin))
    client, err := channel.New(clientContext)
    setup.client = client
    // Prepare arguments
    var args []string
    args = append(args, "queryRate")
    args = append(args, "001")

    response, err := setup.client.Query(
        channel.Request{
            ChaincodeID: setup.ChainCodeID,
            Fcn:         args[0],
            Args:        [][]byte{[]byte(args[1])},
        },
    )
    if err != nil {
        return "", fmt.Errorf("failed to query: %v", err)
    }

    return string(response.Payload), nil
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57597375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档