提交事务时,超级账本链代码中没有分类账上下文错误

时间:2019-11-17 20:35:09

标签: hyperledger-fabric hyperledger hyperledger-chaincode

我正在使用超级分类帐链码将证书签名请求转换为自签名证书。但是在存储有关证书的信息时,交易未成功,并且也没有出现分类帐上下文错误。

Nodejs版本:8.9.4

我的链码功能是:

async registerDomain(ctx, csr) {
let buff = new Buffer(csr, 'base64')
let csrData = buff.toString('ascii')
pem.createPrivateKey(2048, {
    aes128: "11223344"
}, async function (err, pk) {
    let domain = new Domain(ctx, "abcd", "data.detail", "keys.certificate", "pk.key");
    await ctx.stub.putState(domain.domainId, Buffer.from(JSON.stringify(domain)));
});

这是我在对等Docker日志中获取的内容:

  

HandleTransaction-> ERRO 09f [ddc81d1b]无法处理PUT_STATE。错误:没有分类帐上下文   runtime.goexit       /opt/go/src/runtime/asm_amd64.s:1333   PUT_STATE失败:交易编号:ddc81d1bcb69eecd6c6bbcf85ba16b2168486d4b232ef3c03fe5bbc7bb2adea1   github.com/hyperledger/fabric/core/chaincode。   runtime.goexit

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我也遇到过类似的问题。尽管没有针对此错误的任何适当解决方案。 据我了解,当tx花更多时间来完成并丢失状态db API提供的上下文实例时,会引发此错误。

在您的示例中,createPrivateKey可能会花费更多时间来生成pk,从而导致“无分类帐上下文”问题。

参考: https://jira.hyperledger.org/browse/FAB-17512?focusedCommentId=69269&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-69269