Hyperledger Fabric:为什么加密货币不生成所有必要的加密货币材料来注册新用户?

问题描述

我正在使用密码原生成我正在构建的Fabric网络的所有密码资料。我可以成功地建立网络并部署链码。但是,尝试注册新用户时遇到问题。我将跟着资产转移私有数据教程一起学习,并在部署了链码之后运行

fabric-ca-client register --caname ca.org1 --id.name org1-client --id.secret org1-password --id.type client --mspdir ./config/crypto-config/peerOrganizations/org1/msp

并得到错误

2020/10/03 12:20:11 [INFO] Configuration file location: /home/user/network3.2/config/crypto-config/peerOrganizations/org1/fabric-ca-client-config.yaml
2020/10/03 12:20:11 [ERROR] Enrollment check Failed: Idemix enrollment information does not exist
Error: Enrollment information does not exist. Please execute enroll command first. Example: fabric-ca-client enroll -u http://user:userpw@serverAddr:serverPort

没有fabric-ca-client-config.yaml文件。我指定的mspdir具有根据Hyperledger Fabric: Enrollment check failed: Idemix enrollment information does not exist需要的目录signcerts,keystore和cacerts。但是,signcerts和keystore目录都为空,而它们应分别包含公共证书和私钥。

如何生成这些文件?谢谢。

解决方法

对于Idemix,您可以使用idemixgen工具。

但是,cryptogengen工具和idemixgen工具都用于测试目的。对于生产级别的使用,必须使用Hyperledger Fabric CA

cryptogen是用于生成Hyperledger Fabric密钥材料的实用程序。它是作为用于测试目的预先配置网络的一种方式。通常不会在生产网络的运营中使用它。

链接:https://hyperledger-fabric.readthedocs.io/en/release-2.2/commands/cryptogen.html?highlight=cryptogen#cryptogen

,

cryptogen是一个实用程序,可让您快速生成加密材料来开始工作。它与Fabric CA没有直接关系(有意地)。

您唯一可以做的就是利用为每个组织(在ca文件夹下)生成的CA密钥对作为启动Fabric CA实例时使用的根密钥对。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...