hyperledger-fabric - 在超级账本结构 2.2 中不存在 CA“未定义”的错误
问题描述
我正在尝试使用以下代码获取fabric-ca中的所有用户,但是由于CA 'undefined' does not exist
我检查了连接配置文件和fabric-ca日志而出现错误,因为提及名为ca-dfarmadmin
async GetAllUser(callback) {
try {
const caURL = connection.certificateAuthorities[caName].url;
var ca = new FabricCAServices(caURL);
const walletPath = path.join(process.cwd(), 'wallet');
const wallet = await Wallets.newFileSystemWallet(walletPath);
const adminIdentity = await wallet.get(appAdmin);
if (!adminIdentity) {
console.log('check Admin Exists')
response.data = null;
response.httpstatus = 400;
response.message = "Am admin identity is not registered . please register admin first";
return callback(response);
}
const provider = wallet.getProviderRegistry().getProvider(adminIdentity.type);
const adminUser = await provider.getUserContext(adminIdentity, 'admin');
const identityService = ca.newIdentityService();
console.log('identityService',identityService)
let res1 = await identityService.getAll(adminUser);
console.log('userIdendetu', res1);
response.data = res1
response.httpstatus = 200;
return callback(response);
} catch (error) {
response.error = error;
response.httpstatus = 500;
response.message = "Failed to enroll admin due to above error";
return callback(response);
}
};
连接配置文件 CA 部分
"certificateAuthorities": {
"ca-dfarmadmin": {
"url": "https://localhost:7054",
"caName": "ca-dfarmadmin",
"tlsCACerts": {
"pem": ["-----BEGIN CERTIFICATE-----xxxxxxxx=\n-----END CERTIFICATE-----\n"]
},
"httpOptions": {
"verify": false
}
}
}
CA-docker 容器日志,其中 CA 名称定义
2021/01/10 16:51:11 [DEBUG] ca.Config: &{Version:1.4.9 Cfg:{Identities:{PasswordAttempts:10 AllowRemove:false} Affiliations:{AllowRemove:false}} CA:{Name:ca-dfarmadmin Keyfile:/etc/hyperledger/fabric-ca-server/ca-key.pem Certfile:/etc/hyperledger/fabric-ca-server/ca-cert.pem Chainfile:/etc/hyperledger/fabric-ca-server/ca-chain.pem} Signing:0xc0003692e0 CSR:{CN:fabric-ca-server Names:[{C:US ST:North Carolina L: O:Hyperledger OU:Fabric SerialNumber:}] Hosts:[ff8ad3b1d5c7 localhost] KeyRequest:0xc0000c3be0 CA:0xc0000c3c80 SerialNumber:}
解决方案
推荐阅读
- reactjs - React Native EXPO Apple 上传失败
- r - 根据条件返回具体值:维数不正确
- python - 张量转换为具有 dtype int64 的张量请求 dtype int32 - 而 estimator.export_savedmodel
- python - 让 Selenium 选择特定的下拉菜单 PYTHON3
- c# - 使用 JWT 在 c# 中生成令牌的无效签名
- javascript - Dmitry Soshnikov 的 Javascript 文章中的这些括号是什么意思
- python - python - 在字符串列表中,找到至少在 y 个条目中出现的具有最少 n 个连续标记的所有模式
- c# - 在 C# 程序中使用 dll 并检查问题
- java - 使用 JAXB 将 Xml 组件解组为 Java 对象
- bash - 如何检查arr1中的元素是否存在于arr2 [BASH]中?