Skip to content

Commit d2943fc

Browse files
author
Dongming
committed
[FAB-3546 PTE supports multi-orderers]
PTE supports multi orderer based on each organization. Each organization can specify an orderer in the config json file. Then PTE will send all transactions targeting any peers in that organization to the specified orderer. Change-Id: Ie758596452ac0a798a43d9018c70fbd6241db19a Signed-off-by: Dongming <dming@us.ibm.com>
1 parent 69d40c3 commit d2943fc

File tree

6 files changed

+199
-110
lines changed

6 files changed

+199
-110
lines changed

test/tools/PTE/README.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -429,23 +429,35 @@ where:
429429
The service credentials contain the information of the network and are stored in the `SCFiles` directory. The following is a sample of the service credentials json file:
430430
```
431431
{
432-
"test-network": {
433-
"orderer": {
434-
"name": "OrdererMSP",
435-
"mspid": "OrdererMSP",
436-
"mspPath": "./crypto-config",
437-
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
438-
"comName": "example.com",
439-
"url": "grpcs://localhost:5005",
440-
"server-hostname": "orderer0.example.com",
441-
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem"
432+
"orderer": {
433+
"orderer0": {
434+
"name": "OrdererMSP",
435+
"mspid": "OrdererMSP",
436+
"mspPath": "./crypto-config",
437+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
438+
"comName": "example.com",
439+
"url": "grpcs://localhost:7050",
440+
"server-hostname": "orderer0.example.com",
441+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem"
442+
},
443+
"orderer1": {
444+
"name": "OrdererMSP",
445+
"mspid": "OrdererMSP",
446+
"mspPath": "./crypto-config",
447+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
448+
"comName": "example.com",
449+
"url": "grpcs://localhost:8050",
450+
"server-hostname": "orderer1.example.com",
451+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem"
452+
}
442453
},
443454
"org1": {
444455
"name": "Org1MSP",
445456
"mspid": "Org1MSP",
446457
"mspPath": "./crypto-config",
447458
"adminPath": "./crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp",
448459
"comName": "example.com",
460+
"ordererID": "orderer0",
449461
"ca": {
450462
"url":"https://localhost:7054",
451463
"name": "ca-org1"
@@ -471,6 +483,7 @@ The service credentials contain the information of the network and are stored in
471483
"mspPath": "./crypto-config",
472484
"adminPath": "./crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp",
473485
"comName": "example.com",
486+
"ordererID": "orderer1",
474487
"ca": {
475488
"url":"https://localhost:8054",
476489
"name": "ca-org2"
@@ -494,6 +507,8 @@ The service credentials contain the information of the network and are stored in
494507
}
495508
```
496509
510+
## Sending transactions to multiple orderers
511+
PTE supports multi orderers by specifying an orderer to each organization using `ordererID` in the Service credentials json file. Then PTE will direct all transactions target the peers in that organization to the specified orderer.
497512
498513
## Creating a local Fabric network
499514
- If you do not yet have the Fabric docker images in your local docker registry, please either build them from Fabric source or download them from dockerhub.

test/tools/PTE/SCFiles/config-chan1-TLS.json

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,71 @@
11
{
22
"test-network": {
33
"orderer": {
4-
"name": "OrdererOrg1",
5-
"mspid": "OrdererOrg1",
6-
"mspPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config",
7-
"adminPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
8-
"comName": "example.com",
9-
"url": "grpcs://10.120.223.35:5005",
10-
"server-hostname": "example.com",
11-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem"
4+
"orderer1": {
5+
"name": "OrdererMSP",
6+
"mspid": "OrdererMSP",
7+
"mspPath": "./crypto-config",
8+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
9+
"comName": "example.com",
10+
"url": "grpcs://localhost:7050",
11+
"server-hostname": "orderer0.example.com",
12+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem"
13+
},
14+
"orderer2": {
15+
"name": "OrdererMSP",
16+
"mspid": "OrdererMSP",
17+
"mspPath": "./crypto-config",
18+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
19+
"comName": "example.com",
20+
"url": "grpcs://localhost:8050",
21+
"server-hostname": "orderer1.example.com",
22+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem"
23+
}
1224
},
1325
"org1": {
14-
"name": "PeerOrg1",
15-
"mspid": "PeerOrg1",
16-
"mspPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config",
17-
"adminPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp",
26+
"name": "Org1MSP",
27+
"mspid": "Org1MSP",
28+
"mspPath": "./crypto-config",
29+
"adminPath": "./crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp",
1830
"comName": "example.com",
31+
"ordererID": "orderer1",
1932
"ca": {
20-
"url":"https://10.120.223.35:7054",
33+
"url":"https://localhost:7054",
2134
"name": "ca-org1"
2235
},
2336
"username": "admin",
2437
"secret": "adminpw",
2538
"peer1": {
26-
"requests": "grpcs://10.120.223.35:7061",
27-
"events": "grpcs://10.120.223.35:6051",
39+
"requests": "grpcs://localhost:7051",
40+
"events": "grpcs://localhost:7053",
2841
"server-hostname": "peer0.org1.example.com",
29-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
30-
},
31-
"peer2": {
32-
"requests": "grpcs://10.120.223.35:7062",
33-
"events": "grpcs://10.120.223.35:6052",
34-
"server-hostname": "peer1.org1.example.com",
35-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
42+
"tls_cacerts": "./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
3643
}
3744
},
3845
"org2": {
39-
"name": "PeerOrg2",
40-
"mspid": "PeerOrg2",
41-
"mspPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config",
42-
"adminPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp",
46+
"name": "Org2MSP",
47+
"mspid": "Org2MSP",
48+
"mspPath": "./crypto-config",
49+
"adminPath": "./crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp",
4350
"comName": "example.com",
51+
"ordererID": "orderer2",
4452
"ca": {
45-
"url":"https://10.120.223.35:7055",
53+
"url":"https://localhost:8054",
4654
"name": "ca-org2"
4755
},
4856
"username": "admin",
4957
"secret": "adminpw",
5058
"peer1": {
51-
"requests": "grpcs://10.120.223.35:7063",
52-
"events": "grpcs://10.120.223.35:6053",
59+
"requests": "grpcs://localhost:9051",
60+
"events": "grpcs://localhost:9053",
5361
"server-hostname": "peer0.org2.example.com",
54-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
62+
"tls_cacerts": "./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
5563
},
5664
"peer2": {
57-
"requests": "grpcs://10.120.223.35:7064",
58-
"events": "grpcs://10.120.223.35:6054",
65+
"requests": "grpcs://localhost:10051",
66+
"events": "grpcs://localhost:10053",
5967
"server-hostname": "peer1.org2.example.com",
60-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
68+
"tls_cacerts": "./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
6169
}
6270
}
6371
}

test/tools/PTE/SCFiles/config-chan2-TLS.json

Lines changed: 66 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,97 @@
11
{
22
"test-network": {
33
"orderer": {
4-
"name": "OrdererOrg1",
5-
"mspid": "OrdererOrg1",
6-
"mspPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config",
7-
"adminPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
8-
"comName": "example.com",
9-
"url": "grpcs://10.120.223.35:5005",
10-
"server-hostname": "example.com",
11-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem"
4+
"orderer0": {
5+
"name": "OrdererMSP",
6+
"mspid": "OrdererMSP",
7+
"mspPath": "./crypto-config",
8+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
9+
"comName": "example.com",
10+
"url": "grpcs://localhost:8050",
11+
"server-hostname": "orderer0.example.com",
12+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/cacerts/ca.example.com-cert.pem"
13+
},
14+
"orderer1": {
15+
"name": "OrdererMSP",
16+
"mspid": "OrdererMSP",
17+
"mspPath": "./crypto-config",
18+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
19+
"comName": "example.com",
20+
"url": "grpcs://localhost:8050",
21+
"server-hostname": "orderer1.example.com",
22+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp/cacerts/ca.example.com-cert.pem"
23+
},
24+
"orderer2": {
25+
"name": "OrdererMSP",
26+
"mspid": "OrdererMSP",
27+
"mspPath": "./crypto-config",
28+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
29+
"comName": "example.com",
30+
"url": "grpcs://localhost:9050",
31+
"server-hostname": "orderer2.example.com",
32+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/msp/cacerts/ca.example.com-cert.pem"
33+
},
34+
"orderer3": {
35+
"name": "OrdererMSP",
36+
"mspid": "OrdererMSP",
37+
"mspPath": "./crypto-config",
38+
"adminPath": "./crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp",
39+
"comName": "example.com",
40+
"url": "grpcs://localhost:10050",
41+
"server-hostname": "orderer3.example.com",
42+
"tls_cacerts": "./crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/msp/cacerts/ca.example.com-cert.pem"
43+
}
1244
},
1345
"org1": {
14-
"name": "PeerOrg1",
15-
"mspid": "PeerOrg1",
16-
"mspPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config",
17-
"adminPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp",
46+
"name": "Org1MSP",
47+
"mspid": "Org1MSP",
48+
"mspPath": "./crypto-config",
49+
"adminPath": "./crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp",
1850
"comName": "example.com",
51+
"ordererID": "orderer2",
1952
"ca": {
20-
"url":"https://10.120.223.35:7054",
53+
"url":"https://localhost:7054",
2154
"name": "ca-org1"
2255
},
2356
"username": "admin",
2457
"secret": "adminpw",
2558
"peer1": {
26-
"requests": "grpcs://10.120.223.35:7061",
27-
"events": "grpcs://10.120.223.35:6051",
59+
"requests": "grpcs://localhost:7051",
60+
"events": "grpcs://localhost:7053",
2861
"server-hostname": "peer0.org1.example.com",
29-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
62+
"tls_cacerts": "./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
3063
},
3164
"peer2": {
32-
"requests": "grpcs://10.120.223.35:7062",
33-
"events": "grpcs://10.120.223.35:6052",
34-
"server-hostname": "peer1.org1.example.com",
35-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
36-
}
65+
"requests": "grpcs://localhost:8051",
66+
"events": "grpcs://localhost:8053",
67+
"server-hostname": "peer1.org1.example.com",
68+
"tls_cacerts": "./crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem"
69+
}
3770
},
3871
"org2": {
39-
"name": "PeerOrg2",
40-
"mspid": "PeerOrg2",
41-
"mspPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config",
42-
"adminPath": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp",
72+
"name": "Org2MSP",
73+
"mspid": "Org2MSP",
74+
"mspPath": "./crypto-config",
75+
"adminPath": "./crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp",
4376
"comName": "example.com",
77+
"ordererID": "orderer3",
4478
"ca": {
45-
"url":"https://10.120.223.35:7055",
79+
"url":"https://localhost:8054",
4680
"name": "ca-org2"
4781
},
4882
"username": "admin",
4983
"secret": "adminpw",
5084
"peer1": {
51-
"requests": "grpcs://10.120.223.35:7063",
52-
"events": "grpcs://10.120.223.35:6053",
85+
"requests": "grpcs://localhost:9051",
86+
"events": "grpcs://localhost:9053",
5387
"server-hostname": "peer0.org2.example.com",
54-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
88+
"tls_cacerts": "./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
5589
},
5690
"peer2": {
57-
"requests": "grpcs://10.120.223.35:7064",
58-
"events": "grpcs://10.120.223.35:6054",
91+
"requests": "grpcs://localhost:10051",
92+
"events": "grpcs://localhost:10053",
5993
"server-hostname": "peer1.org2.example.com",
60-
"tls_cacerts": "/root/gopath/src/github.com/hyperledger/fabric/common/tools/cryptogen/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
94+
"tls_cacerts": "./crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem"
6195
}
6296
}
6397
}

0 commit comments

Comments
 (0)