我正在使用超级分类帐链码将证书签名请求转换为自签名证书。但是在存储有关证书的信息时,交易未成功,并且也没有出现分类帐上下文错误。
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
任何帮助将不胜感激。
答案 0 :(得分:0)
我也遇到过类似的问题。尽管没有针对此错误的任何适当解决方案。 据我了解,当tx花更多时间来完成并丢失状态db API提供的上下文实例时,会引发此错误。
在您的示例中,createPrivateKey可能会花费更多时间来生成pk,从而导致“无分类帐上下文”问题。