首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序(6)

为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序(6)

加载区块链网络配置让我们来看看 loadNetworkConfiguration 方法:
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 loadNetworkConfiguration(blockchainConfig){
    return new Promise(function(resolve, reject){
        try {
            logHelper.logEntryAndInput(logger, 'loadNetworkConfiguration');
            
            if(!validate.isValidJson(blockchainConfig)){
                logHelper.logError(logger, 'loadNetworkConfiguration', 'Invalid blockchainConfig');
                return reject({statusCode: constants.INVALID_INPUT, body: 'Could not loadNetworkConfiguration. Invalid blockchainConfig' });
            }
            
            var bcService = blockchainConfig;
            
            var peers = bcService.credentials.peers;
            for (var i in peers) {
                peerURLs.push(constants['BLOCKCHAIN_NW_PROTOCOL'] + peers.discovery_host + ":" + peers.discovery_port);
                peerHosts.push("" + peers.discovery_host);
            }
            var ca = bcService.credentials.ca;
            for (var i in ca) {
                caURL = constants['BLOCKCHAIN_NW_PROTOCOL'] + ca.url;
            }

            //users are only found if security is on
            if (bcService.credentials.users) users = bcService.credentials.users;
            for (var z in users) {
                if (users[z].username == constants['BLOCKCHAIN_REGISTRAR_ID']) {
                    registrarPassword = users[z].secret;
                }
            }

            logHelper.logMessage(logger, 'loadNetworkConfiguration', 'Successfully loaded network configuration');
            return resolve({statusCode: constants.SUCCESS, body: 'Successfully loaded network configuration'});

        }
        catch (err) {
            logHelper.logError(logger, 'loadNetworkConfiguration', 'Could not load Network Configuration', err);
            return reject({statusCode: constants.INTERNAL_SERVER_ERROR, body: 'Could not load Network Configuration'});
        }
    });
     
}




  • 第 13 到第 17 行将会解析 Blockchain                    服务配置,以获取对等节点列表,并将这些对等节点的发现 URL 添加到 peerHosts 集合中。
  • 第 18 到第 21 行会获取 CA(成员服务)的                    URL。constants['BLOCKCHAIN_NW_PROTOCOL'] 的值为                    grpcs。Bluemix 上的 IBM Blockchain 服务仅支持安全通信。
  • 第 23 到第 29 行从 WebAppAdmin 的 Blockchain                    服务凭证中包含的预注册用户列表中获取密码。之前已经提到过,WebAppAdmin 用户拥有注册员权利。这意味着可使用 WebAppAdmin                    用户向区块链注册其他新用户。此密码以后会用于登记 WebAppAdmin。
返回列表