diff --git a/scripts/Canary-app-scripts/run_waku_canary.sh b/scripts/Canary-app-scripts/run_waku_canary.sh new file mode 100755 index 00000000..b4e7e828 --- /dev/null +++ b/scripts/Canary-app-scripts/run_waku_canary.sh @@ -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 diff --git a/scripts/Canary-app-scripts/test_peer.sh b/scripts/Canary-app-scripts/test_peer.sh new file mode 100644 index 00000000..8627a2cc --- /dev/null +++ b/scripts/Canary-app-scripts/test_peer.sh @@ -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" diff --git a/scripts/Canary-app-scripts/test_protocol.sh b/scripts/Canary-app-scripts/test_protocol.sh new file mode 100644 index 00000000..b4be5b70 --- /dev/null +++ b/scripts/Canary-app-scripts/test_protocol.sh @@ -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" diff --git a/scripts/Canary-app-scripts/test_protocols.sh b/scripts/Canary-app-scripts/test_protocols.sh new file mode 100755 index 00000000..1b85e562 --- /dev/null +++ b/scripts/Canary-app-scripts/test_protocols.sh @@ -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" diff --git a/scripts/Canary-app-scripts/web_socket_certitficate.sh b/scripts/Canary-app-scripts/web_socket_certitficate.sh new file mode 100644 index 00000000..cb609990 --- /dev/null +++ b/scripts/Canary-app-scripts/web_socket_certitficate.sh @@ -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" diff --git a/scripts/Canary-app-scripts/web_sockets.sh b/scripts/Canary-app-scripts/web_sockets.sh new file mode 100644 index 00000000..65811194 --- /dev/null +++ b/scripts/Canary-app-scripts/web_sockets.sh @@ -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