Hyperledger Fabric: не может зарегистрировать более одного пользователя - PullRequest
0 голосов
/ 03 марта 2019

Я разрабатываю приложение фабрики гиперледжеров на основе примера переноса баланса, которое в настоящее время застревает при регистрации пользователя.У меня есть несколько организаций, например, bank, caseManager ... Сначала было отсутствие присоединения (некоторых добавленных мной организаций), которое выдает сообщения об ошибках, но затем, после того как я добавил несколько строк для создания присоединения, появляются странные сообщения .... Мне разрешено регистрировать только одного пользователя.Если я попытаюсь зарегистрироваться больше, это покажет:

[ERROR] Helper - Failed to get registered user: userABC with error: Error: Enrollment failed with errors [[{"code":0,"message":"2 rows were affected when updating the state of identity userABC"}]]

Я так долго искал и до сих пор не могу найти ответ на этот вопрос.Пожалуйста, помогите !!!

Код:

var registerUser = async function (params) {
try {
    var userOrg = params.userOrg;
    var org = params.org;
    var username = params.username;

    var client = await getClientForOrg(userOrg, username, true);

    logger.debug('Successfully initialized the credential stores');

    var user = await client.getUserContext(username, true);

    if (user && user.isEnrolled()) {

        logger.info('Successfully loaded member from persistence');

    } else {

        logger.info('User %s was not enrolled, so we will need an admin user object to register', username);

        var admins = hfc.getConfigSetting('admins');
        let adminUserObj = await client.setUserContext({ username: admins[0].username, password: admins[0].secret });

        let caClient = client.getCertificateAuthority();
        let affiliationService = caClient.newAffiliationService();

        console.log("passed 1");

        let registeredAffiliations = await affiliationService.getAll(adminUserObj);

        console.log("passed 2");

        if (!registeredAffiliations.result.affiliations.some(
            x => x.name == org)) {
            let affiliation = org + '.department1';
            await affiliationService.create({
                name: affiliation,
                force: true
            }, adminUserObj);
        }

        console.log("passed 3");

        let secret = await caClient.register({
            enrollmentID: username,
            role: 'user',
            affiliation: org + '.department1'
        }, adminUserObj);

        console.log("passed 4");
        logger.debug('Successfully got the secret for user %s: %s', username, secret);

        user = await client.setUserContext({ username: username, password: secret });
        user.setRoles(['client']);
        user._enrollmentSecret = secret.toString();
        user = await client.setUserContext(user);

        logger.debug('Successfully enrolled username %s and setUserContext on the client object', username);
    }

    if (user && user.isEnrolled) {

        var response = {
            success: true,
            secret: user._enrollmentSecret,
            message: username + ' enrolled Successfully in ' + userOrg,
        };

        console.log(response);

        return response;

    } else {

        throw new Error('User was not enrolled ');

    }
} catch (error) {

    logger.error('Failed to get registered user: %s with error: %s', username, error.toString());
    return 'failed: ' + error.toString();

}

};

Одна вещь, которую я заметил, это то, что если регистрация / регистрация не будет успешной, отладкастроки «пройдено 2» и «пройдено 3» будут дважды напечатаны в консоли.Таким образом, линии в этом случае будут проходить более одного раза.

1 Ответ

0 голосов
/ 05 марта 2019

Я не прочитал / не понял весь код, но что может быть полезно, так это регистрация того, что происходит на другой стороне.Так что загляните в журнал и посмотрите, что там не получилось.Также может быть только проблема правописания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...