bootstrap-network.sh 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #! /bin/sh
  2. #
  3. # 1. potentially stop running network
  4. # 2. bootstrap a network from scratch as quickly as possible
  5. # 3. tail -F all the tor log files
  6. #
  7. # NOTE: leaves debris around by renaming directory net/nodes
  8. # and creating a new net/nodes
  9. #
  10. # Usage:
  11. # tools/bootstrap-network.sh [network-flavour]
  12. # network-flavour: one of the files in the networks directory,
  13. # (default: 'basic')
  14. #
  15. # make chutney path absolute
  16. if [ -d "$PWD/$CHUTNEY_PATH" ]; then
  17. export CHUTNEY_PATH="$PWD/$CHUTNEY_PATH"
  18. elif [ ! -d "$CHUTNEY_PATH" ]; then
  19. export CHUTNEY_PATH="$PWD"
  20. fi
  21. VOTING_OFFSET=6
  22. CHUTNEY="$CHUTNEY_PATH/chutney"
  23. myname=$(basename "$0")
  24. [ -d "$CHUTNEY_PATH" ] || \
  25. { echo "$myname: missing chutney directory: $CHUTNEY_PATH"; exit 1; }
  26. [ -x "$CHUTNEY" ] || \
  27. { echo "$myname: missing chutney: $CHUTNEY"; exit 1; }
  28. flavour=basic; [ -n "$1" ] && { flavour=$1; shift; }
  29. export CHUTNEY_NETWORK="$CHUTNEY_PATH/networks/$NETWORK_FLAVOUR"
  30. [ -e "$CHUTNEY_NETWORK" ] || \
  31. { echo "$myname: missing network file: $CHUTNEY_NETWORK"; exit 1; }
  32. # Chutney must be launched at $CHUTNEY_PATH, at least until #21521 is fixed
  33. cd "$CHUTNEY_PATH"
  34. "$CHUTNEY" stop "$CHUTNEY_NETWORK"
  35. echo "$myname: bootstrapping network: $flavour"
  36. "$CHUTNEY" configure "$CHUTNEY_NETWORK"
  37. # TODO: Make 'chutney configure' take an optional offset argument and
  38. # use the templating system in Chutney to set this instead of editing
  39. # files like this.
  40. offset=$(expr \( $(date +%s) + $VOTING_OFFSET \) % 300)
  41. CONFOPT="TestingV3AuthVotingStartOffset"
  42. for file in "$CHUTNEY_PATH"/net/nodes/*a/torrc ; do
  43. sed -i.bak -e "s/^${CONFOPT}.*$/${CONFOPT} $offset/1" $file
  44. done
  45. "$CHUTNEY" start "$CHUTNEY_NETWORK"
  46. sleep 1
  47. "$CHUTNEY" status "$CHUTNEY_NETWORK"
  48. #echo "tail -F net/nodes/*/notice.log"