<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-guardmgr, 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-29T15:05:51Z</updated>
<entry>
<title>Bump all crate versions to 0.0.1</title>
<updated>2021-10-29T15:05:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-29T15:05:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e6e740646ac61c9f06dc332cc156d4b20e793b70'/>
<id>urn:sha1:e6e740646ac61c9f06dc332cc156d4b20e793b70</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve some documentation links</title>
<updated>2021-10-29T12:39:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-29T12:39:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1ee24ce6537373448d8fd5fb074768c6887cb90b'/>
<id>urn:sha1:1ee24ce6537373448d8fd5fb074768c6887cb90b</id>
<content type='text'>
Instead of putting a fully qualified name in the text, in most cases
we should just use the short name of the type or function we're
referring to.

In other words, instead of saying [`crate::module::Foo`], we should
typically say [`Foo`](crate::module::Foo).
</content>
</entry>
<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>Add Futureproof&lt;T&gt; wrapper type, use for GuardDisabled enum</title>
<updated>2021-10-27T14:10:44Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-10-27T13:09:34Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5a4db67b16cf54d1373e2d71aa638358e5b36dc7'/>
<id>urn:sha1:5a4db67b16cf54d1373e2d71aa638358e5b36dc7</id>
<content type='text'>
The Futureproof&lt;T&gt; type lets you serialize and deserialize types whose
representations might change (most useful for enums that might grow
additional variants). It uses #[serde(untagged)] to accomplish this.

This gets used in order to make the `disabled` field of `Guard` more
robust against future guard disablement reasons being added.

A test was also added to verify correct behaviour of the new type.
</content>
</entry>
<entry>
<title>Add #[serde(flatten)] HashMap fields to serializable objects</title>
<updated>2021-10-27T12:31:52Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2021-10-27T12:31:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=7a931b4de39f123b3af8afe96492bf5c67c81b95'/>
<id>urn:sha1:7a931b4de39f123b3af8afe96492bf5c67c81b95</id>
<content type='text'>
As per arti#175, we'd like to be able to handle newer Arti versions
storing additional state in the persisted state files, without dropping
this data on the floor when we write out changes to these files.

Use the #[serde(flatten)] mechanism to achieve this, by adding catch-all
HashMap&lt;String, JsonValue&gt; fields to all structs that are at risk of
this happening to them.
</content>
</entry>
<entry>
<title>Avoid a strange borrow syntax in tor_guardmgr::sample</title>
<updated>2021-10-26T16:03:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-26T14:22:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=682f31b1bf35e8a82ec98770cbafa8ef80ebbc7f'/>
<id>urn:sha1:682f31b1bf35e8a82ec98770cbafa8ef80ebbc7f</id>
<content type='text'>
I'm not sure what I was thinking here.
</content>
</entry>
<entry>
<title>Do not blame a guard for failures on non-random circuits.</title>
<updated>2021-10-26T16:03:23Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-25T15:45:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=72ebaed16bc5c4e79c29fe135b62b28f945bdcd0'/>
<id>urn:sha1:72ebaed16bc5c4e79c29fe135b62b28f945bdcd0</id>
<content type='text'>
We must not apply our new path-bias behavior (where we blame a guard
if it gives us too many indeterminate circuit failures) if the path
was not chosen at random.  If too many random paths fail, we know
that's suspicious, since the other relays are a random sample.  But
if a bunch of user-provided paths fail, that could simply be because
the user's chosen exit is down.
</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>guardmgr: Don't use guards that are marked as unlisted.</title>
<updated>2021-10-25T14:27:13Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2021-10-25T14:26:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=84f81d14eb80fe78527600f24202f60796756582'/>
<id>urn:sha1:84f81d14eb80fe78527600f24202f60796756582</id>
<content type='text'>
Closes #202.
</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>
</feed>
