import os
# By default, Authorities are not configured as exits
Authority6 = Node(tag="a", authority=1, relay=1,
                  ipv6_addr=os.environ.get('CHUTNEY_LISTEN_ADDRESS_V6',
                                           '[::1]'),
                  torrc="authority-orport-v6.tmpl")
ExitRelay6 = Node(tag="r", relay=1, exit=1,
                  ipv6_addr=os.environ.get('CHUTNEY_LISTEN_ADDRESS_V6',
                                           '[::1]'),
                  torrc="relay-orport-v6-exit.tmpl")
HS = Node(tag="h", hs=1, torrc="hs.tmpl")
Client6 = Node(tag="c", client=1, torrc="client-only-v6-md.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
# But for some reason, Tor wants 4 "acceptable routers" (Tor bug #20071)
NODES = Authority6.getN(3) + ExitRelay6.getN(1) + HS.getN(1) + Client6.getN(1)

ConfigureNodes(NODES)