| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \
| | |
| | |
| | |
| | |
| | |
| | | |
tor-guardmgr: Persist the vanguard sets if running in full vanguard mode
Closes #1273
See merge request tpo/core/arti!2090
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The VanguardMgr now unconditionally flushes the vanguard sets to disk
each time there's a consensus change, and every time a vanguard
expires.
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2090#note_3021013
|
| | | | |
|
| | | |
| | |
| | |
| | | |
Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2090#note_3021016
|
| | | |
| | |
| | |
| | |
| | | |
Our log messages begin with an uppercase letter in the rest of the code
base.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | | |
This will be useful for testing.
|
| | | |
| | |
| | |
| | | |
The referenced types are no longer available in `vanguards.rs`.
|
| | | | |
|
| | | |
| | |
| | |
| | | |
We will soon use this to test full vanguards.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
This doesn't need to be `pub(super)` anymore, `VanguardMgr` now
manipulates the `VanguardSets` exclusively through
`VanguardSetsTrackedMut`.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
The `VanguardMgr` reads the vanguards from the vanguards state file,
whether full vanguards are enabled or not. It only persists the vanguard
sets to storage if full vanguards are in use.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since `rotate_expired()` (previously `remove_expired()`) now also
replenishes the vanguard sets, we can't use `advance_until_stalled()`
anymore, because `run_once()` is never be stalled in the tests
(`next_to_expire` is never `None`, so `sleep_fut` is never
`future::pending()`:
```
warning: MockRuntime advance_* looped >1000 (next sleep: 877560507ms)
```
Previously, `next_to_expire` was computed *before* replenishing the
vanguard sets, which is why the tests could use
`advance_until_stalled()`.
|
| | | |
| | |
| | |
| | |
| | | |
This addresses a TODO about not calling `handle_netdir_update`
unconditionally each time `VanguardMgr::run_once()` runs.
|
| | | |
| | |
| | |
| | |
| | |
| | | |
A lot of this is code motion: the code added to `VanguardSetsTrackedMut`
was copied from the `VanguardMgr` impl, so I recommend reviewing this
with `git diff --color-moved=zebra`.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This enables us to track when `VanguardMgr`'s `VanguardSets` is
*actually* mutated.
This will soon be useful because we only want to flush the
`VanguardSets` to storage if we actually added or removed some relays
from the set.
|
| | | |
| | |
| | |
| | |
| | | |
These will be useful later, when we place the `l2_vanguards` and
`l3_vanguards` from `VanguardMgr` with a `VanguardSets`.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
changed.
The two removal functions now return whether any values were removed
from the `VanguardSet`. Their return values are currently ignored, but
will soon be used for deciding whether to flush the `VanguardSet`s to
disk (if full vanguards are enabled).
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
`VanguardSets` (not to be confused with `VanguardSet`) will soon be used
as:
* a helper for serializing the L2 and L3 `VanguardSet`s
* an abstraction over the two vanguard sets
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We will soon replace `VanguardSet::new` with `VanguardSet::default`:
`new()` currently expects a set of `VanguardParams` (from which the
target size of the set is derived), but we don't have a `VanguardParams`
until we obtain a `NetDir`. Moreover, it doesn't make sense to attempt
to set the target size of the `VanguardSet` before obtaining a `NetDir`,
because we can't actually populate the set without a `NetDir` (we can't
select relays).
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
By default, HS clients should be using lite vanguards, and HS services
full vanguards.
See https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/258#note_3011734
|
| |/ /
| |
| |
| | |
This TODO is fixed later in the branch.
|
| |\ \
| |/
|/|
| |
| |
| |
| | |
tor-relay-selection: Introduce RelayUsage::vanguard.
Closes #1364
See merge request tpo/core/arti!2093
|
| | |
| |
| |
| | |
Closes #1364
|
| |/
|
|
|
|
|
|
|
|
|
| |
This adds a new `RelayUsage` for vanguards. As per the original
[vanguards implementation], vanguards must:
* have the Fast, Stable, and Valid flags
* be selected using the `Middle` weight
Part of #1364
[vanguards implementation]: https://github.com/mikeperry-tor/vanguards
|
| |\
| |
| |
| |
| |
| |
| | |
Upgrade to futures-rustls 0.26.0, rustls 0.23.5.
Closes #1377
See merge request tpo/core/arti!2095
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The rustls upgrade will solve #1377 and CVE-2024-32650.
Note that we've had to patch our RustlsProvider impl a bit in order
to keep the tests passing. See comments.
Closes #1377.
|
| |\ \
| |/
|/|
| |
| | |
Resolve nightly clippy errors in hashx.
See merge request tpo/core/arti!2096
|
| |/
|
|
|
|
| |
Nightly clippy doesn't like using "expr as T" when the conversion is
lossless; it prefers "T::from(expr)" so that if we later change the
type of T to something with a lossy conversion, we'll know.
|
| |\
| |
| |
| |
| | |
arti-client: add hs_circ_pool() method on TorClient
See merge request tpo/core/arti!2077
|
| |/ |
|
| |\
| |
| |
| |
| | |
tor-guardmgr: Minor vanguard-related cleanups
See merge request tpo/core/arti!2088
|
| | | |
|
| | |
| |
| |
| | |
It was addressed in !2083
|
| | |
| |
| |
| |
| | |
This is no longer true because of !2082. The `VanguardSet` *does* own
its `TimeBoundVanguards`.
|
| | |
| |
| |
| | |
These are not used anymore as of !2082, so we can remove them now.
|
| |\ \
| |/
|/|
| |
| | |
Minor docs fixes
See merge request tpo/core/arti!2087
|
| | |
| |
| |
| | |
This was a typo.
|