如何为Fabric-client实例分配标识?

问题描述 投票:0回答:2

我无法使用fabric-node-sdk安装节点链代码。 我收到以下错误:

installChaincode error没有为此客户端分配身份

我正在使用以下脚本

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();

如何为客户分配身份? 在文档中,没有说明它需要什么参数以及如何分配标识。

hyperledger-fabric
2个回答
0
投票

对等节点想知道谁在进行交易。在安装chincode事务之前尝试使用此方法:

client.setAdminSigningIdentity(private_key, certificate, mspid)

哪里: private_key:私钥PEM字符串 证书: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);

0
投票

我也遇到了同样的问题,并在添加下面的行(即通道初始化)后解决了。

等待channel.initialize({discover:true});

来源:https://fabric-sdk-node.github.io/master/tutorial-discovery.html

© www.soinside.com 2019 - 2024. All rights reserved.