<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr/src/lib.rs, branch arti-v0.0.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.0.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2021-10-27T15:13:46Z</updated>
<entry>
<title>Update our disclaimers and limitations sections.</title>
<updated>2021-10-27T15:13:46Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-27T15:13:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=134c04a67adebff719011b608dabfa6da60ed247'/>
<id>urn:sha1:134c04a67adebff719011b608dabfa6da60ed247</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement a "lightweight" form of pathbias detection.</title>
<updated>2021-10-26T16:03:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-25T15:06:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8c69b5d389a71e19054f13b973ea9d0e74f28ca9'/>
<id>urn:sha1:8c69b5d389a71e19054f13b973ea9d0e74f28ca9</id>
<content type='text'>
We now track, for every guard: the total number of successful
circuits we've built through it, along with the total number of
"indeterminate" circuits.

Recall that a circuit's status is "indeterminate" if it has failed
for a reason that _might_ be the guard's fault, or might not be the
guard's fault.  For example, if extending to the second hop of the
circuit fails, we have no way to know whether the guard deliberately
refused to connect there, or whether the second hop is just offline.

But we don't want to forgive all indeterminate circuit failures: if
we did, then a malicious guard could simply reject any second hops
that it didn't like, thereby filtering the client into a chosen
set of circuits.

As a stopgap solution, this patch now makes guards become
permanently disabled if the fraction of their circuit failures
becomes too high.

See also general-purpose path bias selection (arti#65), and Mike's
idea for changing the guard reachability definition (torspec#67).
This patch doesn't do either of those.

Closes #185.
</content>
</entry>
<entry>
<title>Merge branch 'share_state'</title>
<updated>2021-10-21T17:34:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-21T17:34:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f3dc66d9646ae016dfad8808145d2d3249078d15'/>
<id>urn:sha1:f3dc66d9646ae016dfad8808145d2d3249078d15</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement the guard side of shared state directories.</title>
<updated>2021-10-21T17:31:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-21T17:31:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8a99833777b81cb3cad7ea677510f9c886967401'/>
<id>urn:sha1:8a99833777b81cb3cad7ea677510f9c886967401</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Finish the timeout-inference side of shared state.</title>
<updated>2021-10-20T17:13:15Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-20T17:13:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c8cfbda3394b6541deb09e9116cb495587f1318f'/>
<id>urn:sha1:c8cfbda3394b6541deb09e9116cb495587f1318f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace the return type of StorageMgr::try_lock with a tristate</title>
<updated>2021-10-20T13:37:53Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-20T13:37:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7b6ed9dab6a673b9b563fa3818806cec4b208240'/>
<id>urn:sha1:7b6ed9dab6a673b9b563fa3818806cec4b208240</id>
<content type='text'>
It's useful to know now only if we now have the lock, but also if we
just got it for the first time.
</content>
</entry>
<entry>
<title>Fix most warnings from nightly.</title>
<updated>2021-10-19T20:21:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-19T20:21:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=445ec6d22053d3f76534844b6c02aefa1fbaedd7'/>
<id>urn:sha1:445ec6d22053d3f76534844b6c02aefa1fbaedd7</id>
<content type='text'>
(One represents code that I forgot to write.)
</content>
</entry>
<entry>
<title>Initial work on periodically reloading state.</title>
<updated>2021-10-19T15:26:22Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-19T15:26:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=89d1fb1767579b2a7cb8b2e15036847c8de5d4f4'/>
<id>urn:sha1:89d1fb1767579b2a7cb8b2e15036847c8de5d4f4</id>
<content type='text'>
We can use this in the case where we don't get the lock on the
state file, because another process is running.
</content>
</entry>
<entry>
<title>Use better reporting for guard status.</title>
<updated>2021-10-13T15:24:37Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-13T15:24:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f15cde80de0b5f6f81a7426addba35c3c7506112'/>
<id>urn:sha1:f15cde80de0b5f6f81a7426addba35c3c7506112</id>
<content type='text'>
The previous code would report all failures to build a circuit as
failures of the guard.  But of course that's not right:  If we
fail to extend to the second or third hop, that might or might not
be the guard's fault.

Now we use the "pending status" feature of the GuardMonitor type so
that an early failure is attributed to the guard, but a later
failure is attributed as "Indeterminate".  Only a complete circuit
is called a success.  We use a new "GuardStatusHandle" type here so
that we can report the status early if there is a timeout.
</content>
</entry>
<entry>
<title>Rename GuardStatusMsg, make it public, add an `Indeterminate` case.</title>
<updated>2021-10-13T14:55:44Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-13T14:55:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e625b2cff5f3f1c04ecaa026c46c0ea82e824b1a'/>
<id>urn:sha1:e625b2cff5f3f1c04ecaa026c46c0ea82e824b1a</id>
<content type='text'>
</content>
</entry>
</feed>
