为基于 Hyperledger Fabric v0.6 的区块链网络开发客户端应用程序(6)
- UID
- 1066743
|
为基于 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。
|
|
|
|
|
|