Board logo

标题: 为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序(7) [打印本页]

作者: look_w    时间: 2018-6-18 13:57     标题: 为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序(7)

区块链网络配置让我们来看看 configureNetwork 方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function configureNetwork() {
    return new Promise(function(resolve, reject){

        try{
            logHelper.logEntryAndInput(logger, 'configureNetwork');
            var pem;
            fs.readFile(constants['BLOCKCHAIN_NW_CERT_PATH'], function(err, data){
                if(validate.isValid(err)){
                    logHelper.logError(logger,'configureNetwork', 'Could not read cert: '+constants['BLOCKCHAIN_NW_CERT_PATH']);
                    return reject({statusCode: constants.INTERNAL_SERVER_ERROR, body: 'Could not read cert: '+constants['BLOCKCHAIN_NW_CERT_PATH'] });
                }
                else{
                    pem = data;
                    chain.setMemberServicesUrl(caURL, { pem: pem });
                    for (var i in peerURLs) {
                        chain.addPeer(peerURLs, { pem: pem });
                    }

                    recursiveLogin({username: constants['BLOCKCHAIN_REGISTRAR_ID'], password: registrarPassword, chain: chain })
                    .then(function(resp){
                        logHelper.logMessage(logger,'configureNetwork', 'Successfully enrolled registrar: '+constants['BLOCKCHAIN_REGISTRAR_ID']);
                        var registrarMember = resp.body;
                        chain.setRegistrar(registrarMember);
                        return resolve({statusCode: constants.SUCCESS, body: 'Network configuration complete'});
                    })
                    .catch(function(err){
                        return reject({statusCode: constants.INTERNAL_SERVER_ERROR, body: 'Could not enroll registrar: '+constants['BLOCKCHAIN_REGISTRAR_ID'] });
                    })

                }

            });
        
        }
        catch(err){
            logHelper.logError(logger, 'configureNetwork', 'Could not configure network', err);
            return reject({statusCode: constants.INTERNAL_SERVER_ERROR, body: 'Could not configure network', err});
        }
    });
     
}




区块链设置到此就完成了。现在看看其他重要方法:
使用功能注册新用户让我们来看看 doRegister 方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var roles = params.roles;
            if(!validate.isValidArray(roles)){
                roles = ['client'];
            }

            var enrollsecret
            var chain = bcNetwork.getChain();
            var reg = chain.getRegistrar();
            var chainAsync = Promise.promisifyAll(chain);

            chainAsync.getMemberAsync(username)
            .then(function(member){
                var memberAsync = Promise.promisifyAll(member);
                 
                    var registrationRequest = {
                        enrollmentID: username,
                        attributes: [
                            {name: 'role', value: affiliation},
                            {name: 'username', value: username}
                        ],
                        affiliation: 'group1',
                        registrar: reg,
                        roles: roles
                        
                    };
                     
                return memberAsync.registerAsync(registrationRequest);
            })
            .then(function(enrollsec){
                logHelper.logMessage(logger, 'registerUser', 'Successfully registered user on blockchain: '+username);
                enrollsecret = enrollsec;
                return resolve({statusCode: constants.SUCCESS, body: {password: enrollsecret}});
                 
            })




要向基于 Hyperledger Fabric 的区块链注册新用户,可在注册请求中发送以下字段:





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0