我无法使用fabric-node-sdk安装节点链代码。
我收到以下错误:
installChaincode错误尚未为此客户端分配身份
我正在使用以下脚本
const Client = require("fabric-client");
const path = require("path");
const os = require("os");
const client = new Client();
const deploy = async () => {
const connectionOpts = {
name: "peer1",
"request-timeout": 7000,
pem: path.resolve(
os.homedir,
"/fabric-samples/chaincode-docker-devmode/msp/signcerts/peer.pem"
),
"ssl-target-name-override": "peer"
};
const peer = client.newPeer("grpc://172.18.0.3:7052", connectionOpts);
const request = {
targets: peer,
chaincodePath: path.resolve(
os.homedir + "/fabric-samples/chaincode/chaincode_example02/node"
),
chaincodeId: "myc",
chaincodeVersion: "v0",
chaincodeType: "node"
};
const result = await client.installChaincode(request, 6000);
console.log(await result);
};
deploy();
如何为客户分配身份?
在文档中,没有演示它需要什么参数以及如何分配身份。
答案 0 :(得分:0)
对等节点想知道谁在进行交易。在安装chincode事务之前尝试使用此方法:
client.setAdminSigningIdentity(private_key, certificate, mspid)
位置:
private_key :私钥PEM字符串
证书:PEM编码的证书字符串
mspid :本地签名身份的会员服务提供商ID(即'Org1MSP')
在chaincode安装请求中,您需要txId:
client.setAdminSigningIdentity(private_key, certificate, mspid)
const request = {
targets: peer,
chaincodePath: path.resolve(
os.homedir + "/fabric-samples/chaincode/chaincode_example02/node"
),
chaincodeId: "myc",
chaincodeVersion: "v0",
chaincodeType: "node",
txId: client.newTransactionID(true)
};
const result = await client.installChaincode(request, 6000);
console.log(await result);
答案 1 :(得分:0)
我也遇到了同样的问题,在添加以下行(即通道初始化)后,问题得以解决。
等待channel.initialize({discover:true});
来源:https://fabric-sdk-node.github.io/master/tutorial-discovery.html