Browse Source

Add new networks for performance testing

Each network has exits flagged with exit=1
teor 8 years ago
parent
commit
bbc3ecbb76
7 changed files with 105 additions and 0 deletions
  1. 21 0
      networks/bridges+ipv6-min
  2. 20 0
      networks/bridges-min
  3. 10 0
      networks/hs-025
  4. 12 0
      networks/hs-100
  5. 13 0
      networks/hs-100-clients
  6. 17 0
      networks/hs-min
  7. 12 0
      networks/ipv6-exit-min

+ 21 - 0
networks/bridges+ipv6-min

@@ -0,0 +1,21 @@
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+ExitRelay = Node(tag="r", relay=1, exit=1, torrc="relay.tmpl")
+
+BridgeAuthority = Node(tag="ba", authority=1, bridgeauthority=1,
+                       relay=1, torrc="bridgeauthority.tmpl")
+BridgeIPv6 = Node(tag="br", bridge=1, relay=1, ipv6_addr="[::1]",
+                  torrc="bridge-v6.tmpl")
+BridgeClient = Node(tag="bc", torrc="bridgeclient.tmpl")
+
+# Since only 25% of relays get the guard flag,
+# TestingDirAuthVoteGuard * may need to be used in small networks
+# (However, bridge clients use bridges instead of guards, so this
+# is only an issue for the exit bootstrapping)
+
+# The minimum number of authorities/relays/exits is 3, the minimum path length
+# But bridge networks with 3 relays don't bootstrap, so we use 4
+NODES = Authority.getN(1) + BridgeAuthority.getN(1) + ExitRelay.getN(1) + \
+        BridgeIPv6.getN(1) + BridgeClient.getN(1)
+
+ConfigureNodes(NODES)

+ 20 - 0
networks/bridges-min

@@ -0,0 +1,20 @@
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+ExitRelay = Node(tag="r", relay=1, exit=1, torrc="relay.tmpl")
+
+BridgeAuthority = Node(tag="ba", authority=1, bridgeauthority=1,
+                       relay=1, torrc="bridgeauthority.tmpl")
+Bridge = Node(tag="br", bridge=1, relay=1, torrc="bridge.tmpl")
+BridgeClient = Node(tag="bc", torrc="bridgeclient.tmpl")
+
+# Since only 25% of relays get the guard flag,
+# TestingDirAuthVoteGuard * may need to be used in small networks
+# (However, bridge clients use bridges instead of guards, so this
+# is only an issue for the exit bootstrapping)
+
+# The minimum number of authorities/relays/exits is 3, the minimum path length
+# But bridge networks with 3 relays don't bootstrap, so we use 4
+NODES = Authority.getN(1) + BridgeAuthority.getN(1) + ExitRelay.getN(1) + \
+        Bridge.getN(1) + BridgeClient.getN(1)
+
+ConfigureNodes(NODES)

+ 10 - 0
networks/hs-025

@@ -0,0 +1,10 @@
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl")
+Client = Node(tag="c", torrc="client.tmpl")
+HS = Node(tag="h", hs=1, torrc="hs.tmpl")
+
+NODES = Authority.getN(4) + NonExitRelay.getN(10) + \
+        Client.getN(6) + HS.getN(5)
+
+ConfigureNodes(NODES)

+ 12 - 0
networks/hs-100

@@ -0,0 +1,12 @@
+# WARNING: This network can bring down a low-specced machine
+
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl")
+Client = Node(tag="c", torrc="client.tmpl")
+HS = Node(tag="h", hs=1, torrc="hs.tmpl")
+
+NODES = Authority.getN(5) + NonExitRelay.getN(25) + \
+        Client.getN(10) + HS.getN(60)
+
+ConfigureNodes(NODES)

+ 13 - 0
networks/hs-100-clients

@@ -0,0 +1,13 @@
+# Each client sends to the hidden service simultaneously
+# This requires the appropriate chutney arguments to make each client send data
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl")
+Client = Node(tag="c", torrc="client.tmpl")
+HS = Node(tag="h", hs=1, torrc="hs.tmpl")
+
+# Well, 100 instances, with lots of clients
+NODES = Authority.getN(3) + NonExitRelay.getN(10) + \
+        Client.getN(86) + HS.getN(1)
+
+ConfigureNodes(NODES)

+ 17 - 0
networks/hs-min

@@ -0,0 +1,17 @@
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl")
+Client = Node(tag="c", torrc="client.tmpl")
+HS = Node(tag="h", hs=1, torrc="hs.tmpl")
+
+# Since only 25% of relays get the guard flag,
+# TestingDirAuthVoteGuard * may need to be used in small networks
+
+# A hidden service needs 5 authorities/relays to ensure it can build HS
+# connections:
+# a minimum path length of 3, plus the client-nominated rendezvous point,
+# plus a seperate introduction point
+NODES = Authority.getN(3) + NonExitRelay.getN(2) + \
+        Client.getN(1) + HS.getN(1)
+
+ConfigureNodes(NODES)

+ 12 - 0
networks/ipv6-exit-min

@@ -0,0 +1,12 @@
+# By default, Authorities are not configured as exits
+Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl")
+IPv6ExitRelay = Node(tag="r", relay=1, exit=1, torrc="relay-exit-v6-only.tmpl")
+Client = Node(tag="c", torrc="client.tmpl")
+
+# Since only 25% of relays get the guard flag,
+# TestingDirAuthVoteGuard * may need to be used in small networks
+
+# The minimum number of authorities/relays/exits is 3, the minimum path length
+NODES = Authority.getN(2) + IPv6ExitRelay.getN(1) + Client.getN(1)
+
+ConfigureNodes(NODES)