Skip to content

Commit 3884b7e

Browse files
authored
Merge branch 'main' into fix-228
2 parents 389cc19 + 2f62139 commit 3884b7e

27 files changed

+2845
-1626
lines changed

.github/workflows/test-on-push.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,15 @@ jobs:
160160
./fablo-build.sh
161161
162162
- name: Test snapshots
163-
run: e2e-network/docker/test-04-v2-snapshot.sh
163+
run: e2e-network/docker/test-04-v3-snapshot-ccaas.sh
164164

165165
- uses: actions/upload-artifact@v4
166166
if: always()
167167
with:
168168
name: test-04-snapshot
169169
path: |
170-
e2e-network/docker/test-04-v2-snapshot.sh.logs/*
171-
e2e-network/docker/test-04-v2-snapshot.sh.tmpdir/fablo-target/**/*
170+
e2e-network/docker/test-04-v3-snapshot-ccaas.sh.logs/*
171+
e2e-network/docker/test-04-v3-snapshot-ccaas.sh.tmpdir/fablo-target/**/*
172172
173173
test-05-v3:
174174
needs: test-main

COVERAGE_TRACKER.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,50 +7,50 @@ This document provides an overview of Fablo features. The table below tracks fea
77
| Feature | Fabric v2 | Fabric v3 | Documented | CI tests | Relevant issues |
88
|----------------------------------------|-----------|-----------|------------|----------|-----------------|
99
| <br>**NETWORK CONFIGURATION** | | | | | |
10-
| RAFT Consensus |||| | |
11-
| BFT Consensus | - ||| [05_v3](/e2e-network/docker/test-06-v3-bft.sh) | [#559](https://github.com/hyperledger-labs/fablo/issues/559) |
12-
| TLS |||| | |
13-
| Orderer Groups |||| | [#560](https://github.com/hyperledger-labs/fablo/issues/560) |
14-
| Peer DB - LevelDB |||| | |
15-
| Peer DB - CouchDB |||| | |
16-
| CA DB - SQLite |||| | |
17-
| CA DB - Postgres |||| | |
10+
| RAFT Consensus |||| [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | |
11+
| BFT Consensus | - ||| [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | [#559](https://github.com/hyperledger-labs/fablo/issues/559) |
12+
| TLS |||| [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
13+
| Orderer Groups |||| [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | [#560](https://github.com/hyperledger-labs/fablo/issues/560) |
14+
| Peer DB - LevelDB |||| [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
15+
| Peer DB - CouchDB |||| [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
16+
| CA DB - SQLite |||| [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
17+
| CA DB - Postgres |||| [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
1818
| CA DB - MySQL |||| | [#561](https://github.com/hyperledger-labs/fablo/issues/561) |
1919
| <br>**CHANNELS** | | | | | |
20-
| Channel query scripts ||| | | |
20+
| Channel query scripts ||| | [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
2121
| <br>**CHAINCODES** | | | | | |
22-
| Node ||| | | |
22+
| Node ||| | [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
2323
| Go ||| | | |
24-
| Java ||| | | |
25-
| Chaincode-as-a-Service (CCaaS) || | | [04_v2](/e2e-network/docker/test-04-v2-snapshot.sh) | |
26-
| Endorsement Policies ||| | | |
27-
| Multi-org Endorsements ||| | | |
28-
| Private Data Collections ||| | | |
29-
| Chaincode scripts (list/query/invoke) ||| | | |
30-
| Commands: install / upgrade ||| | | |
24+
| Java ||| | [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | |
25+
| Chaincode-as-a-Service (CCaaS) || | | [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
26+
| Endorsement Policies ||| | [03_v2](/e2e-network/docker/test-03-v2-private-data.sh), [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | |
27+
| Multi-org Endorsements ||| | [03_v2](/e2e-network/docker/test-03-v2-private-data.sh) | |
28+
| Private Data Collections ||| | [03_v2](/e2e-network/docker/test-03-v2-private-data.sh) | |
29+
| Chaincode scripts (list/query/invoke) ||| | [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [03_v2](/e2e-network/docker/test-03-v2-private-data.sh), [04_v2](/e2e-network/docker/test-04-v2-snapshot.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
30+
| Commands: install / upgrade ||| | [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | |
3131
| <br>**TOOLS** | | | | | |
32-
| Fablo REST ||| | | |
33-
| Explorer ||| | | |
32+
| Fablo REST ||| | [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
33+
| Explorer ||| | [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | |
3434
| <br>**FABLO COMMANDS** | | | | | |
35-
| `generate` |||| | |
36-
| `up` |||| | |
37-
| `start`, `stop`, `restart` |||| | |
38-
| `down`, `reset` |||| | |
39-
| `prune`, `recreate` |||| | |
40-
| `validate`, `extend-config` |||| | |
41-
| `version` |||| | |
42-
| `init` (node, rest, dev) |||| | |
43-
| `export-network-topology` to Mermaid |||| | |
35+
| `generate` |||| [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
36+
| `up` |||| [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
37+
| `start`, `stop`, `restart` |||| [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh) | |
38+
| `down`, `reset` |||| [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [02_v2](/e2e-network/docker/test-02-v2-raft-2orgs.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
39+
| `prune`, `recreate` |||| [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
40+
| `validate`, `extend-config` |||| [e2e](/e2e/fabloCommands.test.ts) | |
41+
| `version` |||| [e2e](/e2e/fabloCommands.test.ts) | |
42+
| `init` (node, rest, dev) |||| [01_v2](/e2e-network/docker/test-01-v2-simple.sh), [05_v3](/e2e-network/docker/test-05-v3.sh), [06_v3](/e2e-network/docker/test-06-v3-bft.sh) | |
43+
| `export-network-topology` to Mermaid |||| | [#579](https://github.com/hyperledger-labs/fablo/pull/579) |
4444
| Other `init` options | | | | | [#444](https://github.com/hyperledger-labs/fablo/issues/444) |
4545
| <br>**SNAPSHOT** | | | | | |
46-
| Create snapshot |||| | |
47-
| Restore snapshot |||| | |
46+
| Create snapshot |||| [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
47+
| Restore snapshot |||| [04_v3](/e2e-network/docker/test-04-v3-snapshot-ccaas.sh) | |
4848
| Post-start hook | | | | | [#111](https://github.com/hyperledger-labs/fablo/issues/111) |
4949
| <br>**OTHER FEATURES** | | | | | |
50-
| Peer dev mode |||| | [#472](https://github.com/hyperledger-labs/fablo/issues/472) |
51-
| Connection profiles |||| | |
52-
| Gateway client | | | | | [#544](https://github.com/hyperledger-labs/fablo/pull/544) |
53-
| Hooks: post-generate |||| | |
50+
| Peer dev mode |||| [07_v2](/e2e-network/docker/test-07-v2-peer-dev-mode.sh) | [#472](https://github.com/hyperledger-labs/fablo/issues/472) |
51+
| Connection profiles |||| [e2e_snap](/e2e/__snapshots__/fablo-config-hlf2-1org-1chaincode.json.test.ts.snap) | |
52+
| Gateway client | | | | [05__v3](/e2e-network/docker/test-05-v3.sh) | [#544](https://github.com/hyperledger-labs/fablo/pull/544) |
53+
| Hooks: post-generate |||| | [#580](https://github.com/hyperledger-labs/fablo/pull/580) |
5454
| JSON/YAML support |||| | |
5555

5656
---
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env bash
2+
3+
peers="$1"
4+
channel="$2"
5+
chaincode="$3"
6+
command="$4"
7+
expected="$5"
8+
transient_default="{}"
9+
transient="${6:-$transient_default}"
10+
11+
if [ -z "$expected" ]; then
12+
echo "Usage: ./expect-query.sh [peer[,peer]] [channel] [chaincode] [command] [expected_substring] [transient_data]"
13+
exit 1
14+
fi
15+
16+
label="Query $channel/$peers $command"
17+
echo ""
18+
echo "➜ testing: $label"
19+
20+
response="$(
21+
"$FABLO_HOME/fablo.sh" chaincode query "$peers" "$channel" "$chaincode" "$command" "$transient"
22+
)"
23+
24+
echo "$response"
25+
26+
if echo "$response" | grep -F "$expected"; then
27+
echo "✅ ok (cli): $label"
28+
else
29+
echo "❌ failed (cli): $label | expected: $expected"
30+
exit 1
31+
fi

e2e-network/docker/test-01-v2-simple.sh

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ expectCommand() {
4242
sh "$TEST_TMP/../expect-command.sh" "$1" "$2"
4343
}
4444

45+
expectQuery() {
46+
(cd "$TEST_TMP" && sh ../expect-query-cli.sh "$1" "$2" "$3" "$4" "$5")
47+
}
48+
4549
trap networkDown EXIT
4650
trap 'networkDown ; echo "Test failed" ; exit 1' ERR SIGINT
4751

@@ -62,29 +66,29 @@ waitForContainer "peer1.org1.example.com" "Membership view has changed. peers we
6266
expectInvoke "peer0.org1.example.com" "my-channel1" "chaincode1" \
6367
'{"Args":["KVContract:put", "name", "Willy Wonka"]}' \
6468
'{\"success\":\"OK\"}'
65-
expectInvoke "peer1.org1.example.com" "my-channel1" "chaincode1" \
69+
expectQuery "peer1.org1.example.com" "my-channel1" "chaincode1" \
6670
'{"Args":["KVContract:get", "name"]}' \
67-
'{\"success\":\"Willy Wonka\"}'
71+
'{"success":"Willy Wonka"}'
6872

6973
# Verify channel query scripts
7074
(cd "$TEST_TMP" && "$FABLO_HOME/fablo.sh" channel fetch newest my-channel1 org1 peer1)
71-
expectCommand "cat \"$TEST_TMP/newest.block\"" "KVContract:get"
75+
expectCommand "cat \"$TEST_TMP/newest.block\"" "KVContract:put"
7276

7377
(cd "$TEST_TMP" && "$FABLO_HOME/fablo.sh" channel fetch 4 my-channel1 org1 peer1 "another.block")
7478
expectCommand "cat \"$TEST_TMP/another.block\"" "KVContract:put"
7579

7680
(cd "$TEST_TMP" && "$FABLO_HOME/fablo.sh" channel fetch config my-channel1 org1 peer1 "channel-config.json")
7781
expectCommand "cat \"$TEST_TMP/channel-config.json\"" "\"mod_policy\": \"Admins\","
7882

79-
expectCommand "(cd \"$TEST_TMP\" && \"$FABLO_HOME/fablo.sh\" channel getinfo my-channel1 org1 peer1)" "\"height\":6"
83+
expectCommand "(cd \"$TEST_TMP\" && \"$FABLO_HOME/fablo.sh\" channel getinfo my-channel1 org1 peer1)" "\"height\":5"
8084

8185
# Reset and ensure the state is lost after reset
8286
(cd "$TEST_TMP" && "$FABLO_HOME/fablo.sh" reset)
8387
waitForChaincode "peer0.org1.example.com" "my-channel1" "chaincode1" "0.0.1"
8488
waitForChaincode "peer1.org1.example.com" "my-channel1" "chaincode1" "0.0.1"
85-
expectInvoke "peer0.org1.example.com" "my-channel1" "chaincode1" \
89+
expectQuery "peer0.org1.example.com" "my-channel1" "chaincode1" \
8690
'{"Args":["KVContract:get", "name"]}' \
87-
'{\"error\":\"NOT_FOUND\"}'
91+
'{"error":"NOT_FOUND"}'
8892

8993
# Put some data again
9094
expectInvoke "peer0.org1.example.com" "my-channel1" "chaincode1" \

e2e-network/docker/test-02-v2-raft-2orgs.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@ waitForContainer "peer0.org1.example.com" "Membership view has changed. peers we
8080
waitForContainer "peer1.org1.example.com" "Joining gossip network of channel my-channel2 with 2 organizations"
8181
waitForContainer "peer1.org1.example.com" "Learning about the configured anchor peers of Org1MSP for channel my-channel2"
8282
waitForContainer "peer1.org1.example.com" "Membership view has changed. peers went online:.*peer1.org2.example.com:7082"
83+
waitForContainer "db.explorer.example.com" "database system is ready to accept connections" "200"
84+
# // the next check is not working because explorer needs needs to be restarted first
85+
# // see the issue: https://github.com/hyperledger-labs/fablo/issues/604
86+
# waitForContainer "explorer.example.com" "Successfully created channel event hub for \[my-channel1\]" "200"
8387

8488
# check if org2 is ready
8589
waitForContainer "ca.org2.example.com" "Listening on https://0.0.0.0:7054"
@@ -120,6 +124,7 @@ expectInvokeCli "peer1.org2.example.com" "my-channel2" "chaincode2" \
120124
(cd "$TEST_TMP" && "$FABLO_HOME/fablo.sh" stop && "$FABLO_HOME/fablo.sh" start)
121125
waitForChaincode "peer0.org1.example.com" "my-channel1" "chaincode1" "0.0.1"
122126
waitForChaincode "peer0.org2.example.com" "my-channel1" "chaincode1" "0.0.1"
127+
waitForContainer "explorer.example.com" "Successfully created channel event hub for \[my-channel1\]" "200"
123128

124129
# upgrade chaincode
125130
(cd "$TEST_TMP" && "$FABLO_HOME/fablo.sh" chaincode upgrade "chaincode1" "0.0.2")

e2e-network/docker/test-04-v2-snapshot.sh renamed to e2e-network/docker/test-04-v3-snapshot-ccaas.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ FABLO_HOME="$TEST_TMP/../../.."
88

99
export FABLO_HOME
1010

11-
CONFIG="$FABLO_HOME/samples/fablo-config-hlf2-1org-1chaincode-raft-explorer.json"
11+
CONFIG="$FABLO_HOME/samples/fablo-config-hlf3-1org-1chaincode-raft-ccaas.json"
1212

1313
networkUp() {
1414
"$FABLO_HOME/fablo-build.sh"
@@ -55,7 +55,6 @@ waitForContainer "db.ca.org1.example.com" "database system is ready to accept co
5555
waitForContainer "ca.org1.example.com" "Listening on https://0.0.0.0:7054"
5656
waitForContainer "couchdb.peer0.org1.example.com" "Apache CouchDB has started. Time to relax."
5757
waitForContainer "peer0.org1.example.com" "Joining gossip network of channel my-channel1 with 1 organizations"
58-
waitForContainer "db.explorer.example.com" "database system is ready to accept connections" "200"
5958
waitForChaincode "peer0.org1.example.com" "my-channel1" "chaincode1" "0.0.1"
6059

6160
fablo_rest_org1="localhost:8801"
@@ -114,7 +113,6 @@ hook_command="perl -i -pe 's/FABRIC_VERSION=2\.3\.3/FABRIC_VERSION=2\.4\.2/g' ./
114113
"$FABLO_HOME/fablo.sh" chaincodes install
115114
)
116115

117-
waitForContainer "explorer.example.com" "Successfully created channel event hub for \[my-channel1\]" "200"
118116
waitForChaincode "peer0.org1.example.com" "my-channel1" "chaincode1" "0.0.1"
119117

120118
sleep 5

0 commit comments

Comments
 (0)