Browse Source

Use new Tor option TestingV3AuthVotingStartOffset to bootstrap quicker.

Note that this match makes us require Tor with support for
TestingV3AuthVotingStartOffset, something which is not in any released
Tor yet.

Note also that the way TestingV3AuthVotingStartOffset is set in the
torrc's is not very Chutneyesk -- it should use the templating system.
Linus Nordberg 11 years ago
parent
commit
933e49a8b2

+ 40 - 0
tools/bootstrap-network.sh

@@ -0,0 +1,40 @@
+#! /bin/sh
+#
+# 1. potentially stop running network
+# 2. bootstrap a network from scratch as quickly as possible
+# 3. tail -F all the tor log files
+#
+# NOTE: leaves debris around by renaming directory net/nodes
+#       and creating a new net/nodes
+#
+# Usage:
+#    cd YOUR-CHUTNEY-DIRECTORY
+#    tools/bootstrap-network.sh [network-flavour]
+#    network-flavour: one of the files in the networks directory,
+#                     (default: 'basic')
+#
+
+VOTING_OFFSET=6
+CHUTNEY=./chutney
+
+[ -x $CHUTNEY ] || { echo "$0: missing $CHUTNEY"; exit 1; }
+[ -d networks ] || { echo "$0: missing directory: networks"; exit 1; }
+[ -d net ] || { echo "$0: missing directory: net"; exit 1; }
+flavour=basic; [ -n "$1" ] && { flavour=$1; shift; }
+
+$CHUTNEY stop networks/$flavour
+[ -d net/nodes ] && mv net/nodes net/nodes.$(date +%s)
+echo "$0: boostrapping network: $flavour"
+$CHUTNEY configure networks/$flavour
+
+# TODO: Make 'chutney configure' take an optional offset argument and
+# use the templating system in Chutney to set this instead of editing
+# files like this.
+offset=$(expr \( $(date +%s) + $VOTING_OFFSET \) % 300)
+CONFOPT="TestingV3AuthVotingStartOffset"
+for file in net/nodes/*a/torrc; do
+    sed -i.bak -e "s/^${CONFOPT}.*$/${CONFOPT} $offset/1" $file
+done
+
+$CHUTNEY start networks/$flavour
+tail -F net/nodes/*/notice.log

+ 4 - 0
torrc_templates/authority.tmpl

@@ -3,3 +3,7 @@ AuthoritativeDirectory 1
 V3AuthoritativeDirectory 1
 ContactInfo auth${nodenum}@test.test
 ExitPolicy reject *:*
+TestingV3AuthInitialVotingInterval 300
+TestingV3AuthInitialVoteDelay 2
+TestingV3AuthInitialDistDelay 2
+TestingV3AuthVotingStartOffset 0

+ 4 - 0
torrc_templates/client.tmpl

@@ -1,2 +1,6 @@
 ${include:common.i}
 SocksPort $socksport
+#NOTE: Setting TestingClientConsensusDownloadSchedule doesn't
+#      help -- dl_stats.schedule is not DL_SCHED_CONSENSUS
+#      at boostrap time.
+TestingClientDownloadSchedule 10, 2, 2, 4, 4, 8, 13, 18, 25, 40, 60

+ 4 - 0
torrc_templates/relay.tmpl

@@ -3,3 +3,7 @@ SocksPort 0
 OrPort $orport
 Address $ip
 DirPort $dirport
+#NOTE: Setting TestingServerConsensusDownloadSchedule doesn't
+#      help -- dl_stats.schedule is not DL_SCHED_CONSENSUS
+#      at boostrap time.
+TestingServerDownloadSchedule 10, 2, 2, 4, 4, 8, 13, 18, 25, 40, 60