Skip to content

Commit 682c76c

Browse files
Test/waku canary (#3597)
* Adding waku canary test scripts * Update README file note: The real author of this commit is Aya. I just resubmitted her PR after a deep nwaku history cleanup --------- Co-authored-by: aya <[email protected]>
1 parent 74b3770 commit 682c76c

File tree

5 files changed

+203
-3
lines changed

5 files changed

+203
-3
lines changed

apps/wakucanary/README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,31 @@ $ make wakucanary
3232
And used as follows. A reachable node that supports both `store` and `filter` protocols.
3333

3434
```console
35-
$ ./build/wakucanary --address=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/30303/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV --protocol=store --protocol=filter
35+
$ ./build/wakucanary \
36+
--address=/dns4/store-01.do-ams3.status.staging.status.im/tcp/30303/p2p/16Uiu2HAm3xVDaz6SRJ6kErwC21zBJEZjavVXg7VSkoWzaV1aMA3F \
37+
--protocol=store \
38+
--protocol=filter \
39+
--cluster-id=16 \
40+
--shard=64
3641
$ echo $?
3742
0
3843
```
3944

4045
A node that can't be reached.
4146
```console
42-
$ ./build/wakucanary --address=/dns4/node-01.ac-cn-hongkong-c.waku.sandbox.status.im/tcp/1000/p2p/16Uiu2HAmSJvSJphxRdbnigUV5bjRRZFBhTtWFTSyiKaQByCjwmpV --protocol=store --protocol=filter
47+
$ ./build/wakucanary \
48+
--address=/dns4/store-01.do-ams3.status.staging.status.im/tcp/1000/p2p/16Uiu2HAm3xVDaz6SRJ6kErwC21zBJEZjavVXg7VSkoWzaV1aMA3F \
49+
--protocol=store \
50+
--protocol=filter \
51+
--cluster-id=16 \
52+
--shard=64
4353
$ echo $?
4454
1
4555
```
4656

4757
Note that a domain name can also be used.
4858
```console
49-
$ ./build/wakucanary --address=/dns4/node-01.do-ams3.status.test.status.im/tcp/30303/p2p/16Uiu2HAkukebeXjTQ9QDBeNDWuGfbaSg79wkkhK4vPocLgR6QFDf --protocol=store --protocol=filter
59+
--- not defined yet
5060
$ echo $?
5161
0
5262
```
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/bin/bash
2+
3+
#this script build the canary app and make basic run to connect to well-known peer via TCP .
4+
set -e
5+
6+
PEER_ADDRESS="/dns4/store-01.do-ams3.status.staging.status.im/tcp/30303/p2p/16Uiu2HAm3xVDaz6SRJ6kErwC21zBJEZjavVXg7VSkoWzaV1aMA3F"
7+
PROTOCOL="relay"
8+
LOG_DIR="logs"
9+
CLUSTER="16"
10+
SHARD="64"
11+
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
12+
LOG_FILE="$LOG_DIR/canary_run_$TIMESTAMP.log"
13+
14+
mkdir -p "$LOG_DIR"
15+
16+
echo "Building Waku Canary app..."
17+
( cd ../../../ && make wakucanary ) >> "$LOG_FILE" 2>&1
18+
19+
echo "Running Waku Canary against:"
20+
echo " Peer : $PEER_ADDRESS"
21+
echo " Protocol: $PROTOCOL"
22+
echo "Log file : $LOG_FILE"
23+
echo "-----------------------------------"
24+
25+
{
26+
echo "=== Canary Run: $TIMESTAMP ==="
27+
echo "Peer : $PEER_ADDRESS"
28+
echo "Protocol : $PROTOCOL"
29+
echo "LogLevel : DEBUG"
30+
echo "-----------------------------------"
31+
../../../build/wakucanary \
32+
--address="$PEER_ADDRESS" \
33+
--protocol="$PROTOCOL" \
34+
--cluster-id="$CLUSTER"\
35+
--shard="$SHARD"\
36+
--log-level=DEBUG
37+
echo "-----------------------------------"
38+
echo "Exit code: $?"
39+
} 2>&1 | tee "$LOG_FILE"
40+
41+
EXIT_CODE=${PIPESTATUS[0]}
42+
43+
44+
if [ $EXIT_CODE -eq 0 ]; then
45+
echo "SUCCESS: Connected to peer and protocol '$PROTOCOL' is supported."
46+
else
47+
echo "FAILURE: Could not connect or protocol '$PROTOCOL' is unsupported."
48+
fi
49+
50+
exit $EXIT_CODE
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/bash
2+
3+
# === Configuration ===
4+
WAKUCANARY_BINARY="../../../build/wakucanary"
5+
PEER_ADDRESS="/dns4/store-01.do-ams3.status.staging.status.im/tcp/30303/p2p/16Uiu2HAm3xVDaz6SRJ6kErwC21zBJEZjavVXg7VSkoWzaV1aMA3F"
6+
TIMEOUT=5
7+
LOG_LEVEL="info"
8+
PROTOCOLS=("store" "relay" "lightpush" "filter")
9+
10+
# === Logging Setup ===
11+
LOG_DIR="logs"
12+
mkdir -p "$LOG_DIR"
13+
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
14+
LOG_FILE="$LOG_DIR/ping_test_$TIMESTAMP.log"
15+
16+
echo "Building Waku Canary app..."
17+
( cd ../../../ && make wakucanary ) >> "$LOG_FILE" 2>&1
18+
19+
echo "Protocol Support Test - $TIMESTAMP" | tee -a "$LOG_FILE"
20+
echo "Peer: $PEER_ADDRESS" | tee -a "$LOG_FILE"
21+
echo "---------------------------------------" | tee -a "$LOG_FILE"
22+
23+
# === Protocol Testing Loop ===
24+
for PROTOCOL in "${PROTOCOLS[@]}"; do
25+
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
26+
LOG_FILE="$LOG_DIR/ping_test_${PROTOCOL}_$TIMESTAMP.log"
27+
28+
{
29+
echo "=== Canary Run: $TIMESTAMP ==="
30+
echo "Peer : $PEER_ADDRESS"
31+
echo "Protocol : $PROTOCOL"
32+
echo "LogLevel : DEBUG"
33+
echo "-----------------------------------"
34+
$WAKUCANARY_BINARY \
35+
--address="$PEER_ADDRESS" \
36+
--protocol="$PROTOCOL" \
37+
--log-level=DEBUG
38+
echo "-----------------------------------"
39+
echo "Exit code: $?"
40+
} 2>&1 | tee "$LOG_FILE"
41+
42+
echo "✅ Log saved to: $LOG_FILE"
43+
echo ""
44+
done
45+
46+
echo "All protocol checks completed. Log saved to: $LOG_FILE"
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#!/bin/bash
2+
3+
#this script build the canary app and make basic run to connect to well-known peer via TCP .
4+
set -e
5+
6+
PEER_ADDRESS="/ip4/127.0.0.1/tcp/7777/ws/p2p/16Uiu2HAm4ng2DaLPniRoZtMQbLdjYYWnXjrrJkGoXWCoBWAdn1tu"
7+
PROTOCOL="relay"
8+
LOG_DIR="logs"
9+
CLUSTER="16"
10+
SHARD="64"
11+
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
12+
LOG_FILE="$LOG_DIR/canary_run_$TIMESTAMP.log"
13+
14+
mkdir -p "$LOG_DIR"
15+
16+
echo "Building Waku Canary app..."
17+
( cd ../../../ && make wakucanary ) >> "$LOG_FILE" 2>&1
18+
19+
20+
echo "Running Waku Canary against:"
21+
echo " Peer : $PEER_ADDRESS"
22+
echo " Protocol: $PROTOCOL"
23+
echo "Log file : $LOG_FILE"
24+
echo "-----------------------------------"
25+
26+
{
27+
echo "=== Canary Run: $TIMESTAMP ==="
28+
echo "Peer : $PEER_ADDRESS"
29+
echo "Protocol : $PROTOCOL"
30+
echo "LogLevel : DEBUG"
31+
echo "-----------------------------------"
32+
../../../build/wakucanary \
33+
--address="$PEER_ADDRESS" \
34+
--protocol="$PROTOCOL" \
35+
--cluster-id="$CLUSTER"\
36+
--shard="$SHARD"\
37+
--log-level=DEBUG
38+
echo "-----------------------------------"
39+
echo "Exit code: $?"
40+
} 2>&1 | tee "$LOG_FILE"
41+
42+
EXIT_CODE=${PIPESTATUS[0]}
43+
44+
45+
if [ $EXIT_CODE -eq 0 ]; then
46+
echo "SUCCESS: Connected to peer and protocol '$PROTOCOL' is supported."
47+
else
48+
echo "FAILURE: Could not connect or protocol '$PROTOCOL' is unsupported."
49+
fi
50+
51+
exit $EXIT_CODE
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
3+
WAKUCANARY_BINARY="../../../build/wakucanary"
4+
NODE_PORT=60000
5+
WSS_PORT=$((NODE_PORT + 1000))
6+
PEER_ID="16Uiu2HAmB6JQpewXScGoQ2syqmimbe4GviLxRwfsR8dCpwaGBPSE"
7+
PROTOCOL="relay"
8+
KEY_PATH="./certs/client.key"
9+
CERT_PATH="./certs/client.crt"
10+
LOG_DIR="logs"
11+
mkdir -p "$LOG_DIR"
12+
13+
PEER_ADDRESS="/ip4/127.0.0.1/tcp/$WSS_PORT/wss/p2p/$PEER_ID"
14+
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
15+
LOG_FILE="$LOG_DIR/wss_cert_test_$TIMESTAMP.log"
16+
17+
echo "Building Waku Canary app..."
18+
( cd ../../../ && make wakucanary ) >> "$LOG_FILE" 2>&1
19+
20+
{
21+
echo "=== Canary WSS + Cert Test ==="
22+
echo "Timestamp : $TIMESTAMP"
23+
echo "Node Port : $NODE_PORT"
24+
echo "WSS Port : $WSS_PORT"
25+
echo "Peer ID : $PEER_ID"
26+
echo "Protocol : $PROTOCOL"
27+
echo "Key Path : $KEY_PATH"
28+
echo "Cert Path : $CERT_PATH"
29+
echo "Address : $PEER_ADDRESS"
30+
echo "------------------------------------------"
31+
32+
$WAKUCANARY_BINARY \
33+
--address="$PEER_ADDRESS" \
34+
--protocol="$PROTOCOL" \
35+
--log-level=DEBUG \
36+
--websocket-secure-key-path="$KEY_PATH" \
37+
--websocket-secure-cert-path="$CERT_PATH"
38+
39+
echo "------------------------------------------"
40+
echo "Exit code: $?"
41+
} 2>&1 | tee "$LOG_FILE"
42+
43+
echo "✅ Log saved to: $LOG_FILE"

0 commit comments

Comments
 (0)