From 933e49a8b29232d4dc2d430b25868ca0ffea6caf Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Wed, 5 Jun 2013 15:48:57 +0200 Subject: 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. --- tools/bootstrap-network.sh | 40 ++++++++++++++++++++++++++++++++++++++++ torrc_templates/authority.tmpl | 4 ++++ torrc_templates/client.tmpl | 4 ++++ torrc_templates/relay.tmpl | 4 ++++ 4 files changed, 52 insertions(+) create mode 100755 tools/bootstrap-network.sh diff --git a/tools/bootstrap-network.sh b/tools/bootstrap-network.sh new file mode 100755 index 0000000..cd18e3d --- /dev/null +++ b/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 diff --git a/torrc_templates/authority.tmpl b/torrc_templates/authority.tmpl index 6e18d86..7bf99af 100644 --- a/torrc_templates/authority.tmpl +++ b/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 diff --git a/torrc_templates/client.tmpl b/torrc_templates/client.tmpl index aa86c01..1eb1d99 100644 --- a/torrc_templates/client.tmpl +++ b/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 diff --git a/torrc_templates/relay.tmpl b/torrc_templates/relay.tmpl index 09dd1f0..2f4b7f1 100644 --- a/torrc_templates/relay.tmpl +++ b/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 -- cgit v1.2.3