commit 94dff967fd457c4922fe7838f5f5ef4c7b17eefe
Author: Tom Ritter <tom(a)ritter.vg>
Date: Thu May 21 13:01:07 2015 -0500
Double the scanners, double the tors
Also update aggregate.py to work with a two-tor system
---
NetworkScanners/BwAuthority/aggregate.py | 6 ++--
.../BwAuthority/data/scanner.1/bwauthority.cfg | 4 +--
.../BwAuthority/data/scanner.2/bwauthority.cfg | 6 ++--
.../BwAuthority/data/scanner.3/bwauthority.cfg | 6 ++--
.../BwAuthority/data/scanner.4/bwauthority.cfg | 6 ++--
.../BwAuthority/data/scanner.5/bwauthority.cfg | 25 ++++++++--------
.../BwAuthority/data/scanner.6/bwauthority.cfg | 30 ++++++++++++++++++++
.../BwAuthority/data/scanner.7/bwauthority.cfg | 30 ++++++++++++++++++++
.../BwAuthority/data/scanner.8/bwauthority.cfg | 30 ++++++++++++++++++++
.../BwAuthority/data/scanner.9/bwauthority.cfg | 30 ++++++++++++++++++++
.../data/scanner.9/scan-data/.gitignore | 2 ++
NetworkScanners/BwAuthority/data/tor.1/torrc | 18 ++++++++++++
NetworkScanners/BwAuthority/data/tor.2/torrc | 18 ++++++++++++
NetworkScanners/BwAuthority/data/tor/torrc | 18 ------------
NetworkScanners/BwAuthority/run_scan.sh | 29 +++++++++++--------
15 files changed, 203 insertions(+), 55 deletions(-)
diff --git a/NetworkScanners/BwAuthority/aggregate.py b/NetworkScanners/BwAuthority/aggregate.py
index 49ad3cc..6d35dba 100755
--- a/NetworkScanners/BwAuthority/aggregate.py
+++ b/NetworkScanners/BwAuthority/aggregate.py
@@ -362,7 +362,8 @@ def write_file_list(datadir):
def main(argv):
TorUtil.read_config(argv[1]+"/scanner.1/bwauthority.cfg")
- TorUtil.loglevel = "NOTICE"
+ TorUtil.loglevel = "DEBUG"
+ TorUtil.logfile = "data/aggregate-debug.log"
(branch, head) = TorUtil.get_git_version(PATH_TO_TORFLOW_REPO)
plog('INFO', 'TorFlow Version: %s' % branch+' '+head)
@@ -373,7 +374,7 @@ def main(argv):
s.connect((TorUtil.control_host,TorUtil.control_port))
c = TorCtl.Connection(s)
c.debug(file(argv[1]+"/aggregate-control.log", "w", buffering=0))
- c.authenticate_cookie(file(argv[1]+"/tor/control_auth_cookie",
+ c.authenticate_cookie(file(argv[1]+"/tor.1/control_auth_cookie",
"r"))
ns_list = c.get_network_status()
@@ -847,6 +848,7 @@ def main(argv):
plog("INFO", "Avg network +pid_error=+"+str(sum(map(lambda n: n.pid_error, p_nodes))/len(p_nodes)))
plog("INFO", "Avg network -pid_error="+str(sum(map(lambda n: n.pid_error, n_nodes))/len(n_nodes)))
+
plog("INFO",
"Measured "+str(measured_pct) +"% of all tor nodes ("
+str(measured_bw_pct)+"% of previous consensus bw).")
diff --git a/NetworkScanners/BwAuthority/data/scanner.1/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.1/bwauthority.cfg
index 7f81a0b..ad9a4cd 100644
--- a/NetworkScanners/BwAuthority/data/scanner.1/bwauthority.cfg
+++ b/NetworkScanners/BwAuthority/data/scanner.1/bwauthority.cfg
@@ -16,9 +16,9 @@ pid_file = ./data/scanner.1/bwauthority.pid
db_url =
#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan1
#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan1
-tor_dir = ./data/tor
+tor_dir = ./data/tor.1
start_pct = 0
-stop_pct = 10
+stop_pct = 12
save_every = 0
nodes_per_slice = 50
circs_per_node = 5
diff --git a/NetworkScanners/BwAuthority/data/scanner.2/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.2/bwauthority.cfg
index 28cfaa6..3e94e5e 100644
--- a/NetworkScanners/BwAuthority/data/scanner.2/bwauthority.cfg
+++ b/NetworkScanners/BwAuthority/data/scanner.2/bwauthority.cfg
@@ -16,9 +16,9 @@ pid_file = ./data/scanner.2/bwauthority.pid
db_url =
#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan2
#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan2
-tor_dir = ./data/tor
-start_pct = 10
-stop_pct = 40
+tor_dir = ./data/tor.1
+start_pct = 12
+stop_pct = 25
save_every = 0
nodes_per_slice = 50
circs_per_node = 5
diff --git a/NetworkScanners/BwAuthority/data/scanner.3/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.3/bwauthority.cfg
index 7b71aa8..71c3285 100644
--- a/NetworkScanners/BwAuthority/data/scanner.3/bwauthority.cfg
+++ b/NetworkScanners/BwAuthority/data/scanner.3/bwauthority.cfg
@@ -16,9 +16,9 @@ pid_file = ./data/scanner.3/bwauthority.pid
db_url =
#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan3
#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan3
-tor_dir = ./data/tor
-start_pct = 30
-stop_pct = 60
+tor_dir = ./data/tor.1
+start_pct = 25
+stop_pct = 37
save_every = 0
nodes_per_slice = 50
circs_per_node = 5
diff --git a/NetworkScanners/BwAuthority/data/scanner.4/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.4/bwauthority.cfg
index 0dfea36..9a676ec 100644
--- a/NetworkScanners/BwAuthority/data/scanner.4/bwauthority.cfg
+++ b/NetworkScanners/BwAuthority/data/scanner.4/bwauthority.cfg
@@ -16,9 +16,9 @@ pid_file = ./data/scanner.4/bwauthority.pid
db_url =
#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan4
#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan4
-tor_dir = ./data/tor
-start_pct = 60
-stop_pct = 100
+tor_dir = ./data/tor.1
+start_pct = 37
+stop_pct = 50
save_every = 0
nodes_per_slice = 50
circs_per_node = 5
diff --git a/NetworkScanners/BwAuthority/data/scanner.5/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.5/bwauthority.cfg
index 468a62e..1acb1a2 100644
--- a/NetworkScanners/BwAuthority/data/scanner.5/bwauthority.cfg
+++ b/NetworkScanners/BwAuthority/data/scanner.5/bwauthority.cfg
@@ -1,30 +1,31 @@
[TorCtl]
loglevel=WARN
tor_host = 127.0.0.1
-tor_port = 9110
+tor_port = 9120
control_host = 127.0.0.1
-control_port = 9111
+control_port = 9121
control_pass =
# XXX: Unused
meta_host = 127.0.0.1
-meta_port = 9112
+meta_port = 9122
[BwAuthority]
out_dir = ./data/scanner.5/scan-data
pid_file = ./data/scanner.5/bwauthority.pid
# if db_url is unset bwauthority will default to sqlite
-db_url =
-#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan4
-#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan4
-tor_dir = ./data/tor
-start_pct = 0
-stop_pct = 100
+db_url =
+#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan5
+#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan5
+tor_dir = ./data/tor.2
+start_pct = 50
+stop_pct = 62
save_every = 0
nodes_per_slice = 50
circs_per_node = 5
min_streams = 1
-max_fetch_time = 360
+max_fetch_time = 300
sleep_start = 01:30
sleep_stop = 01:30
-only_unmeasured = 1
-min_unmeasured = 5
+only_unmeasured = 0
+min_unmeasured = 0
+
diff --git a/NetworkScanners/BwAuthority/data/scanner.6/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.6/bwauthority.cfg
new file mode 100755
index 0000000..5bc3616
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/scanner.6/bwauthority.cfg
@@ -0,0 +1,30 @@
+[TorCtl]
+loglevel=WARN
+tor_host = 127.0.0.1
+tor_port = 9120
+control_host = 127.0.0.1
+control_port = 9121
+control_pass =
+# XXX: Unused
+meta_host = 127.0.0.1
+meta_port = 9122
+
+[BwAuthority]
+out_dir = ./data/scanner.6/scan-data
+pid_file = ./data/scanner.6/bwauthority.pid
+# if db_url is unset bwauthority will default to sqlite
+db_url =
+#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan6
+#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan6
+tor_dir = ./data/tor.2
+start_pct = 62
+stop_pct = 75
+save_every = 0
+nodes_per_slice = 50
+circs_per_node = 5
+min_streams = 1
+max_fetch_time = 300
+sleep_start = 01:30
+sleep_stop = 01:30
+only_unmeasured = 0
+min_unmeasured = 0
diff --git a/NetworkScanners/BwAuthority/data/scanner.7/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.7/bwauthority.cfg
new file mode 100755
index 0000000..2898b80
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/scanner.7/bwauthority.cfg
@@ -0,0 +1,30 @@
+[TorCtl]
+loglevel=WARN
+tor_host = 127.0.0.1
+tor_port = 9120
+control_host = 127.0.0.1
+control_port = 9121
+control_pass =
+# XXX: Unused
+meta_host = 127.0.0.1
+meta_port = 9122
+
+[BwAuthority]
+out_dir = ./data/scanner.7/scan-data
+pid_file = ./data/scanner.7/bwauthority.pid
+# if db_url is unset bwauthority will default to sqlite
+db_url =
+#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan7
+#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan7
+tor_dir = ./data/tor.2
+start_pct = 75
+stop_pct = 87
+save_every = 0
+nodes_per_slice = 50
+circs_per_node = 5
+min_streams = 1
+max_fetch_time = 300
+sleep_start = 01:30
+sleep_stop = 01:30
+only_unmeasured = 0
+min_unmeasured = 0
diff --git a/NetworkScanners/BwAuthority/data/scanner.8/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.8/bwauthority.cfg
new file mode 100755
index 0000000..56a5cfa
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/scanner.8/bwauthority.cfg
@@ -0,0 +1,30 @@
+[TorCtl]
+loglevel=WARN
+tor_host = 127.0.0.1
+tor_port = 9120
+control_host = 127.0.0.1
+control_port = 9121
+control_pass =
+# XXX: Unused
+meta_host = 127.0.0.1
+meta_port = 9122
+
+[BwAuthority]
+out_dir = ./data/scanner.8/scan-data
+pid_file = ./data/scanner.8/bwauthority.pid
+# if db_url is unset bwauthority will default to sqlite
+db_url =
+#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan8
+#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan8
+tor_dir = ./data/tor.2
+start_pct = 87
+stop_pct = 100
+save_every = 0
+nodes_per_slice = 50
+circs_per_node = 5
+min_streams = 1
+max_fetch_time = 300
+sleep_start = 01:30
+sleep_stop = 01:30
+only_unmeasured = 0
+min_unmeasured = 0
diff --git a/NetworkScanners/BwAuthority/data/scanner.9/bwauthority.cfg b/NetworkScanners/BwAuthority/data/scanner.9/bwauthority.cfg
new file mode 100644
index 0000000..7e49dbb
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/scanner.9/bwauthority.cfg
@@ -0,0 +1,30 @@
+[TorCtl]
+loglevel=WARN
+tor_host = 127.0.0.1
+tor_port = 9120
+control_host = 127.0.0.1
+control_port = 9121
+control_pass =
+# XXX: Unused
+meta_host = 127.0.0.1
+meta_port = 9122
+
+[BwAuthority]
+out_dir = ./data/scanner.9/scan-data
+pid_file = ./data/scanner.9/bwauthority.pid
+# if db_url is unset bwauthority will default to sqlite
+db_url =
+#db_url = mysql+mysqldb://bwscanner:password@127.0.0.1/BwScan9
+#db_url = postgresql://bwscanner:password@127.0.0.1/BwScan9
+tor_dir = ./data/tor.2
+start_pct = 0
+stop_pct = 100
+save_every = 0
+nodes_per_slice = 50
+circs_per_node = 5
+min_streams = 1
+max_fetch_time = 360
+sleep_start = 01:30
+sleep_stop = 01:30
+only_unmeasured = 1
+min_unmeasured = 5
diff --git a/NetworkScanners/BwAuthority/data/scanner.9/scan-data/.gitignore b/NetworkScanners/BwAuthority/data/scanner.9/scan-data/.gitignore
new file mode 100644
index 0000000..20f86df
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/scanner.9/scan-data/.gitignore
@@ -0,0 +1,2 @@
+bws-*
+sql-*
\ No newline at end of file
diff --git a/NetworkScanners/BwAuthority/data/tor.1/torrc b/NetworkScanners/BwAuthority/data/tor.1/torrc
new file mode 100644
index 0000000..933141e
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/tor.1/torrc
@@ -0,0 +1,18 @@
+## Configuration file for metatroller on alternate prot
+SocksPort 9110 # what port to advertise for application connections
+ControlPort 9111
+SafeLogging 0
+Log notice file ./data/tor.1/tor.log
+DataDirectory ./data/tor.1
+PidFile ./data/tor.1/tor.pid
+CookieAuthentication 1
+FetchUselessDescriptors 1
+__LeaveStreamsUnattached 1
+
+# Bad idea? Too much consensus update activity?
+FetchDirInfoExtraEarly 1
+FetchDirInfoEarly 1
+
+# Use CREATE cells for first hop, so we can still measure CPU overload via
+# circ failure
+FastFirstHopPK 0
diff --git a/NetworkScanners/BwAuthority/data/tor.2/torrc b/NetworkScanners/BwAuthority/data/tor.2/torrc
new file mode 100755
index 0000000..209781f
--- /dev/null
+++ b/NetworkScanners/BwAuthority/data/tor.2/torrc
@@ -0,0 +1,18 @@
+## Configuration file for metatroller on alternate prot
+SocksPort 9120 # what port to advertise for application connections
+ControlPort 9121
+SafeLogging 0
+Log notice file ./data/tor.2/tor.log
+DataDirectory ./data/tor.2
+PidFile ./data/tor.2/tor.pid
+CookieAuthentication 1
+FetchUselessDescriptors 1
+__LeaveStreamsUnattached 1
+
+# Bad idea? Too much consensus update activity?
+FetchDirInfoExtraEarly 1
+FetchDirInfoEarly 1
+
+# Use CREATE cells for first hop, so we can still measure CPU overload via
+# circ failure
+FastFirstHopPK 0
diff --git a/NetworkScanners/BwAuthority/data/tor/torrc b/NetworkScanners/BwAuthority/data/tor/torrc
deleted file mode 100644
index c64273b..0000000
--- a/NetworkScanners/BwAuthority/data/tor/torrc
+++ /dev/null
@@ -1,18 +0,0 @@
-## Configuration file for metatroller on alternate prot
-SocksPort 9110 # what port to advertise for application connections
-ControlPort 9111
-SafeLogging 0
-Log notice file ./data/tor/tor.log
-DataDirectory ./data/tor
-PidFile ./data/tor/tor.pid
-CookieAuthentication 1
-FetchUselessDescriptors 1
-__LeaveStreamsUnattached 1
-
-# Bad idea? Too much consensus update activity?
-FetchDirInfoExtraEarly 1
-FetchDirInfoEarly 1
-
-# Use CREATE cells for first hop, so we can still measure CPU overload via
-# circ failure
-FastFirstHopPK 0
diff --git a/NetworkScanners/BwAuthority/run_scan.sh b/NetworkScanners/BwAuthority/run_scan.sh
index 8a71b1d..908b76e 100755
--- a/NetworkScanners/BwAuthority/run_scan.sh
+++ b/NetworkScanners/BwAuthority/run_scan.sh
@@ -1,7 +1,9 @@
#!/bin/sh
-# Number of scanners to run.
-SCANNER_COUNT=5
+# Number of applications to run.
+SCANNERS_PER_TOR_COUNT=4
+TOR_COUNT=2
+SCANNER_COUNT=$(($SCANNERS_PER_TOR_COUNT * $TOR_COUNT + 1))
# This tor must have the w status line fix as well as the stream bw fix
# Ie git master or 0.2.2.x
@@ -19,15 +21,17 @@ for n in `seq $SCANNER_COUNT`; do
done
KILLED_TOR=false
-if [ -f "./data/tor/tor.pid" ]; then
- PID=`cat ./data/tor/tor.pid`
- if kill -0 "$PID" 2>/dev/null; then # it is a running process and we may send signals to it
- kill $PID
- if [ $? -eq 0 ]; then
- KILLED_TOR=true
+for n in `seq $TOR_COUNT`; do
+ PIDFILE=./data/tor.${n}/tor.pid
+ if [ -f $PIDFILE ]; then
+ if kill -0 `head -1 $PIDFILE` 2>/dev/null; then # it is a running process and we may send signals to it
+ kill `head -1 $PIDFILE`
+ if [ $? -eq 0 ]; then
+ KILLED_TOR=true
+ fi
fi
fi
-fi
+done
sleep 5
@@ -35,9 +39,10 @@ sleep 5
# A more accurate resume could be implemented in bwauthority.py
find data/scanner.* -name .svn -prune -o -type f -a ! -name '*-done-*' -a ! -name bwauthority.cfg -a ! -name .gitignore -exec rm {} +
-rm -f ./data/tor/tor.log
-
-$TOR_EXE -f ./data/tor/torrc &
+for n in `seq $TOR_COUNT`; do
+ rm -f ./data/tor.${n}/tor.log
+ $TOR_EXE -f ./data/tor.${n}/torrc &
+done
# If this is a fresh start, we should allow the tors time to download
# new descriptors.