commit ebf320d72927af5c6b2e8474ca844b16cbbe4dbf Author: teor teor@torproject.org Date: Wed Feb 19 16:20:12 2020 +1000
networks: Add extra authorities so relays bootstrap
Authorities and relays need 3 *other* authorities/relays to bootstrap. And Tor 0.3.5 needs 5 authorities/relays in the consensus.
We add authorities, because some networks only have one relay or exit, to make sure all paths go through that relay/exit.
Part of 33232. --- networks/basic-min | 6 +++++- networks/bridges+ipv6-min | 6 ++++-- networks/bridges-min | 8 ++++++-- networks/hs-v2-min | 5 ++++- networks/hs-v23-min | 5 ++++- networks/hs-v3-min | 5 ++++- networks/ipv6-exit-min | 6 +++++- 7 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/networks/basic-min b/networks/basic-min index e5e0187..ffcf300 100644 --- a/networks/basic-min +++ b/networks/basic-min @@ -7,6 +7,10 @@ Client = Node(tag="c", client=1, torrc="client.tmpl") # 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) + ExitRelay.getN(1) + Client.getN(1) +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# Due to microdec download issues, tor 0.3.5 needs at least 5 +# authorities/relays/exits in the consensus. +NODES = Authority.getN(4) + ExitRelay.getN(1) + Client.getN(1)
ConfigureNodes(NODES) diff --git a/networks/bridges+ipv6-min b/networks/bridges+ipv6-min index 34c2063..cdf6dc7 100644 --- a/networks/bridges+ipv6-min +++ b/networks/bridges+ipv6-min @@ -15,8 +15,10 @@ BridgeClient = Node(tag="bc", client=1, bridgeclient=1, torrc="bridgeclient.tmpl # 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) + \ +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# (Bridges don't count, because they're not in the consensus.) +NODES = Authority.getN(2) + BridgeAuthority.getN(1) + ExitRelay.getN(1) + \ BridgeIPv6.getN(1) + BridgeClient.getN(1)
ConfigureNodes(NODES) diff --git a/networks/bridges-min b/networks/bridges-min index 6ad3c75..f8ec732 100644 --- a/networks/bridges-min +++ b/networks/bridges-min @@ -13,8 +13,12 @@ BridgeClient = Node(tag="bc", client=1, bridgeclient=1, torrc="bridgeclient.tmpl # 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) + \ +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# (Bridges don't count, because they're not in the consensus.) +# Due to microdec download issues, tor 0.3.5 needs at least 5 +# authorities/relays/exits in the consensus. +NODES = Authority.getN(3) + BridgeAuthority.getN(1) + ExitRelay.getN(1) + \ Bridge.getN(1) + BridgeClient.getN(1)
ConfigureNodes(NODES) diff --git a/networks/hs-v2-min b/networks/hs-v2-min index 461c56e..e7eb52c 100644 --- a/networks/hs-v2-min +++ b/networks/hs-v2-min @@ -9,7 +9,10 @@ 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 +# The minimum number of authorities/relays/exits is 3, the minimum path length +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# A hidden service also 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 diff --git a/networks/hs-v23-min b/networks/hs-v23-min index 4732520..5c6ac8e 100644 --- a/networks/hs-v23-min +++ b/networks/hs-v23-min @@ -8,7 +8,10 @@ HSv3 = Node(tag="h", hs=1, torrc="hs-v3.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 +# The minimum number of authorities/relays/exits is 3, the minimum path length +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# A hidden service also 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 diff --git a/networks/hs-v3-min b/networks/hs-v3-min index 20709d9..56f15cb 100644 --- a/networks/hs-v3-min +++ b/networks/hs-v3-min @@ -7,7 +7,10 @@ HS = Node(tag="h", hs=1, torrc="hs-v3.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 +# The minimum number of authorities/relays/exits is 3, the minimum path length +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# A hidden service also 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 diff --git a/networks/ipv6-exit-min b/networks/ipv6-exit-min index df54574..2771298 100644 --- a/networks/ipv6-exit-min +++ b/networks/ipv6-exit-min @@ -8,6 +8,10 @@ Client = Node(tag="c", client=1, torrc="client.tmpl") # 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) +# But relays and authorities need 1 extra node, because they won't make a path +# that includes themselves. +# Due to microdec download issues, tor 0.3.5 needs at least 5 +# authorities/relays/exits in the consensus. +NODES = Authority.getN(4) + IPv6ExitRelay.getN(1) + Client.getN(1)
ConfigureNodes(NODES)
tor-commits@lists.torproject.org