首页 > 解决方案 > 在超级账本结构 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:}

标签: hyperledger-fabrichyperledgerhyperledger-fabric-ca

解决方案


推荐阅读