0%

Hyperledger Fabric 扫盲之 Service Discovery CLI

CHFA-hyperledger-fabric.png

Overview

the usage of the command is shown below:

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
usage: discover [<flags>] <command> [<args> ...]

Command line client for fabric discovery service

Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
--configFile=CONFIGFILE Specifies the config file to load the configuration from
--peerTLSCA=PEERTLSCA Sets the TLS CA certificate file path that verifies the TLS peer's certificate
--tlsCert=TLSCERT (Optional) Sets the client TLS certificate file path that is used when the peer enforces client authentication
--tlsKey=TLSKEY (Optional) Sets the client TLS key file path that is used when the peer enforces client authentication
--userKey=USERKEY Sets the user's key file path that is used to sign messages sent to the peer
--userCert=USERCERT Sets the user's certificate file path that is used to authenticate the messages sent to the peer
--MSP=MSP Sets the MSP ID of the user, which represents the CA(s) that issued its user certificate

Commands:
help [<command>...]
Show help.

peers [<flags>]
Discover peers

config [<flags>]
Discover channel config

endorsers [<flags>]
Discover chaincode endorsers

saveConfig
Save the config passed by flags into the file specified by --configFile

Configuring external endpoints

Currently, to see peers in service discovery they need to have EXTERNAL_ENDPOINT to be configured for them. Otherwise, Fabric assumes the peer should not be disclosed.

1
CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:8051

Persisting configuration

1
/opt/bin/discover --configFile discoverconfig.yaml --peerTLSCA peerOrganizations/org1.example.com/users/User1\@org1.example.com/tls/ca.crt --userKey peerOrganizations/org1.example.com/users/User1\@org1.example.com/msp/keystore/b2899b9d6443b062d736fdf4b5fa73db0ca9ffc0aaf45c9dac9049b345ab436c_sk --userCert peerOrganizations/org1.example.com/users/User1\@org1.example.com/msp/signcerts/User1\@org1.example.com-cert.pem --MSP Org1MSP saveConfig
1
2
3
4
5
6
7
8
9
10
version: 0
tlsconfig:
certpath: ""
keypath: ""
peercacertpath: /etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.finblockchain.cn/users/User1@org1.finblockchain.cn/tls/ca.crt
timeout: 0s
signerconfig:
mspid: Org1MSP
identitypath: /etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.finblockchain.cn/users/User1@org1.finblockchain.cn/msp/signcerts/User1@org1.finblockchain.cn-cert.pem
keypath: /etc/hyperledger/fabric/crypto-config/peerOrganizations/org1.finblockchain.cn/users/User1@org1.finblockchain.cn/msp/keystore/3392dfa8ac1e956ca918690f60a460a0e8e6d880b1d9d0a03947fbd8730e9820_sk

Peer membership query:

1
root@6673a941ffd5:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto# /opt/bin/discover --configFile discoverconfig.yaml peers --channel mychannel --server peer0.org1.example.com:7051

Below is the command output of peers query

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

{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org1.example.com:7051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICKTCCAc+gAwIBAgIRALDIidAvFqocYnZt5hdAeRMwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwMzExMDkxNDAwWhcNMzAwMzA5MDkxNDAw\nWjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEqdiEuoEOXy\nwWQrQZcSgnkfT3uCun9BcIvKW0DUnNJDs4PQOV2Iu3NyMUCL78nmAF3Nhag54hZQ\npagAj1TKBC+jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIMdNxOMdQqEkx5wxkbcrf3JeXo6acV9gJCHfXJphc/TtMAoGCCqGSM49\nBAMCA0gAMEUCIQCmdmAHNccAdXEDw8C/lV38dBv9G2gAiesRFjbApOLqKwIgFcdB\nQDotyW+eRXxltEaeghx0+yR8ySzxuY8uncpeAgo=\n-----END CERTIFICATE-----\n",
"Chaincodes": [
"mycc",
"vendor"
]
},
{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer1.org1.example.com:8051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQJ0DXZSYmZfm26oFKtBoDdjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcx\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnIatOWiCBfbc\nLUr4JlkdctBmZJ41YGca9kbz+CNBJRPx3CjH1pTJADfaojsZfpMWgTdXcaTQF8eR\nYbzIde3fBqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAgx03E4x1CoSTHnDGRtyt/cl5ejppxX2AkId9cmmFz9O0wCgYIKoZIzj0E\nAwIDRwAwRAIgYtxo1gBHQW0dVvn6jc4tOiq3Nyz/aOXFf6VibeCpWKoCIDKYk/92\nbFk/jE3yHeQHKSxOC1eNk0ak2gudrReKVlwJ\n-----END CERTIFICATE-----\n",
"Chaincodes": [
"vendor"
]
},
{
"MSPID": "Org2MSP",
"LedgerHeight": 12,
"Endpoint": "peer1.org2.example.com:10051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQEmktqnZ/zc3HJxBZfOanHTAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8EGkRYAk0/uW\nBHUfxhI0GosdtTCSKaBIQxPWn4so7ONZxsf2s6Yst1SjOfiN8aG520oSvdCjtCvT\nPozgvQrnTqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgeDjPXKB3pohEI5nhdMtBEZDCEJBfGpQfiROlOBl0TngCIFX4D6E0\nphnDqHSRVPAI6Xt+mkJvDOq/P5qMIfy0rRns\n-----END CERTIFICATE-----\n",
"Chaincodes": [
"mycc",
"vendor"
]
},
{
"MSPID": "Org2MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org2.example.com:9051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQV9z6OE+mj/L1ez8wq6gcvjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs3Zh2dODw9Ii\n731lgxDfzKDlfam9dhRHeK6eKTJxwM6C516apuBSqbdPFu9Gr1exM/UgNb79z1xS\nKTGwfc4wwqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgfC9075LAovdOm4mvUvZlUTQvZFiY362fBeIn8fGwjG0CID+Zb6Fn\n4hJkQyo3lHSy6tkH8yaXYGSffrYjG1AovwGt\n-----END CERTIFICATE-----\n",
"Chaincodes": [
"mycc",
"vendor"
]
}
]

The Identity that is returned is the enrollment certificate of the peer, and it can be parsed with a combination of jq and openssl:

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
root@6673a941ffd5:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto# discover --configFile discoverconfig.yaml peers --channel mychannel  --server peer0.org1.example.com:7051  | jq .[0].Identity | sed "s/\\\n/\n/g" | sed "s/\"//g"  | openssl x509 -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
27:40:d7:65:26:26:65:f9:b6:ea:81:4a:b4:1a:03:76
Signature Algorithm: ecdsa-with-SHA256
Issuer: C=US, ST=California, L=San Francisco, O=org1.example.com, CN=ca.org1.example.com
Validity
Not Before: Mar 11 09:14:00 2020 GMT
Not After : Mar 9 09:14:00 2030 GMT
Subject: C=US, ST=California, L=San Francisco, OU=peer, CN=peer1.org1.example.com
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:9c:86:ad:39:68:82:05:f6:dc:2d:4a:f8:26:59:
1d:72:d0:66:64:9e:35:60:67:1a:f6:46:f3:f8:23:
41:25:13:f1:dc:28:c7:d6:94:c9:00:37:da:a2:3b:
19:7e:93:16:81:37:57:71:a4:d0:17:c7:91:61:bc:
c8:75:ed:df:06
ASN1 OID: prime256v1
NIST CURVE: P-256
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Authority Key Identifier:
keyid:C7:4D:C4:E3:1D:42:A1:24:C7:9C:31:91:B7:2B:7F:72:5E:5E:8E:9A:71:5F:60:24:21:DF:5C:9A:61:73:F4:ED

Signature Algorithm: ecdsa-with-SHA256
30:44:02:20:62:dc:68:d6:00:47:41:6d:1d:56:f9:fa:8d:ce:
2d:3a:2a:b7:37:2c:ff:68:e5:c5:7f:a5:62:6d:e0:a9:58:aa:
02:20:32:98:93:ff:76:6c:59:3f:8c:4d:f2:1d:e4:07:29:2c:
4e:0b:57:8d:93:46:a4:da:0b:9d:ad:17:8a:56:5c:09

Configuration query

1
./discover --configFile config.yaml config --channel channelfft --server peer1.org1.finblockchain.cn:7051

Below is command output of config query

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
{
"msps": {
"Orderer11MSP": {
"name": "Orderer11MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXakNDQWdHZ0F3SUJBZ0lRSGhRM0U4TFY0c25CWWwvQjhYRVcyekFLQmdncWhrak9QUVFEQWpCL01Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWZNQjBHQTFVRUNoTVdiM0prTVRFdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFaU1DQUdBMVVFCkF4TVpZMkV1YjNKa01URXVabWx1WW14dlkydGphR0ZwYmk1amJqQWVGdzB4TnpFeE1URXdORFV6TVROYUZ3MHkKTnpFeE1Ea3dORFV6TVROYU1IOHhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saApNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wYzJOdk1SOHdIUVlEVlFRS0V4WnZjbVF4TVM1bWFXNWliRzlqCmEyTm9ZV2x1TG1OdU1TSXdJQVlEVlFRREV4bGpZUzV2Y21ReE1TNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1Ga3cKRXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUwc0kzaUR0SWRuSWFaL0I2RXZBZEduaWtFQ2NnR2U4aApKM2xtOHhBZVFZcDdJNEJlako2dTVKMTJDcXhjMDNNcDFuc1I4Rm84RnlPSHl4RlhJWVNkZGFOZk1GMHdEZ1lEClZSMFBBUUgvQkFRREFnR21NQThHQTFVZEpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXAKQmdOVkhRNEVJZ1FnRllSRkkrUkp0UUJraU12VFVHaldSbFRTTWVnSUl1cGlVeHlUYWN3ZXRzMHdDZ1lJS29aSQp6ajBFQXdJRFJ3QXdSQUlnRWpWaEszditGUGtWem81K1BwbloxY0lDekNTRlZmb1pnbkxNY041VHpSVUNJQ2dxCjhtZ243UlhzWVpuaEtyYml0S1EyODdTNzFJLzA2azU4ak5vVm1FS08KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQWRLZ0F3SUJBZ0lSQUpTSmVidzFFOC85MS93bVpqOWYyUjB3Q2dZSUtvWkl6ajBFQXdJd2Z6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIekFkQmdOVkJBb1RGbTl5WkRFeExtWnBibUpzYjJOclkyaGhhVzR1WTI0eElqQWdCZ05WCkJBTVRHV05oTG05eVpERXhMbVpwYm1Kc2IyTnJZMmhoYVc0dVkyNHdIaGNOTVRjeE1URXhNRFExTXpFeldoY04KTWpjeE1UQTVNRFExTXpFeldqQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cApZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RWxNQ01HQTFVRUF3d2NRV1J0YVc1QWIzSmtNVEV1ClptbHVZbXh2WTJ0amFHRnBiaTVqYmpCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkg2QkxCa2YKZ1ZXSkhzcFRoS1hjYmJ0OEZJTUsyR2hYZXNNWmw5VHFpVWovRmZiUTdDMlhwVldiWnBXempHUEVZcUN4ZzhIdgphRHdJazdUMGtrQWV3Y3VqVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHCkExVWRJd1FrTUNLQUlCV0VSU1BrU2JVQVpJakwwMUJvMWtaVTBqSG9DQ0xxWWxNY2sybk1IcmJOTUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lCUE9lWTJncThDT2cwYkdqdGlWbk9xdnYrQmFyVEc2ZUZoWDNYdmhhTGlQQWlCRQphSzFGN0ZFSVgwbExsd0JNSHdOR1E0S0s2YmtnRGNWQk41ZUJzWjNMekE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZekNDQWdxZ0F3SUJBZ0lSQUl2RVBWeGZtR2lGSUpmbitlUWRZL013Q2dZSUtvWkl6ajBFQXdJd2dZSXgKQ3pBSkJnTlZCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0ZwpSbkpoYm1OcGMyTnZNUjh3SFFZRFZRUUtFeFp2Y21ReE1TNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1TVXdJd1lEClZRUURFeHgwYkhOallTNXZjbVF4TVM1bWFXNWliRzlqYTJOb1lXbHVMbU51TUI0WERURTNNVEV4TVRBME5UTXgKTTFvWERUSTNNVEV3T1RBME5UTXhNMW93Z1lJeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cApabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFLRXhadmNtUXhNUzVtCmFXNWliRzlqYTJOb1lXbHVMbU51TVNVd0l3WURWUVFERXh4MGJITmpZUzV2Y21ReE1TNW1hVzVpYkc5amEyTm8KWVdsdUxtTnVNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVPMGxLZW9keUEwVjM0ZjN5WXJuYwp5SFNxc1pIazE1WEhZOTFlMUNBVzJNdGV1VnBpQ0x6anZmeDZXb00wWVp2aWtXeWZrNkdadEtJN1FZUGw5Vk5kCklhTmZNRjB3RGdZRFZSMFBBUUgvQkFRREFnR21NQThHQTFVZEpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC8KQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnZk0wOU5LNkVkVzNNU1dNN3pNMndJSitQMHZjQTRaKzVBcVpTc3BJSQpDMjR3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnY1AzN1V0OTVvUkJPdVkyOXFHTkl4dHQ3ZmlIZGViWHlLdnVkClBta014QmNDSUJVVWMrdVFHdHBySW4xbjk0NUt1b2JyRDBoN1k2NXc2RUxwNDgwT1Q5L20KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
},
"Orderer12MSP": {
"name": "Orderer12MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXekNDQWdHZ0F3SUJBZ0lRSU12OVZwNDRVSDdnV3NHL01lSnByREFLQmdncWhrak9QUVFEQWpCL01Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWZNQjBHQTFVRUNoTVdiM0prTVRJdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFaU1DQUdBMVVFCkF4TVpZMkV1YjNKa01USXVabWx1WW14dlkydGphR0ZwYmk1amJqQWVGdzB4TnpFeU1EZ3dNalUzTXpaYUZ3MHkKTnpFeU1EWXdNalUzTXpaYU1IOHhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saApNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wYzJOdk1SOHdIUVlEVlFRS0V4WnZjbVF4TWk1bWFXNWliRzlqCmEyTm9ZV2x1TG1OdU1TSXdJQVlEVlFRREV4bGpZUzV2Y21ReE1pNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1Ga3cKRXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVpMVpLRXR5V29tN3BiM1dJYkRwTy8yMWxHdlFVSVpDUApiRXNiZ2puTkx6YnBmaDdzMm1WVkRjejBicUlYcnVsUnZZMm53VTBERmNBdVlNWHB5ZS9IYjZOZk1GMHdEZ1lEClZSMFBBUUgvQkFRREFnR21NQThHQTFVZEpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXAKQmdOVkhRNEVJZ1FnM3MzeCtPS3RSNEtkdjB0T3o4TVlrYzdTSjh3eWdEZEZNQldaL3JqdTJiZ3dDZ1lJS29aSQp6ajBFQXdJRFNBQXdSUUloQU82NUZJN01UV2tqRXdyY2xya0FNczFiakE5VmQxMkNVV0szeGUvYTVMY3lBaUJrCkxwa3Q4S29Pbk04SytXZmNUc0ZoYVoyMmcwVVp2ZEFZZE1SNGFOVVNHZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNMRENDQWRLZ0F3SUJBZ0lSQU9ieGQxY2pGSGhQVjdNalBBM0hncWt3Q2dZSUtvWkl6ajBFQXdJd2Z6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIekFkQmdOVkJBb1RGbTl5WkRFeUxtWnBibUpzYjJOclkyaGhhVzR1WTI0eElqQWdCZ05WCkJBTVRHV05oTG05eVpERXlMbVpwYm1Kc2IyTnJZMmhoYVc0dVkyNHdIaGNOTVRjeE1qQTRNREkxTnpNMldoY04KTWpjeE1qQTJNREkxTnpNMldqQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cApZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RWxNQ01HQTFVRUF3d2NRV1J0YVc1QWIzSmtNVEl1ClptbHVZbXh2WTJ0amFHRnBiaTVqYmpCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQlBVRnNYaWUKMjNUeFJGMnJvMU5BclNkalpuRUtQRDBRM05aWHZpQy9DK0x3UmxQZXFNOHdQcVVydjRsZDJ4RzFiVFpKTExQQwo2dUFUekNrc0pLTk14dWVqVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHCkExVWRJd1FrTUNLQUlON044ZmppclVlQ25iOUxUcy9ER0pITzBpZk1Nb0EzUlRBVm1mNjQ3dG00TUFvR0NDcUcKU000OUJBTUNBMGdBTUVVQ0lRRCtVSUZnN1l2VUY2NWVldFZsTm5nTnF2Zm1VVWtyczFHMVFkMU9oeUFXUHdJZwpUaG1KYktLOFJIbVYrcStKa3hGc0hRekxldzBHZjZabkJCa2MrYTNTaDhRPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZekNDQWdxZ0F3SUJBZ0lSQUp3UmlVeUpvYnFVMHgraGNQd1BKb2t3Q2dZSUtvWkl6ajBFQXdJd2dZSXgKQ3pBSkJnTlZCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0ZwpSbkpoYm1OcGMyTnZNUjh3SFFZRFZRUUtFeFp2Y21ReE1pNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1TVXdJd1lEClZRUURFeHgwYkhOallTNXZjbVF4TWk1bWFXNWliRzlqYTJOb1lXbHVMbU51TUI0WERURTNNVEl3T0RBeU5UY3oKTmxvWERUSTNNVEl3TmpBeU5UY3pObG93Z1lJeEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cApabTl5Ym1saE1SWXdGQVlEVlFRSEV3MVRZVzRnUm5KaGJtTnBjMk52TVI4d0hRWURWUVFLRXhadmNtUXhNaTVtCmFXNWliRzlqYTJOb1lXbHVMbU51TVNVd0l3WURWUVFERXh4MGJITmpZUzV2Y21ReE1pNW1hVzVpYkc5amEyTm8KWVdsdUxtTnVNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVtNFVoVGd2cmdGSFZ5RUhNRDlQUgp0djhuTGU1dS9NZU13WVBHSTZyN08xZHc4Si9STXVSalFPRkVwMEVxcHcweUF2d2pDczJTOG4zdExnMmtnb0tECnBxTmZNRjB3RGdZRFZSMFBBUUgvQkFRREFnR21NQThHQTFVZEpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC8KQkFVd0F3RUIvekFwQmdOVkhRNEVJZ1FnWU80T2E5emoxNWk1T09jMWFsOEl2L3g4TzlYbGhSTmE2N1E5K1ZtcwpmWnN3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnUkdtMC8rdHNac1BSUmthakJuSHk4cERtR2tNRjBUK2s2Qi9IClRjcFVtZTBDSUV6dTAyTTc2aXZLdHpJZkZXVDB5RzVWbmRpbGZhNEFYQ3E5RFNLV2RzNm8KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
},
"Orderer1MSP": {
"name": "Orderer1MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWekNDQWY2Z0F3SUJBZ0lSQUpWOXdQRHgzcWY4YTdFeGlpZytYWUl3Q2dZSUtvWkl6ajBFQXdJd2ZURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIakFjQmdOVkJBb1RGVzl5WkRFdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFaE1COEdBMVVFCkF4TVlZMkV1YjNKa01TNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1CNFhEVEUzTVRFeE1UQTBOVE14TTFvWERUSTMKTVRFd09UQTBOVE14TTFvd2ZURUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeApGakFVQmdOVkJBY1REVk5oYmlCR2NtRnVZMmx6WTI4eEhqQWNCZ05WQkFvVEZXOXlaREV1Wm1sdVlteHZZMnRqCmFHRnBiaTVqYmpFaE1COEdBMVVFQXhNWVkyRXViM0prTVM1bWFXNWliRzlqYTJOb1lXbHVMbU51TUZrd0V3WUgKS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXdmUngzclpTTEhlaDEvMHpYdEVUYTlsaXJ0dVBiSDdiTnRHKwozd0kyMXhIa2tqSWxGS0t1blVTTWxTV2VpbEp1KzZIdUw2enkzN3g2R3hWQnlvVWlmNk5mTUYwd0RnWURWUjBQCkFRSC9CQVFEQWdHbU1BOEdBMVVkSlFRSU1BWUdCRlVkSlFBd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBcEJnTlYKSFE0RUlnUWdHS3pkNHhsd2cybnh0SHhldFprWkdZRXc1WjN0SmhKQVVEUkxFQmZuK3NJd0NnWUlLb1pJemowRQpBd0lEUndBd1JBSWdMTEFvaVVabXp2bURDb2dxOXBZd0RaSExraU82MnlkY0c1Q0U3ZVFmWkRBQ0lFQk9GQWJ5Cm9jeTNiVTFFRDMyNnhTM1JBSHphMXRpeG5MMUcyYnE4clEzegotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNKekNDQWM2Z0F3SUJBZ0lRR3VySXJsOFNtdGxnVXhSV2ZGVG0rREFLQmdncWhrak9QUVFEQWpCOU1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWVNQndHQTFVRUNoTVZiM0prTVM1bWFXNWliRzlqYTJOb1lXbHVMbU51TVNFd0h3WURWUVFECkV4aGpZUzV2Y21ReExtWnBibUpzYjJOclkyaGhhVzR1WTI0d0hoY05NVGN4TVRFeE1EUTFNekV6V2hjTk1qY3gKTVRBNU1EUTFNekV6V2pCZ01Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFVwpNQlFHQTFVRUJ4TU5VMkZ1SUVaeVlXNWphWE5qYnpFa01DSUdBMVVFQXd3YlFXUnRhVzVBYjNKa01TNW1hVzVpCmJHOWphMk5vWVdsdUxtTnVNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVRWkh0eXFvRFVrWWMKSVhnY3BzTmdNeFNvWUFvWUFyQlJiWmhyVXdqMlpBQnRwRUtKUHFhVm1PM0hQRGl0S09ic1lud04yNkZqV0ZRQwpHVFlZelgzTXNxTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FnR0t6ZDR4bHdnMm54dEh4ZXRaa1pHWUV3NVozdEpoSkFVRFJMRUJmbitzSXdDZ1lJS29aSXpqMEUKQXdJRFJ3QXdSQUlnVGg5OERZcjAxSloxblB4aHVJaCtnZUpONkg4QzhsditVSEQwSjRzTFRWVUNJRk54N24vSAppZERuMStBUkh4UUFiTnl1dk02M2ZhZjBEMGhBNjNRWW9xMFoKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYekNDQWdhZ0F3SUJBZ0lSQUlaTGptS1YzYzlYd2t3UnFXSUpPdEF3Q2dZSUtvWkl6ajBFQXdJd2dZQXgKQ3pBSkJnTlZCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eWJtbGhNUll3RkFZRFZRUUhFdzFUWVc0ZwpSbkpoYm1OcGMyTnZNUjR3SEFZRFZRUUtFeFZ2Y21ReExtWnBibUpzYjJOclkyaGhhVzR1WTI0eEpEQWlCZ05WCkJBTVRHM1JzYzJOaExtOXlaREV1Wm1sdVlteHZZMnRqYUdGcGJpNWpiakFlRncweE56RXhNVEV3TkRVek1UTmEKRncweU56RXhNRGt3TkRVek1UTmFNSUdBTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNCTUtRMkZzYVdadgpjbTVwWVRFV01CUUdBMVVFQnhNTlUyRnVJRVp5WVc1amFYTmpiekVlTUJ3R0ExVUVDaE1WYjNKa01TNW1hVzVpCmJHOWphMk5vWVdsdUxtTnVNU1F3SWdZRFZRUURFeHQwYkhOallTNXZjbVF4TG1acGJtSnNiMk5yWTJoaGFXNHUKWTI0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSRlVuVkljM1VyNXVkeUZHMDFOR0M4ak9LRQpyL3J1YnJlMFY4TW9Oa0NXc0Z5RTRJSlp0UmsvSXdnUmxOY0E5bU9FbDE4M2ErZkFsdGdyc0ZvM1BoN3RvMTh3ClhUQU9CZ05WSFE4QkFmOEVCQU1DQWFZd0R3WURWUjBsQkFnd0JnWUVWUjBsQURBUEJnTlZIUk1CQWY4RUJUQUQKQVFIL01Da0dBMVVkRGdRaUJDQ0srbjdtQ2VzQWZSSDJBNVg3R3pXd3VUeEZJTGFla21ZUlpaeVlrc2ZtY2pBSwpCZ2dxaGtqT1BRUURBZ05IQURCRUFpQjYwaVBhMVJvK3NQZlo3MUlJTVJ6bE9xcUFGeXZjQVhydmgwQzZhbEhGCjl3SWdJMmtEUFJ3SEVORVRZYUF5bmlLZnppa005K3l6VmpwUmZSZ2xGWEtNc2cwPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
]
},
"Org11MSP": {
"name": "Org11MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXekNDQWdHZ0F3SUJBZ0lRYXpBeEJpTzc0T2ZpTmlyUzU5YlVvVEFLQmdncWhrak9QUVFEQWpCL01Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWZNQjBHQTFVRUNoTVdiM0puTVRFdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFaU1DQUdBMVVFCkF4TVpZMkV1YjNKbk1URXVabWx1WW14dlkydGphR0ZwYmk1amJqQWVGdzB4TnpFeE1URXdORFV6TVROYUZ3MHkKTnpFeE1Ea3dORFV6TVROYU1IOHhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saApNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wYzJOdk1SOHdIUVlEVlFRS0V4WnZjbWN4TVM1bWFXNWliRzlqCmEyTm9ZV2x1TG1OdU1TSXdJQVlEVlFRREV4bGpZUzV2Y21jeE1TNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1Ga3cKRXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVvdDN5WjBLMWJkV1pNcEVTYTZhL3hub2Voc0EzTjliRQo1RmVKbEZIM2pRY0kwZG5vK003aHB6WGJYVE85Q0w0VDlmNHF3S29WUDYxZVY4QTdnb1BsZGFOZk1GMHdEZ1lEClZSMFBBUUgvQkFRREFnR21NQThHQTFVZEpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXAKQmdOVkhRNEVJZ1FnL1Z1NE5kVTE1ZzROcCtuYW45aHVXeHZrSVdYcmsxb1dUY2FYVWJ5VklCMHdDZ1lJS29aSQp6ajBFQXdJRFNBQXdSUUloQU1GZElwUXBhNEt0VkFvN3c1SnZoQU9sNWpzWVVlUERDM2FIMzd0WGpqRzRBaUFICldTMmgyeXZxR1hFdW1VdHV2V3ZraVRvQlNMQTlHTjArZ0dtV1RxZk8rUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQWRHZ0F3SUJBZ0lRR1hxS2xVWVJ2MDZiMGhOcW8rVld0VEFLQmdncWhrak9QUVFEQWpCL01Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWZNQjBHQTFVRUNoTVdiM0puTVRFdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFaU1DQUdBMVVFCkF4TVpZMkV1YjNKbk1URXVabWx1WW14dlkydGphR0ZwYmk1amJqQWVGdzB4TnpFeE1URXdORFV6TVROYUZ3MHkKTnpFeE1Ea3dORFV6TVROYU1HRXhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saApNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wYzJOdk1TVXdJd1lEVlFRRERCeEJaRzFwYmtCdmNtY3hNUzVtCmFXNWliRzlqYTJOb1lXbHVMbU51TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFUUhwZWcvQU4KMzY5SGZXMFFpQlBZRjhLdGVWUElmTHVraXFVQjNiK0NqVmI0bUhmdjVoZThGc2Z4VGlJaUZwZnRNRE8zN2hoWApRT3l3Y3M2RDRMc1lpS05OTUVzd0RnWURWUjBQQVFIL0JBUURBZ2VBTUF3R0ExVWRFd0VCL3dRQ01BQXdLd1lEClZSMGpCQ1F3SW9BZy9WdTROZFUxNWc0TnArbmFuOWh1V3h2a0lXWHJrMW9XVGNhWFVieVZJQjB3Q2dZSUtvWkkKemowRUF3SURTQUF3UlFJaEFJZVAzK1I5WEFrMC95TFB5WHJUODJkNzZ6eGY1eDNERzY0eWNpREp5UXlTQWlCeAo4YzdzWWpkWkZDSW1lOWRkSFp3bjJYSVFNSVZPejRvODV5c05MVUEyN3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZakNDQWdtZ0F3SUJBZ0lRRHlYN0NqWFdXaUNIQ3F4U0FRUVlCREFLQmdncWhrak9QUVFEQWpDQmdqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIekFkQmdOVkJBb1RGbTl5WnpFeExtWnBibUpzYjJOclkyaGhhVzR1WTI0eEpUQWpCZ05WCkJBTVRISFJzYzJOaExtOXlaekV4TG1acGJtSnNiMk5yWTJoaGFXNHVZMjR3SGhjTk1UY3hNVEV4TURRMU16RXoKV2hjTk1qY3hNVEE1TURRMU16RXpXakNCZ2pFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbQpiM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHpZMjh4SHpBZEJnTlZCQW9URm05eVp6RXhMbVpwCmJtSnNiMk5yWTJoaGFXNHVZMjR4SlRBakJnTlZCQU1USEhSc2MyTmhMbTl5WnpFeExtWnBibUpzYjJOclkyaGgKYVc0dVkyNHdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBUi90TTNQQzAyYnVmQ2JvRUdEUUd3OQowdU9ZWUJZcGs0NkdFQnpsbXpmSXVGVEliR01HdjlmOG1hVXRBWTlnZVhVMy9CNkNSZHVmZGlvVzFRUk5vU3QwCm8xOHdYVEFPQmdOVkhROEJBZjhFQkFNQ0FhWXdEd1lEVlIwbEJBZ3dCZ1lFVlIwbEFEQVBCZ05WSFJNQkFmOEUKQlRBREFRSC9NQ2tHQTFVZERnUWlCQ0FDakJsL1NTN1BBQU1hZTBMMWoyb1dMQWtTSzBSR0xheko1UVkrUHVhbQp6REFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJSZHJYeXVUR2NNd3ZHVkZyQUpnRFI2RCtkMEgzdnkxTFNuYS9ICkRMVXNBUUlnZXNHMzhXYmVKZE1EdU9ONXdYMXhBSG1aMGVnM3kzVnlWMW5KSExrRWR6VT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
},
"Org12MSP": {
"name": "Org12MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXekNDQWdHZ0F3SUJBZ0lRUkF5alVaSVM2aU9jZEpVc1lvWWhLekFLQmdncWhrak9QUVFEQWpCL01Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWZNQjBHQTFVRUNoTVdiM0puTVRJdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFaU1DQUdBMVVFCkF4TVpZMkV1YjNKbk1USXVabWx1WW14dlkydGphR0ZwYmk1amJqQWVGdzB4TnpFeU1EZ3dNalUzTXpaYUZ3MHkKTnpFeU1EWXdNalUzTXpaYU1IOHhDekFKQmdOVkJBWVRBbFZUTVJNd0VRWURWUVFJRXdwRFlXeHBabTl5Ym1saApNUll3RkFZRFZRUUhFdzFUWVc0Z1JuSmhibU5wYzJOdk1SOHdIUVlEVlFRS0V4WnZjbWN4TWk1bWFXNWliRzlqCmEyTm9ZV2x1TG1OdU1TSXdJQVlEVlFRREV4bGpZUzV2Y21jeE1pNW1hVzVpYkc5amEyTm9ZV2x1TG1OdU1Ga3cKRXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVlNHF5K05Bam02TDNLaFpQQkozL085dnpEd0ZGZ0NqZQpEalJnNzB5ZVJCbjBtY1oyUWVxdVRlaHNYckVxZ1EyRlhHTHNEaVI0bmRqNW5vM2JJS0NJTzZOZk1GMHdEZ1lEClZSMFBBUUgvQkFRREFnR21NQThHQTFVZEpRUUlNQVlHQkZVZEpRQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXAKQmdOVkhRNEVJZ1Fna29oTmZsSnFxQUJ6MzRISnpUMFlqWkNhUnNKYkFySmI4WDB5Znl2QkRRd3dDZ1lJS29aSQp6ajBFQXdJRFNBQXdSUUloQUpka3R6T1JJVEJVamlkYzBGakF5eVpNRG1xSHVOOWlBTExaUmVUTWJSOERBaUE5CklTNUQ4bXRQd0NoZDNtdmUrUUJScSswdWhRN1RTWVkzTDlVRFFoQlpHdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQWRLZ0F3SUJBZ0lSQU5JNlFQUldST1lHRjJOVVlVRFdqZE13Q2dZSUtvWkl6ajBFQXdJd2Z6RUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIekFkQmdOVkJBb1RGbTl5WnpFeUxtWnBibUpzYjJOclkyaGhhVzR1WTI0eElqQWdCZ05WCkJBTVRHV05oTG05eVp6RXlMbVpwYm1Kc2IyTnJZMmhoYVc0dVkyNHdIaGNOTVRjeE1qQTRNREkxTnpNMldoY04KTWpjeE1qQTJNREkxTnpNMldqQmhNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cApZVEVXTUJRR0ExVUVCeE1OVTJGdUlFWnlZVzVqYVhOamJ6RWxNQ01HQTFVRUF3d2NRV1J0YVc1QWIzSm5NVEl1ClptbHVZbXh2WTJ0amFHRnBiaTVqYmpCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQlBRSzBXYXIKald2RmpHdFFLaWROcHlTdFVCdW5YUzUvRFE1NU8vLzB4cHppdXZoQTFQSS8xNTJzMkduQ3pxYnhSZElyenlQUwo0c2xvbzhZTkFtMlZvRzJqVFRCTE1BNEdBMVVkRHdFQi93UUVBd0lIZ0RBTUJnTlZIUk1CQWY4RUFqQUFNQ3NHCkExVWRJd1FrTUNLQUlKS0lUWDVTYXFnQWM5K0J5YzA5R0kyUW1rYkNXd0t5Vy9GOU1uOHJ3UTBNTUFvR0NDcUcKU000OUJBTUNBMGNBTUVRQ0lIbzZXRHlFbWFmRXNBSjh2bEs5dGY3M2E0WFp0N0VzME01d2x4b1JxeHdHQWlCWAp4dzFOS01XUzUxbUdyeXM2OEhLQ1l2R2M5c3Z1SThoVkhXbHRhWWFxakE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNZakNDQWdtZ0F3SUJBZ0lRVlFSZ2V6SitValNQTGJ4SWQwZUhNakFLQmdncWhrak9QUVFEQWpDQmdqRUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIekFkQmdOVkJBb1RGbTl5WnpFeUxtWnBibUpzYjJOclkyaGhhVzR1WTI0eEpUQWpCZ05WCkJBTVRISFJzYzJOaExtOXlaekV5TG1acGJtSnNiMk5yWTJoaGFXNHVZMjR3SGhjTk1UY3hNakE0TURJMU56TTIKV2hjTk1qY3hNakEyTURJMU56TTJXakNCZ2pFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbQpiM0p1YVdFeEZqQVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHpZMjh4SHpBZEJnTlZCQW9URm05eVp6RXlMbVpwCmJtSnNiMk5yWTJoaGFXNHVZMjR4SlRBakJnTlZCQU1USEhSc2MyTmhMbTl5WnpFeUxtWnBibUpzYjJOclkyaGgKYVc0dVkyNHdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVHd3TlZTVU4rQ2dHWGdhVWxDVmRJRQpZejI1MDhTTE1heDhaczU2RVhEVEMyd3oweEVidTBzN2x5bWc2cUE5OVBtWWE3emwxV1pLbDZIeUpPOHJQQThPCm8xOHdYVEFPQmdOVkhROEJBZjhFQkFNQ0FhWXdEd1lEVlIwbEJBZ3dCZ1lFVlIwbEFEQVBCZ05WSFJNQkFmOEUKQlRBREFRSC9NQ2tHQTFVZERnUWlCQ0RSeFN3TzdnNk1ZUTF3ZWxPa3VKWmR0UlZTUlFuc09pbmFtL3cxT3R3RgptREFLQmdncWhrak9QUVFEQWdOSEFEQkVBaUJSN1g3WnUrTkxSYzdCZmI2ck1yYnNIQWpQangrVkNLKzNLalpRCjRwS3c3QUlnQk1PS3FHUG5FT2FwQVlNM2FuZUl3QW9TWVU5clUxMFpTZ014MTdmTnhyVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
},
"Org1MSP": {
"name": "Org1MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNWekNDQWYyZ0F3SUJBZ0lRSFNFM1hnd096YmFPMWtsSFpiYjZ5REFLQmdncWhrak9QUVFEQWpCOU1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWVNQndHQTFVRUNoTVZiM0puTVM1bWFXNWliRzlqYTJOb1lXbHVMbU51TVNFd0h3WURWUVFECkV4aGpZUzV2Y21jeExtWnBibUpzYjJOclkyaGhhVzR1WTI0d0hoY05NVGN4TVRFeE1EUTFNekV6V2hjTk1qY3gKTVRBNU1EUTFNekV6V2pCOU1Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFVwpNQlFHQTFVRUJ4TU5VMkZ1SUVaeVlXNWphWE5qYnpFZU1Cd0dBMVVFQ2hNVmIzSm5NUzVtYVc1aWJHOWphMk5vCllXbHVMbU51TVNFd0h3WURWUVFERXhoallTNXZjbWN4TG1acGJtSnNiMk5yWTJoaGFXNHVZMjR3V1RBVEJnY3EKaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSaEw3My9Zem5BYXd1eDV2bWNDRjNEUklva0ZuQ0xvVjJkTDc5cAppK3VoMGgrRkFLOXlLTDIzMGtiK0xwZ1JrMXNOQktnditrUkN2Snh5OWZVL2UxVmFvMTh3WFRBT0JnTlZIUThCCkFmOEVCQU1DQWFZd0R3WURWUjBsQkFnd0JnWUVWUjBsQURBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUNrR0ExVWQKRGdRaUJDQnRxbWM5SG5hMWZvdXcxemwwNjJLSGFSak12Ny9yNkdsWEYwcmdLMDVLaVRBS0JnZ3Foa2pPUFFRRApBZ05JQURCRkFpRUF5VUxOUjRWTk1sSUw3cEZaYWIvdWFucG1Fa2VBQnA3d3lEbk9JUjYwL1ZnQ0lGdVhOSWRQClo2V3ZQT2tac1Y4NDVJVDdMaGp5WDFUSld4MFlVVzBqWXlDSgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLRENDQWM2Z0F3SUJBZ0lRQ2tkelRBUkZSNDFXUEtKSGo3cmVxREFLQmdncWhrak9QUVFEQWpCOU1Rc3cKQ1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ4TU5VMkZ1SUVaeQpZVzVqYVhOamJ6RWVNQndHQTFVRUNoTVZiM0puTVM1bWFXNWliRzlqYTJOb1lXbHVMbU51TVNFd0h3WURWUVFECkV4aGpZUzV2Y21jeExtWnBibUpzYjJOclkyaGhhVzR1WTI0d0hoY05NVGN4TVRFeE1EUTFNekV6V2hjTk1qY3gKTVRBNU1EUTFNekV6V2pCZ01Rc3dDUVlEVlFRR0V3SlZVekVUTUJFR0ExVUVDQk1LUTJGc2FXWnZjbTVwWVRFVwpNQlFHQTFVRUJ4TU5VMkZ1SUVaeVlXNWphWE5qYnpFa01DSUdBMVVFQXd3YlFXUnRhVzVBYjNKbk1TNW1hVzVpCmJHOWphMk5vWVdsdUxtTnVNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVCNHZ3ZTFOOFQ1MUQKL0F2OHd0ejUxNEg3WHZZSEVIaGhPY1NnZkpzckNCT3FlaVFXTS9YVklWVWNwL2dtQ25UZytHdHdwVmN3d0V5SApNaFJMeFFoWktLTk5NRXN3RGdZRFZSMFBBUUgvQkFRREFnZUFNQXdHQTFVZEV3RUIvd1FDTUFBd0t3WURWUjBqCkJDUXdJb0FnYmFwblBSNTJ0WDZMc05jNWRPdGloMmtZekwrLzYraHBWeGRLNEN0T1Nva3dDZ1lJS29aSXpqMEUKQXdJRFNBQXdSUUloQUtRdnphbVBBbWVBd2hhUy9FcldOUWhQMDFFdXZzeEhYVHNUVWhMZ3RZWmRBaUJUVmZoaQowOUZ3L1FVdU9WdGlWL25uSzN6YnExVWF4V1ZxdU16alJ5QXR5UT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYekNDQWdXZ0F3SUJBZ0lRZWVPVmtGYUk0M2NQQXVYSUVIWVpNakFLQmdncWhrak9QUVFEQWpDQmdERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhIakFjQmdOVkJBb1RGVzl5WnpFdVptbHVZbXh2WTJ0amFHRnBiaTVqYmpFa01DSUdBMVVFCkF4TWJkR3h6WTJFdWIzSm5NUzVtYVc1aWJHOWphMk5vWVdsdUxtTnVNQjRYRFRFM01URXhNVEEwTlRNeE0xb1gKRFRJM01URXdPVEEwTlRNeE0xb3dnWUF4Q3pBSkJnTlZCQVlUQWxWVE1STXdFUVlEVlFRSUV3cERZV3hwWm05eQpibWxoTVJZd0ZBWURWUVFIRXcxVFlXNGdSbkpoYm1OcGMyTnZNUjR3SEFZRFZRUUtFeFZ2Y21jeExtWnBibUpzCmIyTnJZMmhoYVc0dVkyNHhKREFpQmdOVkJBTVRHM1JzYzJOaExtOXlaekV1Wm1sdVlteHZZMnRqYUdGcGJpNWoKYmpCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkJ1OW02YW1BMUJSd0U1OWZ2RmdMUGI5TWRmRwpwK3FhQUVNdk9sUE9FK25tNzJYZVFMemxNTmlJWjl1TVhlUXJadDFGcEYxcTErKzVVNVB2R2xDaGxFV2pYekJkCk1BNEdBMVVkRHdFQi93UUVBd0lCcGpBUEJnTlZIU1VFQ0RBR0JnUlZIU1VBTUE4R0ExVWRFd0VCL3dRRk1BTUIKQWY4d0tRWURWUjBPQkNJRUlFa2FpSXFJZDVoWG1PRmxOM3JnTXJjZG8wUWZGOWVKMEpTTE85UkM5RkZMTUFvRwpDQ3FHU000OUJBTUNBMGdBTUVVQ0lRQ1lJekJuVnJ1a05WK1lRV3dmV3dITGI2Qm81YWFXU3NaRlVib3F3UUd5ClRBSWdLYWYwbHdNWGJPd2p2T1czMjU1L0ZOcGg4RkJ2blFGaHpIRHJsc0tnbWM0PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="
]
},
"Org22MSP": {
"name": "Org22MSP",
"root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNQekNDQWVhZ0F3SUJBZ0lSQUtWODZxb05Vc0tLMS9MLzVQMU05MWd3Q2dZSUtvWkl6ajBFQXdJd2NURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHREFXQmdOVkJBb1REMk5uWW1Ob2FXNWhMbU52YlM1amJqRWJNQmtHQTFVRUF4TVNZMkV1ClkyZGlZMmhwYm1FdVkyOXRMbU51TUI0WERURTVNRFV4TXpBNU1ERXdNMW9YRFRJNU1EVXhNREE1TURFd00xb3cKY1RFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4R0RBV0JnTlZCQW9URDJOblltTm9hVzVoTG1OdmJTNWpiakViTUJrR0ExVUVBeE1TClkyRXVZMmRpWTJocGJtRXVZMjl0TG1OdU1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRWFKRGQKaTB5Rk1tam1HOHpGOHY1Zm9yQ2M4RkhXYVFiQ0JITFpNVmxTZmFvYThCNlZtUzNnaUF5YnRrdytzVXZINnhLVQpOYVErNEZWS1VwYm1pQWJZc0tOZk1GMHdEZ1lEVlIwUEFRSC9CQVFEQWdHbU1BOEdBMVVkSlFRSU1BWUdCRlVkCkpRQXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QXBCZ05WSFE0RUlnUWd3dHA2SEZVTjhKeklNTEFrczVQOW5VdFMKWlUwdWVNKytyWUNNYUtXWXpVd3dDZ1lJS29aSXpqMEVBd0lEUndBd1JBSWdhUTB1UzBPbmdaS1VZSnhTZ0tzYgp5K09BNUU0SFdqT093Tmg3enVYY2UyQUNJQkdEMGJlbU1vQWdqMXdaMXl1WFpoTU5OZFh2RmVlaU5ZU1Z2ak14Cm14a1QKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
],
"admins": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNGakNDQWIyZ0F3SUJBZ0lSQUtMSnY0Nmx5aEJkakdMV2MzbU1WQWd3Q2dZSUtvWkl6ajBFQXdJd2NURUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHREFXQmdOVkJBb1REMk5uWW1Ob2FXNWhMbU52YlM1amJqRWJNQmtHQTFVRUF4TVNZMkV1ClkyZGlZMmhwYm1FdVkyOXRMbU51TUI0WERURTVNRFV4TXpBNU1ERXdNMW9YRFRJNU1EVXhNREE1TURFd00xb3cKV2pFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBZ1RDa05oYkdsbWIzSnVhV0V4RmpBVUJnTlZCQWNURFZOaApiaUJHY21GdVkybHpZMjh4SGpBY0JnTlZCQU1NRlVGa2JXbHVRR05uWW1Ob2FXNWhMbU52YlM1amJqQlpNQk1HCkJ5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCT09WVm0zbzhJTlBiWCtrOXpPZnNhVFhuOEcrSnByZ3lneE4KdjhobHVWMkRBbGlGWS9FVGk2aW10ZDBHakdvNWY4dnVaa3NrUmwvUnBUdVd4UERNVHJXalRUQkxNQTRHQTFVZApEd0VCL3dRRUF3SUhnREFNQmdOVkhSTUJBZjhFQWpBQU1Dc0dBMVVkSXdRa01DS0FJTUxhZWh4VkRmQ2N5REN3CkpMT1QvWjFMVW1WTkxualB2cTJBakdpbG1NMU1NQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJSHI4aWpxRytQZXoKQmNKQWZ6NXlsU1J1MUo2Nnl1ZkZldWlMREE2MHQ4RS9BaUJHSlM1K25wRzkvalFqcFcxZzdKMTA3cFhSZkoxMApTU1prOTlmM2NqVGlnZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
],
"crypto_config": {
"signature_hash_family": "SHA2",
"identity_identifier_hash_function": "SHA256"
},
"tls_root_certs": [
"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNSakNDQWV5Z0F3SUJBZ0lSQU5meGxrM3k3UTV2V1hBdUltNWFQbVF3Q2dZSUtvWkl6ajBFQXdJd2RERUwKTUFrR0ExVUVCaE1DVlZNeEV6QVJCZ05WQkFnVENrTmhiR2xtYjNKdWFXRXhGakFVQmdOVkJBY1REVk5oYmlCRwpjbUZ1WTJselkyOHhHREFXQmdOVkJBb1REMk5uWW1Ob2FXNWhMbU52YlM1amJqRWVNQndHQTFVRUF4TVZkR3h6ClkyRXVZMmRpWTJocGJtRXVZMjl0TG1OdU1CNFhEVEU1TURVeE16QTVNREV3TTFvWERUSTVNRFV4TURBNU1ERXcKTTFvd2RERUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQWdUQ2tOaGJHbG1iM0p1YVdFeEZqQVVCZ05WQkFjVApEVk5oYmlCR2NtRnVZMmx6WTI4eEdEQVdCZ05WQkFvVEQyTm5ZbU5vYVc1aExtTnZiUzVqYmpFZU1Cd0dBMVVFCkF4TVZkR3h6WTJFdVkyZGlZMmhwYm1FdVkyOXRMbU51TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0QKUWdBRTMxcC9VeUFqYlRDZ1ZQNmhFdG0xUittbXllOGdWYWtRUE9HeFBHeDE0YjlZbk5jUFFHaC9vNU00VFg4SwozTllFdjdiOTNMSUoyNmR5N084MkZhSU1OS05mTUYwd0RnWURWUjBQQVFIL0JBUURBZ0dtTUE4R0ExVWRKUVFJCk1BWUdCRlVkSlFBd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBcEJnTlZIUTRFSWdRZ3ViN1l4UldnK0h4UkxLK2gKQlhBaGIvZzhXTThpME83NmIxTm5NaTZSQjNZd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFOSzA1TXNDQ3BkZwovUXdvMk1jWHVxUW5EZkZqMUErYzhGK1huUE1BVmc5U0FpQm9tM3ZyMTMzdTNKV1NrQklCUlFzblRpMUNiVnY4ClAvb1BMVGEyMERmcEdnPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="
]
}
},
"orderers": {
"Orderer11MSP": {
"endpoint": [
{
"host": "orderer0.ord1.finblockchain.cn",
"port": 7001
},
{
"host": "orderer1.ord1.finblockchain.cn",
"port": 7002
},
{
"host": "orderer0.ord11.finblockchain.cn",
"port": 7050
},
{
"host": "orderer1.ord11.finblockchain.cn",
"port": 7050
},
{
"host": "orderer0.ord12.finblockchain.cn",
"port": 7050
},
{
"host": "orderer1.ord12.finblockchain.cn",
"port": 7050
}
]
},
"Orderer12MSP": {
"endpoint": [
{
"host": "orderer0.ord1.finblockchain.cn",
"port": 7001
},
{
"host": "orderer1.ord1.finblockchain.cn",
"port": 7002
},
{
"host": "orderer0.ord11.finblockchain.cn",
"port": 7050
},
{
"host": "orderer1.ord11.finblockchain.cn",
"port": 7050
},
{
"host": "orderer0.ord12.finblockchain.cn",
"port": 7050
},
{
"host": "orderer1.ord12.finblockchain.cn",
"port": 7050
}
]
},
"Orderer1MSP": {
"endpoint": [
{
"host": "orderer0.ord1.finblockchain.cn",
"port": 7001
},
{
"host": "orderer1.ord1.finblockchain.cn",
"port": 7002
},
{
"host": "orderer0.ord11.finblockchain.cn",
"port": 7050
},
{
"host": "orderer1.ord11.finblockchain.cn",
"port": 7050
},
{
"host": "orderer0.ord12.finblockchain.cn",
"port": 7050
},
{
"host": "orderer1.ord12.finblockchain.cn",
"port": 7050
}
]
}
}
}

It’s important to note that the certificates here are base64 encoded, and thus should decoded in a manner similar to the following:

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
root@4ad40c1562dd:/opt/gopath/src/github.com/hyperledger/fabric/peer/artifacts# ./discover --configFile config.yaml config --channel channelfft --server peer1.org1.finblockchain.cn:7051 | jq .msps.Orderer1MSP.root_certs[0] |sed "s/\"//g"|base64 --decode |openssl x509 -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
95:7d:c0:f0:f1:de:a7:fc:6b:b1:31:8a:28:3e:5d:82
Signature Algorithm: ecdsa-with-SHA256
Issuer: C=US, ST=California, L=San Francisco, O=ord1.finblockchain.cn, CN=ca.ord1.finblockchain.cn
Validity
Not Before: Nov 11 04:53:13 2017 GMT
Not After : Nov 9 04:53:13 2027 GMT
Subject: C=US, ST=California, L=San Francisco, O=ord1.finblockchain.cn, CN=ca.ord1.finblockchain.cn
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:c1:f4:71:de:b6:52:2c:77:a1:d7:fd:33:5e:d1:
13:6b:d9:62:ae:db:8f:6c:7e:db:36:d1:be:df:02:
36:d7:11:e4:92:32:25:14:a2:ae:9d:44:8c:95:25:
9e:8a:52:6e:fb:a1:ee:2f:ac:f2:df:bc:7a:1b:15:
41:ca:85:22:7f
ASN1 OID: prime256v1
NIST CURVE: P-256
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Certificate Sign, CRL Sign
X509v3 Extended Key Usage:
Any Extended Key Usage
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Subject Key Identifier:
18:AC:DD:E3:19:70:83:69:F1:B4:7C:5E:B5:99:19:19:81:30:E5:9D:ED:26:12:40:50:34:4B:10:17:E7:FA:C2
Signature Algorithm: ecdsa-with-SHA256
30:44:02:20:2c:b0:28:89:46:66:ce:f9:83:0a:88:2a:f6:96:
30:0d:91:cb:92:23:ba:db:27:5c:1b:90:84:ed:e4:1f:64:30:
02:20:40:4e:14:06:f2:a1:cc:b7:6d:4d:44:0f:7d:ba:c5:2d:
d1:00:7c:da:d6:d8:b1:9c:bd:46:d9:ba:bc:ad:0d:f3

Endorsers query

1
discover --configFile config.yaml endorsers --channel channelfft --server peer1.org1.finblockchain.cn:7051 --chaincode fft

Below is the output of an endorsers query for chaincode fft when the endorsement policy is OR('Org1.peer', 'Org2.peer',...):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[
{
"Chaincode": "fft",
"EndorsersByGroups": {
"G31": [
{
"MSPID": "Org1MSP",
"LedgerHeight": 10586,
"Endpoint": "peer1.org1.finblockchain.cn:7051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICKDCCAc+gAwIBAgIRAIpwEdPGilRsUtB6wi5inMQwCgYIKoZIzj0EAwIwfTEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xHjAcBgNVBAoTFW9yZzEuZmluYmxvY2tjaGFpbi5jbjEhMB8GA1UE\nAxMYY2Eub3JnMS5maW5ibG9ja2NoYWluLmNuMB4XDTE3MTExMTA0NTMxM1oXDTI3\nMTEwOTA0NTMxM1owYDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx\nFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xJDAiBgNVBAMTG3BlZXIxLm9yZzEuZmlu\nYmxvY2tjaGFpbi5jbjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNizeATUZb0Z\nKsTP12eQfrFPE7GzzwgqpVSrp4Nvy1nwaG108GQ37F/QX3WDap53BoqB0f5oT221\nMsqom2UF6bCjTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIG2qZz0edrV+i7DXOXTrYodpGMy/v+voaVcXSuArTkqJMAoGCCqGSM49\nBAMCA0cAMEQCIGadPQTPriIHRsHETArs36OBZwfwgKDSPfLxxzAVbNt+AiAs5vnQ\n3tP9bbVmLCMHgLEZJiLf5cn50x5huC4NymNV6w==\n-----END CERTIFICATE-----\n"
}
]
},
"Layouts": [
{
"quantities_by_group": {
"G31": 1
}
}
]
}
]
1
root@6673a941ffd5:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto# /opt/bin/discover --configFile discoverconfig.yaml endorsers --channel mychannel  --server peer0.org1.example.com:7051 --chaincode mycc

Below is the output of an endorsers query for chaincode mycc when the endorsement policy is AND('Org1.peer', 'Org2.peer'):

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
[
{
"Chaincode": "mycc",
"EndorsersByGroups": {
"G0": [
{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org1.example.com:7051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICKTCCAc+gAwIBAgIRALDIidAvFqocYnZt5hdAeRMwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwMzExMDkxNDAwWhcNMzAwMzA5MDkxNDAw\nWjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEqdiEuoEOXy\nwWQrQZcSgnkfT3uCun9BcIvKW0DUnNJDs4PQOV2Iu3NyMUCL78nmAF3Nhag54hZQ\npagAj1TKBC+jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIMdNxOMdQqEkx5wxkbcrf3JeXo6acV9gJCHfXJphc/TtMAoGCCqGSM49\nBAMCA0gAMEUCIQCmdmAHNccAdXEDw8C/lV38dBv9G2gAiesRFjbApOLqKwIgFcdB\nQDotyW+eRXxltEaeghx0+yR8ySzxuY8uncpeAgo=\n-----END CERTIFICATE-----\n"
}
],
"G1": [
{
"MSPID": "Org2MSP",
"LedgerHeight": 12,
"Endpoint": "peer1.org2.example.com:10051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQEmktqnZ/zc3HJxBZfOanHTAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8EGkRYAk0/uW\nBHUfxhI0GosdtTCSKaBIQxPWn4so7ONZxsf2s6Yst1SjOfiN8aG520oSvdCjtCvT\nPozgvQrnTqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgeDjPXKB3pohEI5nhdMtBEZDCEJBfGpQfiROlOBl0TngCIFX4D6E0\nphnDqHSRVPAI6Xt+mkJvDOq/P5qMIfy0rRns\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org2MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org2.example.com:9051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQV9z6OE+mj/L1ez8wq6gcvjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs3Zh2dODw9Ii\n731lgxDfzKDlfam9dhRHeK6eKTJxwM6C516apuBSqbdPFu9Gr1exM/UgNb79z1xS\nKTGwfc4wwqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgfC9075LAovdOm4mvUvZlUTQvZFiY362fBeIn8fGwjG0CID+Zb6Fn\n4hJkQyo3lHSy6tkH8yaXYGSffrYjG1AovwGt\n-----END CERTIFICATE-----\n"
}
]
},
"Layouts": [
{
"quantities_by_group": {
"G0": 1,
"G1": 1
}
}
]
}
]
1
discover --configFile conf.yaml endorsers --channel mychannel  --server peer0.org1.example.com:7051 --chaincode vendor

Below is the output of an endorsers query for chaincode vendor:

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
42
43
44
45
46
47
[
{
"Chaincode": "vendor",
"EndorsersByGroups": {
"G0": [
{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org1.example.com:7051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICKTCCAc+gAwIBAgIRALDIidAvFqocYnZt5hdAeRMwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwMzExMDkxNDAwWhcNMzAwMzA5MDkxNDAw\nWjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEqdiEuoEOXy\nwWQrQZcSgnkfT3uCun9BcIvKW0DUnNJDs4PQOV2Iu3NyMUCL78nmAF3Nhag54hZQ\npagAj1TKBC+jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIMdNxOMdQqEkx5wxkbcrf3JeXo6acV9gJCHfXJphc/TtMAoGCCqGSM49\nBAMCA0gAMEUCIQCmdmAHNccAdXEDw8C/lV38dBv9G2gAiesRFjbApOLqKwIgFcdB\nQDotyW+eRXxltEaeghx0+yR8ySzxuY8uncpeAgo=\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer1.org1.example.com:8051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQJ0DXZSYmZfm26oFKtBoDdjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcx\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnIatOWiCBfbc\nLUr4JlkdctBmZJ41YGca9kbz+CNBJRPx3CjH1pTJADfaojsZfpMWgTdXcaTQF8eR\nYbzIde3fBqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAgx03E4x1CoSTHnDGRtyt/cl5ejppxX2AkId9cmmFz9O0wCgYIKoZIzj0E\nAwIDRwAwRAIgYtxo1gBHQW0dVvn6jc4tOiq3Nyz/aOXFf6VibeCpWKoCIDKYk/92\nbFk/jE3yHeQHKSxOC1eNk0ak2gudrReKVlwJ\n-----END CERTIFICATE-----\n"
}
],
"G1": [
{
"MSPID": "Org2MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org2.example.com:9051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQV9z6OE+mj/L1ez8wq6gcvjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs3Zh2dODw9Ii\n731lgxDfzKDlfam9dhRHeK6eKTJxwM6C516apuBSqbdPFu9Gr1exM/UgNb79z1xS\nKTGwfc4wwqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgfC9075LAovdOm4mvUvZlUTQvZFiY362fBeIn8fGwjG0CID+Zb6Fn\n4hJkQyo3lHSy6tkH8yaXYGSffrYjG1AovwGt\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org2MSP",
"LedgerHeight": 12,
"Endpoint": "peer1.org2.example.com:10051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQEmktqnZ/zc3HJxBZfOanHTAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8EGkRYAk0/uW\nBHUfxhI0GosdtTCSKaBIQxPWn4so7ONZxsf2s6Yst1SjOfiN8aG520oSvdCjtCvT\nPozgvQrnTqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgeDjPXKB3pohEI5nhdMtBEZDCEJBfGpQfiROlOBl0TngCIFX4D6E0\nphnDqHSRVPAI6Xt+mkJvDOq/P5qMIfy0rRns\n-----END CERTIFICATE-----\n"
}
]
},
"Layouts": [
{
"quantities_by_group": {
"G0": 1
}
},
{
"quantities_by_group": {
"G1": 1
}
}
]
}
]
1
root@6673a941ffd5:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto# /opt/bin/discover --configFile discoverconfig.yaml endorsers --channel mychannel  --server peer0.org1.example.com:7051 --chaincode vendor --collection=vendor:vendor,vendorPrice

Below is the output of an endorsers query with private data collection:

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
[
{
"Chaincode": "vendor",
"EndorsersByGroups": {
"G0": [
{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer1.org1.example.com:8051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQJ0DXZSYmZfm26oFKtBoDdjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcx\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnIatOWiCBfbc\nLUr4JlkdctBmZJ41YGca9kbz+CNBJRPx3CjH1pTJADfaojsZfpMWgTdXcaTQF8eR\nYbzIde3fBqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAgx03E4x1CoSTHnDGRtyt/cl5ejppxX2AkId9cmmFz9O0wCgYIKoZIzj0E\nAwIDRwAwRAIgYtxo1gBHQW0dVvn6jc4tOiq3Nyz/aOXFf6VibeCpWKoCIDKYk/92\nbFk/jE3yHeQHKSxOC1eNk0ak2gudrReKVlwJ\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org1MSP",
"LedgerHeight": 12,
"Endpoint": "peer0.org1.example.com:7051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICKTCCAc+gAwIBAgIRALDIidAvFqocYnZt5hdAeRMwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwMzExMDkxNDAwWhcNMzAwMzA5MDkxNDAw\nWjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEqdiEuoEOXy\nwWQrQZcSgnkfT3uCun9BcIvKW0DUnNJDs4PQOV2Iu3NyMUCL78nmAF3Nhag54hZQ\npagAj1TKBC+jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIMdNxOMdQqEkx5wxkbcrf3JeXo6acV9gJCHfXJphc/TtMAoGCCqGSM49\nBAMCA0gAMEUCIQCmdmAHNccAdXEDw8C/lV38dBv9G2gAiesRFjbApOLqKwIgFcdB\nQDotyW+eRXxltEaeghx0+yR8ySzxuY8uncpeAgo=\n-----END CERTIFICATE-----\n"
}
]
},
"Layouts": [
{
"quantities_by_group": {
"G0": 1
}
}
]
}
]

Not using a configuration file

1
root@6673a941ffd5:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto# /opt/bin/discover --peerTLSCA peerOrganizations/org1.example.com/users/Admin\@org1.example.com/tls/ca.crt --userKey peerOrganizations/org1.example.com/users/Admin\@org1.example.com/msp/keystore/d79db82aa64380f532b20498339998bb6f7a375d71a3eca3dd53c1403fe0755d_sk --userCert peerOrganizations/org1.example.com/users/Admin\@org1.example.com/msp/signcerts/Admin\@org1.example.com-cert.pem peers --server peer0.org1.example.com:7051 --MSP Org1MSP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[
{
"MSPID": "Org2MSP",
"Endpoint": "peer0.org2.example.com:9051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQV9z6OE+mj/L1ez8wq6gcvjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMC5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs3Zh2dODw9Ii\n731lgxDfzKDlfam9dhRHeK6eKTJxwM6C516apuBSqbdPFu9Gr1exM/UgNb79z1xS\nKTGwfc4wwqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgfC9075LAovdOm4mvUvZlUTQvZFiY362fBeIn8fGwjG0CID+Zb6Fn\n4hJkQyo3lHSy6tkH8yaXYGSffrYjG1AovwGt\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org2MSP",
"Endpoint": "peer1.org2.example.com:10051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQEmktqnZ/zc3HJxBZfOanHTAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMi5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcy\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8EGkRYAk0/uW\nBHUfxhI0GosdtTCSKaBIQxPWn4so7ONZxsf2s6Yst1SjOfiN8aG520oSvdCjtCvT\nPozgvQrnTqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAg0lG+5sqhH6gdozNXjugzxvFbNJm9VxYDLohgnQC/zGwwCgYIKoZIzj0E\nAwIDRwAwRAIgeDjPXKB3pohEI5nhdMtBEZDCEJBfGpQfiROlOBl0TngCIFX4D6E0\nphnDqHSRVPAI6Xt+mkJvDOq/P5qMIfy0rRns\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org1MSP",
"Endpoint": "peer0.org1.example.com:7051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICKTCCAc+gAwIBAgIRALDIidAvFqocYnZt5hdAeRMwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMjAwMzExMDkxNDAwWhcNMzAwMzA5MDkxNDAw\nWjBqMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzENMAsGA1UECxMEcGVlcjEfMB0GA1UEAxMWcGVlcjAub3Jn\nMS5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEqdiEuoEOXy\nwWQrQZcSgnkfT3uCun9BcIvKW0DUnNJDs4PQOV2Iu3NyMUCL78nmAF3Nhag54hZQ\npagAj1TKBC+jTTBLMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1Ud\nIwQkMCKAIMdNxOMdQqEkx5wxkbcrf3JeXo6acV9gJCHfXJphc/TtMAoGCCqGSM49\nBAMCA0gAMEUCIQCmdmAHNccAdXEDw8C/lV38dBv9G2gAiesRFjbApOLqKwIgFcdB\nQDotyW+eRXxltEaeghx0+yR8ySzxuY8uncpeAgo=\n-----END CERTIFICATE-----\n"
},
{
"MSPID": "Org1MSP",
"Endpoint": "peer1.org1.example.com:8051",
"Identity": "-----BEGIN CERTIFICATE-----\nMIICJzCCAc6gAwIBAgIQJ0DXZSYmZfm26oFKtBoDdjAKBggqhkjOPQQDAjBzMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu\nb3JnMS5leGFtcGxlLmNvbTAeFw0yMDAzMTEwOTE0MDBaFw0zMDAzMDkwOTE0MDBa\nMGoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T\nYW4gRnJhbmNpc2NvMQ0wCwYDVQQLEwRwZWVyMR8wHQYDVQQDExZwZWVyMS5vcmcx\nLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnIatOWiCBfbc\nLUr4JlkdctBmZJ41YGca9kbz+CNBJRPx3CjH1pTJADfaojsZfpMWgTdXcaTQF8eR\nYbzIde3fBqNNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0j\nBCQwIoAgx03E4x1CoSTHnDGRtyt/cl5ejppxX2AkId9cmmFz9O0wCgYIKoZIzj0E\nAwIDRwAwRAIgYtxo1gBHQW0dVvn6jc4tOiq3Nyz/aOXFf6VibeCpWKoCIDKYk/92\nbFk/jE3yHeQHKSxOC1eNk0ak2gudrReKVlwJ\n-----END CERTIFICATE-----\n"
}
]

It’s different from fabric-sample that is not specify --tlsCert and --tlsKey.

坚持原创技术分享,您的支持将鼓励我继续创作!