We recently changed the bootstrap percentages and messages in Tor. Please paste the log lines that containing these bootstrap messages. And any error messages near those lines.
Feb 14 10:37:46.000 [notice] Bootstrapped 10%: Finishing handshake with directory server Feb 14 10:38:32.000 [notice] I learned some more directory information, but not enough to build a circuit: We have no usable consensus. Feb 14 10:38:32.000 [notice] I learned some more directory information, but not enough to build a circuit: We have no usable consensus. Feb 14 10:38:32.000 [notice] The current consensus has no exit nodes. Tor can only build internal paths, such as paths to onion services. Feb 14 10:38:32.000 [notice] Bootstrapped 45%: Asking for relay descriptors for internal paths Feb 14 10:38:32.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/9, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.) Feb 14 10:38:32.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/9, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of end bw (no exits in consensus, using mid) = 0% of path bw.) Feb 14 10:38:32.000 [notice] The current consensus contains exit nodes. Tor can build exit and internal paths. Feb 14 10:38:32.000 [notice] Bootstrapped 50%: Loading relay descriptors Feb 14 10:38:32.000 [notice] Bootstrapped 80%: Connecting to the Tor network Feb 14 10:38:33.000 [warn] Failed to find node for hop #1 of our path. Discarding this circuit. Feb 14 10:38:33.000 [notice] Our circuit 0 (id: 1) died due to an invalid selected path, purpose General-purpose client. This may be a torrc configuration issue, or a bug. Feb 14 10:38:34.000 [warn] Failed to find node for hop #1 of our path. Discarding this circuit. Feb 14 10:38:35.000 [warn] Failed to find node for hop #1 of our path. Discarding this circuit. Feb 14 10:38:36.000 [warn] Failed to find node for hop #1 of our path. Discarding this circuit.
To get good bandwidth numbers, you'll need to pass some traffic through your network. To get measured bandwidth in the votes, you'll need to run a bandwidth authority, like sbws: https://git.torproject.org/sbws.git
Is this optional, are there alternative ways of measuring bandwidth?
It would help to know what's actually in the consensus. (See below.)
I pasted one of the microdescriptors at the end of the message (it's fetched from one of the authorities).
Maybe there's a bug in ShutdownWaitLength. We changed that code recently. Is Tor actually shut down when you remove the files?
It is definitely shut down when I start deleting the files.
When you start Tor, what is actually in the data directory?
I followed your idea of defining and deleting directories so now there are data/ cache/ and keys/ defined in the torrc and this is what I remove in the cleanup procedure. I keep the keys dir, the stats file, and the fingerprint file. The issue with old Guard entries in the new state file remains.
tor/server/all is a list of all relay descriptors that the authority knows about.
But the consensus is different: it contains the relays from the authorities' votes, but only if those relays are reachable from the authorities (the Running flag), and the authorities agree on enough info about the relays.
Please check the votes and consensuses on each authority: http://<hostname>/tor/status-vote/current/authority http://<hostname>/tor/status-vote/current/consensus http://<hostname>/tor/status-vote/current/consensus-microdesc
One of the microdesc files is pasted below. I see the Running flag set for several relays, along with Fast, Guard, and sometimes also Exit (for example, relay08 is defined as exit in the torrc and also shows up as Exit Fast Guard HSDir Running Stable V2Dir Valid).
That's not how Tor works:
Clients randomly select relays from the consensus.
Yes, and this is exactly what I need to measure in the private network. My project is about testing the consequences of the DoS features in relays and how the client reacts to being blocked (if it recognizes this at all, that's one of the things I want to find out).
Can you copy and paste the code you're using?
It's just a simple extendcircuit 0 FP,FP,FP,... for testing the network status. If the network starts functioning normally again, I need to use either NEWNYM via the controlport or stem and new_circuit(). But right now I don't get to this point, because NEWNYM results in no new circuit and also the stem implementation does not deliver new circuits. Just to give an example:
getinfo circuit-status 250-circuit-status= 250 OK signal newnym 250 OK getinfo circuit-status 250-circuit-status= 250 OK extendcircuit 0 2B74825BE33752B21D17713F88D101F3BADC79BC,7353D324677B9E7A9A50240339C2C7366B381F64 250 EXTENDED 610 getinfo circuit-status 250-circuit-status=610 BUILT $2B74825BE33752B21D17713F88D101F3BADC79BC~relay06,$7353D324677B9E7A9A50240339C2C7366B381F64~relay08 PURPOSE=GENERAL TIME_CREATED=2019-02-14T13:44:27.304736 250 OK
The dates are the time when Tor chose the guard. Maybe you're not actually deleting the state file? Maybe there's an undocumented state.new file?
I'm pretty much sure I delete the file and that there are no .new versions of the state file. Still, after a while the old Guards show up in the state file. What information is used to generate the state file? Maybe there is still some kind of cache left somewhere else?
What's in the directory after you run the script?
Removing specific files is inherently fragile: future Tor versions may add new files.
Instead, configure different directories for CacheDirectory, DataDirectory, and KeyDirectory. Then, delete and re-create CacheDirectory and DataDirectory. Fail and refuse to start Tor if the deletion and re-creation fails.
Great idea, did that! Nothing but the keys and fingerprint in there, as described above.
I think I answered these questions above in context.
Yes you did and things are getting clearer :)
Let me know if you're still having trouble.
Yes, the setup is still not in the state where the client is able to create "natural" circuits.
network-status-version 3 microdesc vote-status consensus consensus-method 28 valid-after 2019-02-14 11:05:00 fresh-until 2019-02-14 11:10:00 valid-until 2019-02-14 11:20:00 voting-delay 20 20 client-versions server-versions known-flags Authority Exit Fast Guard HSDir NoEdConsensus Running Stable V2Dir Valid recommended-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 recommended-relay-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 required-client-protocols Cons=1-2 Desc=1-2 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=4 Microdesc=1-2 Relay=2 required-relay-protocols Cons=1 Desc=1 DirCache=1 HSDir=1 HSIntro=3 HSRend=1 Link=3-4 Microdesc=1 Relay=1-2 shared-rand-current-value 0 zxJao+gBmFMSezvz/VXkEWEQJD5b/z+7AXNCGoLFVW0= dir-source auth01 14EA360AE456079B386651CDEA2996A6D48F1798 100.113.5.34 100.113.5.34 7000 5000 contact katharina.kohls@rub.de vote-digest 0E3E3697D3CC785928FE2B27B43E272BB7D52650 dir-source auth01 92E466CD419200DE68A4893EA5A758DAE70EFD9E 100.113.5.29 100.113.5.29 7000 5000 contact katharina.kohls@rub.de vote-digest 3ADC1A8BF96D74C661DF5797D2EE59FAB899DC00 r client01 BhCZoOQt0RnwUth3dUbyVVP9wxM 2019-02-14 09:37:31 100.113.5.28 5000 0 m ZCRB9OyxE3+HOAgd/Sl4ewcNfFkAlq5S/QfCT3HH/wY s Fast Running V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r relay06 K3SCW+M3UrIdF3E/iNEB87rcebw 2019-02-14 09:37:30 100.113.5.36 5000 0 m TvN1yotIqxUIb2Pnz8LuVnseijh/NZDqu+ZCpqRDCQA s Exit Fast Guard HSDir Running Stable V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r auth01 Qx5QzbsLb/3QKEpFq+yHUTbZgOg 2019-02-14 09:37:46 100.113.5.34 5000 7000 m idNUa5gHlZC03yfL4Wy+NgnPRxl9+9xrFbVL0uNqcr0 s Authority Fast Running V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r relay08 c1PTJGd7nnqaUCQDOcLHNms4H2Q 2019-02-14 09:37:30 100.113.5.35 5000 0 m r1L2yrAoe3E/H3LDmGrIzeCiaKAINS17Ddg1a36LXBc s Exit Fast Guard HSDir Running Stable V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r relay05 jldPDEKNI1eCBh9EstIKZuQzaZM 2019-02-14 09:37:30 100.113.5.38 5000 0 m /EeM/KjGfYM3wQbSW44UNPhNACHFmdjoyqPtbUmVyJU s Fast Guard HSDir Running Stable V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r relay02 kR7abLY5qulVUX8Cqk1lHg9/bv0 2019-02-14 09:37:30 100.113.5.31 5000 0 m wHYw+7ts0/eNWjBtMNynbA+5Abv5tPzvAEjJjxpOtIA s Fast Guard HSDir Running Stable V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r auth01 shi3iGTO9Dl87grvYXA0We7mTjg 2019-02-14 09:38:31 100.113.5.29 5000 7000 m rtksCdOu7iyIyQjbnWUWmJiN0o94+KKWR8WLvV9s1rw s Authority Exit Fast Guard Running V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r relay03 wSLLt53GYGIeNS1AGtf3gfj21i0 2019-02-14 09:37:31 100.113.5.32 5000 0 m aU27kuVh12aIDWmNl28KULvpijEzNpFkJ09SXpZdOwg s Exit Fast Running V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 r relay07 5LEVLN8OX+aXo+kWcW/DY6KgrPM 2019-02-14 09:37:30 100.113.5.37 5000 0 m fkaGwNIKBFlluhAhEDKuHsZl/LocsJ6v0YVBzkQip8A s Exit Fast Guard HSDir Running Stable V2Dir Valid v Tor 0.3.5.7 pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=0 Unmeasured=1 directory-footer bandwidth-weights Wbd=3333 Wbe=0 Wbg=0 Wbm=10000 Wdb=10000 Web=10000 Wed=3333 Wee=10000 Weg=3333 Wem=10000 Wgb=10000 Wgd=3333 Wgg=10000 Wgm=10000 Wmb=10000 Wmd=3333 Wme=0 Wmg=0 Wmm=10000 directory-signature sha256 14EA360AE456079B386651CDEA2996A6D48F1798 35B12EA25BB95F35BCAB63B5E7321DFE56F6EF32 -----BEGIN SIGNATURE----- YMdJPt/tjwkDIycPVUIMVEeZGrLt6lzoqbiDXu04/6t7Hz6lcgduL6+pJ9cyNqcP +u788vl6eL+yli1KySoPirnAdIIrHBM0xa3P5BN/nmcvjwzQXRx9gg1XG28BRt76 Rmfd+AAKF3PycnQDu8T9wT9bvk48+nPt60VOs0BrMot8L27sJr9+G2vi+KiyaW6b klJuGWYsbOcK/aPX63bx/PfdY4vSgT9W36kXOU8UtzYM9ILdsZFua84Gn6THzyEu 9Da9FlUOfDmEto3TuLppjP2kLjWxG5WDqzC3VQm39rdFgNTAERjMELND9KZqlcrD CHoGkbskkrRoUevUAF1E+g== -----END SIGNATURE----- directory-signature sha256 92E466CD419200DE68A4893EA5A758DAE70EFD9E EBF4ADA3B6557BF648F19B172172C341AE2730E6 -----BEGIN SIGNATURE----- rK70R9PDhm8zL33ThazFutHz6IBRLavI8k96plIR6bayaNLapZUWIbOAYTNW9pYv PNZwRBTTtTkahjYLNp3PSyGAzXOk7+E3iSIhTr8LBBryfihtThYWeyz4CjBTkTXj kQLddWS/knx9ZaovLAMzEXNBtflxSlf5W5/AXCHYzP3i+ssV/rxfBcHHZzayYdBG 175335s1VsjjlQYFHkuilnF++t14nFhL7Qeu7zmFaQ6IMUudwgctKgt+3xM8P8B+ /4N2NRFADSAN8gD7TfS593y1E737qJ/eznlxB4O+aRZw//6MqirNNaB3evNKiYSH /oFqSvEYnGAiVerccLOeVQ== -----END SIGNATURE-----