cat / goq
clone

turns a linux box into a private steam streaming appliance: plug in, tap your key, play from another computer

fix/release-build-and-order
goq / scripts / relay-spike-proof.sh
relay-spike-proof.sh 2.3K executable
1#!/usr/bin/env bash2set -euo pipefail34video="1280x800@60"5audio="opus-48k-stereo"6duration_seconds=30078usage() {9 cat <<'USAGE'10Usage: relay-spike-proof.sh [options]1112 --video TARGET Fixed encoded target (required: 1280x800@60)13 --audio FORMAT Fixed audio format (required: opus-48k-stereo)14 --duration-seconds SECONDS Virtual benchmark horizon, 1..300 (default: 300)15USAGE16}1718while (($#)); do19 case "$1" in20 --video)21 video=${2:?missing --video value}22 shift 223 ;;24 --audio)25 audio=${2:?missing --audio value}26 shift 227 ;;28 --duration-seconds)29 duration_seconds=${2:?missing --duration-seconds value}30 shift 231 ;;32 --help|-h)33 usage34 exit 035 ;;36 *)37 printf 'error: unknown argument: %s\n' "$1" >&238 usage >&239 exit 240 ;;41 esac42done4344[[ "$video" == "1280x800@60" ]] || { printf 'error: unsupported video target\n' >&2; exit 2; }45[[ "$audio" == "opus-48k-stereo" ]] || { printf 'error: unsupported audio format\n' >&2; exit 2; }46[[ "$duration_seconds" =~ ^[0-9]+$ ]] || { printf 'error: duration must be an integer\n' >&2; exit 2; }47((duration_seconds >= 1 && duration_seconds <= 300)) || {48 printf 'error: duration must be within 1..300 seconds\n' >&249 exit 250}5152repo_root=$(CDPATH='' cd -- "$(dirname -- "$0")/.." && pwd)53tmp_root=$(mktemp -d "${TMPDIR:-/tmp}/goq-relay-spike.XXXXXX")54trap 'rm -rf "$tmp_root"' EXIT55log="$tmp_root/relay-spike.log"5657# The automated spike advances a bounded virtual media horizon without sleeping.58# Exact direct/relay-fallback Iroh path measurements remain the manual gate.59(60 cd "$repo_root"61 # shellcheck source=/dev/null62 source "${HOME}/.cargo/env"63 cargo run --quiet --release -p sigil-host --bin sigil-relay-spike -- \64 --video "$video" \65 --audio "$audio" \66 --duration-seconds "$duration_seconds"67) | tee "$log"6869grep -Fxq 'relay_spike=ok' "$log"70grep -Fxq 'authentication_mode=ed25519-v1' "$log"71grep -Fxq 'decision=defer-production-mesh' "$log"72grep -Fxq 'host_upload_savings_percent=50' "$log"73grep -Fxq 'tamper_rejected=ok' "$log"74grep -Fxq 'wrong_subscriber_rejected=ok' "$log"75grep -Fxq 'expired_subscription_rejected=ok' "$log"76grep -Fxq 'relay_loss_direct_fallback=ok' "$log"77grep -Fxq 'withheld_media_trusted=0' "$log"78grep -Eq '^maximum_relay_queue=[1-4]$' "$log"7980printf 'proof=ok\n'