You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Checking this in to allow Kostas to debug issue on
3 kafka node composition. Solo and 1 kafka node
are and couchdb configs are currently succeeding.
Added couchdb example. Feel free to choose from
any of the examples to configure the environment
you want. Commented out for now to not fail CI.
Now parameterized orderer references to allow usage
of both solo and kafka consensus types to leverage
the same scenario. Solo simply reuses orderer0 for all
orderer references.
Removed comments from couchdb config.
Change-Id: Id835abd0112df3a56284ef436c69e0b468c3d2bf
Signed-off-by: jeffgarratt <[email protected]>
Copy file name to clipboardexpand all lines: bddtests/features/bootstrap.feature
+29-19
Original file line number
Diff line number
Diff line change
@@ -3,15 +3,16 @@
3
3
#
4
4
# Tags that can be used and will affect test internals:
5
5
# @doNotDecompose will NOT decompose the named compose_yaml after scenario ends. Useful for setting up environment and reviewing after scenario.
6
-
# @chaincodeImagesUpToDate use this if all scenarios chaincode images are up to date, and do NOT require building. BE SURE!!!
6
+
#
7
+
# @generateDocs will generate documentation for the scenario that can be used for both verification and comprehension.
8
+
#
7
9
8
-
#@chaincodeImagesUpToDate
9
10
@bootstrap
10
11
Feature: Bootstrap
11
12
As a blockchain entrepreneur
12
13
I want to bootstrap a new blockchain network
13
14
14
-
@doNotDecompose
15
+
#@doNotDecompose
15
16
@generateDocs
16
17
Scenario Outline: Bootstrap a development network with 4 peers (2 orgs) and 1 orderer (1 org), each having a single independent root of trust (No fabric-ca, just openssl)
17
18
#creates 1 self-signed key/cert pair per orderer organization
@@ -22,6 +23,8 @@ Feature: Bootstrap
22
23
And user requests role of orderer admin by creating a key and csr for orderer and acquires signed certificate from organization:
23
24
| User | Orderer | Organization |
24
25
| orderer0Signer | orderer0 | ordererOrg0 |
26
+
| orderer1Signer | orderer1 | ordererOrg0 |
27
+
| orderer2Signer | orderer2 | ordererOrg0 |
25
28
26
29
27
30
# Rolenames : MspPrincipal.proto
@@ -81,8 +84,11 @@ Feature: Bootstrap
81
84
82
85
And we compose "<ComposeFile>"
83
86
87
+
# Sleep as to allow system up time
88
+
And I wait "<SystemUpWaitTime>" seconds
89
+
84
90
# This implicitly incorporates the orderer genesis block info
85
-
And the ordererBootstrapAdmin runs the channel template tool to create the orderer configuration template "template1" for application developers using orderer "orderer0"
91
+
And the ordererBootstrapAdmin runs the channel template tool to create the orderer configuration template "template1" for application developers using orderer "<orderer0>"
86
92
And the ordererBootstrapAdmin distributes orderer configuration template "template1" and chain creation policy name "chainCreatePolicy1"
87
93
88
94
And the following application developers are defined for peer organizations and each saves their cert as alias
@@ -118,17 +124,17 @@ Feature: Bootstrap
118
124
119
125
And the user "dev0Org0" creates a ConfigUpdate Tx "configUpdateTx1" using cert alias "dev0Org0App1" using signed ConfigUpdateEnvelope "createChannelConfigUpdate1"
120
126
121
-
And the user "dev0Org0" using cert alias "dev0Org0App1" broadcasts ConfigUpdate Tx "configUpdateTx1" to orderer "orderer0" to create channel "com.acme.blockchain.jdoe.Channel1"
127
+
And the user "dev0Org0" using cert alias "dev0Org0App1" broadcasts ConfigUpdate Tx "configUpdateTx1" to orderer "<orderer0>" to create channel "com.acme.blockchain.jdoe.Channel1"
122
128
123
129
# Sleep as the deliver takes a bit to have the first block ready
124
-
And I wait "2" seconds
130
+
And I wait "<BroadcastWaitTime>" seconds
125
131
126
-
When user "dev0Org0" using cert alias "dev0Org0App1" connects to deliver function on orderer "orderer0"
127
-
And user "dev0Org0" sends deliver a seek request on orderer "orderer0" with properties:
132
+
When user "dev0Org0" using cert alias "dev0Org0App1" connects to deliver function on orderer "<orderer0>"
133
+
And user "dev0Org0" sends deliver a seek request on orderer "<orderer0>" with properties:
128
134
| ChainId | Start | End |
129
135
| com.acme.blockchain.jdoe.Channel1 | 0 | 0 |
130
136
131
-
Then user "dev0Org0" should get a delivery "genesisBlockForMyNewChannel" from "orderer0" of "1" blocks with "1" messages within "1" seconds
137
+
Then user "dev0Org0" should get a delivery "genesisBlockForMyNewChannel" from "<orderer0>" of "1" blocks with "1" messages within "1" seconds
132
138
Given user "dev0Org0" gives "genesisBlockForMyNewChannel" to user "dev0Org1"
133
139
134
140
# This is entry point for joining an existing channel
@@ -161,7 +167,7 @@ Feature: Bootstrap
161
167
# Under the covers, create a deployment spec, etc.
162
168
And user "dev0Org0" using cert alias "dev0Org0App1" creates a install proposal "installProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "cc_spec"
163
169
164
-
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "installProposal1" to endorsers with timeout of "30" seconds with proposal responses "installProposalResponses":
170
+
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "installProposal1" to endorsers with timeout of "90" seconds with proposal responses "installProposalResponses":
165
171
| Endorser |
166
172
| peer0 |
167
173
| peer2 |
@@ -174,7 +180,7 @@ Feature: Bootstrap
174
180
# Under the covers, create a deployment spec, etc.
175
181
When user "dev0Org0" using cert alias "dev0Org0App1" creates a instantiate proposal "instantiateProposal1" for channel "com.acme.blockchain.jdoe.Channel1" using chaincode spec "cc_spec"
176
182
177
-
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "instantiateProposal1" to endorsers with timeout of "30" seconds with proposal responses "instantiateProposalResponses":
183
+
And user "dev0Org0" using cert alias "dev0Org0App1" sends proposal "instantiateProposal1" to endorsers with timeout of "90" seconds with proposal responses "instantiateProposalResponses":
178
184
| Endorser |
179
185
| peer0 |
180
186
| peer2 |
@@ -192,16 +198,16 @@ Feature: Bootstrap
192
198
193
199
When the user "dev0Org0" creates transaction "instantiateTx1" from proposal "instantiateProposal1" and proposal responses "instantiateProposalResponses" for channel "com.acme.blockchain.jdoe.Channel1"
194
200
195
-
And the user "dev0Org0" broadcasts transaction "instantiateTx1" to orderer "orderer0" on channel "com.acme.blockchain.jdoe.Channel1"
201
+
And the user "dev0Org0" broadcasts transaction "instantiateTx1" to orderer "<orderer1>" on channel "com.acme.blockchain.jdoe.Channel1"
196
202
197
203
# Sleep as the deliver takes a bit to have the first block ready
198
204
And I wait "2" seconds
199
205
200
-
And user "dev0Org0" sends deliver a seek request on orderer "orderer0" with properties:
206
+
And user "dev0Org0" sends deliver a seek request on orderer "<orderer0>" with properties:
201
207
| ChainId | Start | End |
202
208
| com.acme.blockchain.jdoe.Channel1 | 1 | 1 |
203
209
204
-
Then user "dev0Org0" should get a delivery "deliveredInstantiateTx1Block" from "orderer0" of "1" blocks with "1" messages within "1" seconds
210
+
Then user "dev0Org0" should get a delivery "deliveredInstantiateTx1Block" from "<orderer0>" of "1" blocks with "1" messages within "1" seconds
205
211
206
212
# Sleep as the deliver takes a bit to have the first block ready
207
213
And I wait "1" seconds
@@ -256,20 +262,24 @@ Feature: Bootstrap
256
262
257
263
When the user "dev0Org0" creates transaction "invokeTx1" from proposal "invokeProposal1" and proposal responses "invokeProposal1Responses" for channel "com.acme.blockchain.jdoe.Channel1"
258
264
259
-
And the user "dev0Org0" broadcasts transaction "invokeTx1" to orderer "orderer0" on channel "com.acme.blockchain.jdoe.Channel1"
265
+
And the user "dev0Org0" broadcasts transaction "invokeTx1" to orderer "<orderer2>" on channel "com.acme.blockchain.jdoe.Channel1"
260
266
261
267
# Sleep as the deliver takes a bit to have the first block ready
262
268
And I wait "2" seconds
263
269
264
-
And user "dev0Org0" sends deliver a seek request on orderer "orderer0" with properties:
270
+
And user "dev0Org0" sends deliver a seek request on orderer "<orderer0>" with properties:
265
271
| ChainId | Start | End |
266
272
| com.acme.blockchain.jdoe.Channel1 | 2 | 2 |
267
273
268
-
Then user "dev0Org0" should get a delivery "deliveredInvokeTx1Block" from "orderer0" of "1" blocks with "1" messages within "1" seconds
274
+
Then user "dev0Org0" should get a delivery "deliveredInvokeTx1Block" from "<orderer0>" of "1" blocks with "1" messages within "1" seconds
269
275
270
276
271
277
# TODO: Once events are working, consider listen event listener as well.
# matchingNATs = [nat for nat in directory.getNamedCtxTuples() if (("orderer" in nat.user) and ("Signer" in nat.user) and ((compose_service in nat.nodeName)))]
728
+
# for broker in [org for org in directory.getOrganizations().values() if Network.Orderer in org.networks]:
0 commit comments