Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions scripts/Canary-app-scripts/run_waku_canary.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash

#this script build the canary app and make basic run to connect to well-known peer via TCP .
set -e

PEER_ADDRESS="/dns4/store-01.do-ams3.status.staging.status.im/tcp/30303/p2p/16Uiu2HAm3xVDaz6SRJ6kErwC21zBJEZjavVXg7VSkoWzaV1aMA3F"
PROTOCOL="relay"
LOG_DIR="logs"
CLUSTER="16"
SHARD="64"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
LOG_FILE="$LOG_DIR/canary_run_$TIMESTAMP.log"

mkdir -p "$LOG_DIR"

echo "Building Waku Canary app..."
make wakucanary >> "$LOG_FILE" 2>&1


echo "Running Waku Canary against:"
echo " Peer : $PEER_ADDRESS"
echo " Protocol: $PROTOCOL"
echo "Log file : $LOG_FILE"
echo "-----------------------------------"

{
echo "=== Canary Run: $TIMESTAMP ==="
echo "Peer : $PEER_ADDRESS"
echo "Protocol : $PROTOCOL"
echo "LogLevel : DEBUG"
echo "-----------------------------------"
./build/wakucanary \
--address="$PEER_ADDRESS" \
--protocol="$PROTOCOL" \
--cluster-id="$CLUSTER"\
--shard="$SHARD"\
--log-level=DEBUG
echo "-----------------------------------"
echo "Exit code: $?"
} 2>&1 | tee "$LOG_FILE"

EXIT_CODE=${PIPESTATUS[0]}


if [ $EXIT_CODE -eq 0 ]; then
echo "SUCCESS: Connected to peer and protocol '$PROTOCOL' is supported."
else
echo "FAILURE: Could not connect or protocol '$PROTOCOL' is unsupported."
fi

exit $EXIT_CODE
30 changes: 30 additions & 0 deletions scripts/Canary-app-scripts/test_peer.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash


WAKUCANARY_BIN="./wakucanary"

PEERS=(
"/ip4/147.75.80.165/tcp/30303/p2p/16Uiu2HAmAj6uqzKX6F1M7Mf97TLGFeXkNiNzV7MvFpxRExo6FNTN"
"/dns4/node.waku.example.com/tcp/30304/p2p/16Uiu2HAmYkD6x6Bj6h1fRfQtbMz5Epqfj12NpywPSrFNiLwo7uQ7"
)

LOGFILE="ping_results_$(date +%Y%m%d_%H%M%S).log"

PING_COUNT=3

echo "Starting peer ping test..." | tee "$LOGFILE"
echo "------------------------------------" | tee -a "$LOGFILE"

for PEER in "${PEERS[@]}"; do
echo "Pinging peer: $PEER" | tee -a "$LOGFILE"
"$WAKUCANARY_BIN" --peer="$PEER" --ping --count="$PING_COUNT" >> "$LOGFILE" 2>&1
EXIT_CODE=$?
if [[ $EXIT_CODE -eq 0 ]]; then
echo "✅ Ping successful: $PEER" | tee -a "$LOGFILE"
else
echo "❌ Ping failed: $PEER (exit code: $EXIT_CODE)" | tee -a "$LOGFILE"
fi
echo "------------------------------------" | tee -a "$LOGFILE"
done

echo "Ping test completed. Results saved to: $LOGFILE"
44 changes: 44 additions & 0 deletions scripts/Canary-app-scripts/test_protocol.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash

set -e

WAKUCANARY_BIN="./wakucanary"

PEERS=(
"/ip4/147.75.80.165/tcp/30303/p2p/16Uiu2HAmAj6uqzKX6F1M7Mf97TLGFeXkNiNzV7MvFpxRExo6FNTN"
"/dns4/node.waku.example.com/tcp/30304/p2p/16Uiu2HAmYkD6x6Bj6h1fRfQtbMz5Epqfj12NpywPSrFNiLwo7uQ7"
)

REQUIRED_PROTOCOLS=(
"/vac/waku/relay/2.0.0"
"/vac/waku/store/2.0.0"
"/vac/waku/filter/2.0.0"
"/vac/waku/lightpush/2.0.0"
)

LOGFILE="protocol_check_$(date +%Y%m%d_%H%M%S).log"

echo "Starting protocol support verification..." | tee "$LOGFILE"
echo "------------------------------------" | tee -a "$LOGFILE"

for PEER in "${PEERS[@]}"; do
echo "Checking peer: $PEER" | tee -a "$LOGFILE"
OUTPUT=$("$WAKUCANARY_BIN" --peer="$PEER" --list-protocols 2>&1)
EXIT_CODE=$?
if [[ $EXIT_CODE -ne 0 ]]; then
echo "❌ Failed to check protocols for $PEER" | tee -a "$LOGFILE"
echo "$OUTPUT" >> "$LOGFILE"
echo "------------------------------------" | tee -a "$LOGFILE"
continue
fi
for PROTO in "${REQUIRED_PROTOCOLS[@]}"; do
if echo "$OUTPUT" | grep -q "$PROTO"; then
echo "✅ $PROTO supported" | tee -a "$LOGFILE"
else
echo "❌ $PROTO NOT supported" | tee -a "$LOGFILE"
fi
done
echo "------------------------------------" | tee -a "$LOGFILE"
done

echo "Protocol verification completed. Results saved to: $LOGFILE"
43 changes: 43 additions & 0 deletions scripts/Canary-app-scripts/test_protocols.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash

# === Configuration ===
WAKUCANARY_BINARY="./build/wakucanary"
PEER_ADDRESS="/dns4/store-01.do-ams3.status.staging.status.im/tcp/30303/p2p/16Uiu2HAm3xVDaz6SRJ6kErwC21zBJEZjavVXg7VSkoWzaV1aMA3F"
TIMEOUT=5
LOG_LEVEL="info"
PROTOCOLS=("store" "relay" "lightpush" "filter")

# === Logging Setup ===
LOG_DIR="logs"
mkdir -p "$LOG_DIR"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
LOG_FILE="$LOG_DIR/ping_test_$TIMESTAMP.log"

echo "Protocol Support Test - $TIMESTAMP" | tee -a "$LOG_FILE"
echo "Peer: $PEER_ADDRESS" | tee -a "$LOG_FILE"
echo "---------------------------------------" | tee -a "$LOG_FILE"

# === Protocol Testing Loop ===
for PROTOCOL in "${PROTOCOLS[@]}"; do
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
LOG_FILE="$LOG_DIR/ping_test_${PROTOCOL}_$TIMESTAMP.log"

{
echo "=== Canary Run: $TIMESTAMP ==="
echo "Peer : $PEER_ADDRESS"
echo "Protocol : $PROTOCOL"
echo "LogLevel : DEBUG"
echo "-----------------------------------"
$WAKUCANARY_BINARY \
--address="$PEER_ADDRESS" \
--protocol="$PROTOCOL" \
--log-level=DEBUG
echo "-----------------------------------"
echo "Exit code: $?"
} 2>&1 | tee "$LOG_FILE"

echo "✅ Log saved to: $LOG_FILE"
echo ""
done

echo "All protocol checks completed. Log saved to: $LOG_FILE"
40 changes: 40 additions & 0 deletions scripts/Canary-app-scripts/web_socket_certitficate.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash

WAKUCANARY_BINARY="./build/wakucanary"
NODE_PORT=60000
WSS_PORT=$((NODE_PORT + 1000))
PEER_ID="16Uiu2HAmB6JQpewXScGoQ2syqmimbe4GviLxRwfsR8dCpwaGBPSE"
PROTOCOL="relay"
KEY_PATH="./certs/client.key"
CERT_PATH="./certs/client.crt"
LOG_DIR="logs"
mkdir -p "$LOG_DIR"

PEER_ADDRESS="/ip4/127.0.0.1/tcp/$WSS_PORT/wss/p2p/$PEER_ID"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
LOG_FILE="$LOG_DIR/wss_cert_test_$TIMESTAMP.log"

{
echo "=== Canary WSS + Cert Test ==="
echo "Timestamp : $TIMESTAMP"
echo "Node Port : $NODE_PORT"
echo "WSS Port : $WSS_PORT"
echo "Peer ID : $PEER_ID"
echo "Protocol : $PROTOCOL"
echo "Key Path : $KEY_PATH"
echo "Cert Path : $CERT_PATH"
echo "Address : $PEER_ADDRESS"
echo "------------------------------------------"

$WAKUCANARY_BINARY \
--address="$PEER_ADDRESS" \
--protocol="$PROTOCOL" \
--log-level=DEBUG \
--websocket-secure-key-path="$KEY_PATH" \
--websocket-secure-cert-path="$CERT_PATH"

echo "------------------------------------------"
echo "Exit code: $?"
} 2>&1 | tee "$LOG_FILE"

echo "✅ Log saved to: $LOG_FILE"
51 changes: 51 additions & 0 deletions scripts/Canary-app-scripts/web_sockets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash

#this script build the canary app and make basic run to connect to well-known peer via TCP .
set -e

PEER_ADDRESS="/dns4/node-01.do-ams3.waku.sandbox.status.im/tcp/8000/wss/p2p/16Uiu2HAmNaeL4p3WEYzC9mgXBmBWSgWjPHRvatZTXnp8Jgv3iKsb"
PROTOCOL="relay"
LOG_DIR="logs"
CLUSTER="16"
SHARD="64"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
LOG_FILE="$LOG_DIR/canary_run_$TIMESTAMP.log"

mkdir -p "$LOG_DIR"

echo "Building Waku Canary app..."
make wakucanary >> "$LOG_FILE" 2>&1


echo "Running Waku Canary against:"
echo " Peer : $PEER_ADDRESS"
echo " Protocol: $PROTOCOL"
echo "Log file : $LOG_FILE"
echo "-----------------------------------"

{
echo "=== Canary Run: $TIMESTAMP ==="
echo "Peer : $PEER_ADDRESS"
echo "Protocol : $PROTOCOL"
echo "LogLevel : DEBUG"
echo "-----------------------------------"
./build/wakucanary \
--address="$PEER_ADDRESS" \
--protocol="$PROTOCOL" \
--cluster-id="$CLUSTER"\
--shard="$SHARD"\
--log-level=DEBUG
echo "-----------------------------------"
echo "Exit code: $?"
} 2>&1 | tee "$LOG_FILE"

EXIT_CODE=${PIPESTATUS[0]}


if [ $EXIT_CODE -eq 0 ]; then
echo "SUCCESS: Connected to peer and protocol '$PROTOCOL' is supported."
else
echo "FAILURE: Could not connect or protocol '$PROTOCOL' is unsupported."
fi

exit $EXIT_CODE