2

我正在使用超级账本链码将证书签名请求转换为自签名证书。但是在存储有关证书的信息时,交易没有成功,它没有给我任何分类帐上下文错误。

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 失败:事务 ID:ddc81d1bcb69eecd6c6bbcf85ba16b2168486d4b232ef3c03fe5bbc7bb2adea1 github.com/hyperledger/fabric/core/chaincode。运行时.goexit

任何帮助将非常感激。

4

1 回答 1

0

我也遇到过类似的问题。虽然这个错误没有任何适当的解决方案。根据我的理解,当 tx 需要更多时间来完成并丢失 state db api 提供的上下文实例时,会引发此错误。

在您的示例中, createPrivateKey 可能需要更多时间来生成 pk 并因此导致“无分类帐上下文”问题。

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

于 2020-08-30T11:10:07.143 回答