#!/bin/bash
-# compute a simple scalar product
-# payload for this test:
-SIZE=1000
+# Computes a simple scalar product, with configurable vector size.
+#
+# Some results (wall-clock for Alice+Bob, single-core, i7):
+# SIZE 2048-H(s) 2048-O(s) 1024-O(s) ECC-2^20-H(s) ECC-2^28-H(s)
+# 25 10 14 3 2 29
+# 50 17 21 5 2 29
+# 100 32 39 7 2 29
+# 200 77 13 3 30
+# 400 149 23 OOR 31
+# 800 304 32 OOR 33
+
+# Bandwidth (including set intersection):
+# RSA-2048 ECC
+# 800: 3846 kb 70 kb
+# Configure benchmark size:
+SIZE=800
+#
+# Construct input vectors:
INPUTALICE="-k CCC -e '"
INPUTBOB="-k CCC -e '"
for X in `seq 1 $SIZE`
# interactive mode would terminate the test immediately
# because the rest of the script is already in stdin,
# thus redirecting stdin does not suffice)
-GNUNET_FORCE_LOG=';;;;ERROR'
+#GNUNET_FORCE_LOG=';;;;ERROR'
+#GNUNET_FORCE_LOG='scalarproduct*;;;;DEBUG/cadet-api*;;;;DEBUG'
GNUNET_TESTING_PREFIX=$PREFIX ../testbed/gnunet-testbed-profiler -n -c test_scalarproduct.conf -p 2 &
PID=$!
# sleep 1 is too short on most systems, 2 works on most, 5 seems to be safe
echo "Running problem of size $SIZE"
gnunet-scalarproduct $CFGBOB $INPUTBOB &
time RESULT=`gnunet-scalarproduct $CFGALICE $INPUTALICE -p $PEERIDBOB`
+gnunet-statistics $CFGALICE -s core | grep "bytes encrypted"
+gnunet-statistics $CFGBOB -s core | grep "bytes encrypted"
echo "Terminating testbed..."
# terminate the testbed
kill $PID
-