hyperledger-fabric - 如何将身份分配给结构客户端实例?
问题描述
我无法使用 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();
如何为客户分配身份?
在文档中,没有说明它需要什么参数以及如何分配身份。
解决方案
对等节点想知道谁在进行交易。在安装 chincode 事务之前尝试使用此方法:
client.setAdminSigningIdentity(private_key, certificate, mspid)
其中:
private_key:私钥 PEM 字符串
certificate:证书的 PEM 编码字符串
mspid:本地签名身份的成员服务提供商 ID(即“Org1MSP”)
在链码安装请求中,您需要 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);
推荐阅读
- javascript - Node.js 服务器-客户端通信
- excel - 根据类别和间隔填充列
- sql-server - 如何从包含 XML 数据的列中提取值
- java - 自动回复短信不起作用。安卓工作室
- java - Java mongo-spark-connector - 如何将无序批量写入写入 MongoDB?
- c++ - Linux可执行文件通过dlopen在emplace_back上崩溃打开共享库
- javascript - JS:如何根据子 div 的内容隐藏具有多个嵌套 div 的父 div
- python - 余弦波的贝叶斯拟合花费的时间比预期的要长
- c++ - C++ 和带有国家符号的文件路径(可能用 utf8 编码)
- c# - C++ 函数转换为 C# 函数