| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | tor-guardmgr: Load the vanguards from disk on startup. | Gabriela Moldovan | 2024-04-22 | 1 | -7/+26 | |
| | | | | | | | 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. | |||||
| * | tor-guardmgr: Flush the vanguard changes to disk (fmt). | Gabriela Moldovan | 2024-04-22 | 1 | -1/+2 | |
| | | ||||||
| * | tor-guardmgr: Flush the vanguard changes to disk. | Gabriela Moldovan | 2024-04-22 | 1 | -3/+8 | |
| | | ||||||
| * | tor-guardmgr: Implement VanguardMgr::flush_to_storage. | Gabriela Moldovan | 2024-04-22 | 1 | -10/+15 | |
| | | ||||||
| * | tor-guardmgr: Fix vanguard expiration test. | Gabriela Moldovan | 2024-04-22 | 1 | -1/+18 | |
| | | | | | | | | | | | | | | | | | 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()`. | |||||
| * | tor-guardmgr: Don't try to replenish the sets unless some vanguards expired. | Gabriela Moldovan | 2024-04-22 | 1 | -23/+18 | |
| | | | | | | This addresses a TODO about not calling `handle_netdir_update` unconditionally each time `VanguardMgr::run_once()` runs. | |||||
| * | tor-guardmgr: Move vanguard set replenishing logic to VanguardSetsTrackedMut. | Gabriela Moldovan | 2024-04-22 | 3 | -225/+373 | |
| | | | | | | | 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`. | |||||
| * | tor-guardmgr: Add VanguardSetsTrackedMut for mutating VanguardSets. | Gabriela Moldovan | 2024-04-22 | 1 | -0/+54 | |
| | | | | | | | | | | 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. | |||||
| * | tor-guardmgr: Add some accessors for VanguardSets. | Gabriela Moldovan | 2024-04-22 | 1 | -0/+43 | |
| | | | | | | These will be useful later, when we place the `l2_vanguards` and `l3_vanguards` from `VanguardMgr` with a `VanguardSets`. | |||||
| * | tor-guardmgr: VanguardSet::remove_{unlisted,expired} returns whether the set ↵ | Gabriela Moldovan | 2024-04-22 | 1 | -5/+14 | |
| | | | | | | | | | | 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). | |||||
| * | tor-guardmgr: Add VanguardMgrError variant for tor-persist errors. | Gabriela Moldovan | 2024-04-22 | 1 | -0/+5 | |
| | | ||||||
| * | tor-guardmgr: Create storage handle for storing vanguards. | Gabriela Moldovan | 2024-04-22 | 1 | -3/+11 | |
| | | ||||||
| * | tor-guardmgr: Introduce an abstraction over the two vanguard sets. | Gabriela Moldovan | 2024-04-22 | 1 | -0/+19 | |
| | | | | | | | | `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 | |||||
| * | tor-guardmgr: Derive Default for VanguardSet. | Gabriela Moldovan | 2024-04-22 | 1 | -1/+6 | |
| | | | | | | | | | | | 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). | |||||
| * | tor-guardmgr: By default, use full vanguards for onion services. | Gabriela Moldovan | 2024-04-22 | 1 | -2/+2 | |
| | | | | | | | | 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 | |||||
| * | tor-guardmgr: Add a TODO about a call that needs to be relocated. | Gabriela Moldovan | 2024-04-22 | 1 | -0/+10 | |
| | | | | | This TODO is fixed later in the branch. | |||||
| * | tor-guardmgr: Use RelayUsage::vanguard in the VanguardMgr. | Gabriela Moldovan | 2024-04-22 | 2 | -3/+2 | |
| | | | | | Closes #1364 | |||||
| * | Merge branch 'vanguards-cleanup' into 'main' | Alexander Færøy | 2024-04-15 | 3 | -37/+4 | |
| |\ | | | | | | | | | tor-guardmgr: Minor vanguard-related cleanups See merge request tpo/core/arti!2088 | |||||
| | * | tor-guardmgr: Remove unnecessary mutable reference. | Gabriela Moldovan | 2024-04-15 | 2 | -4/+4 | |
| | | | ||||||
| | * | tor-guardmgr: Remove outdated TODO. | Gabriela Moldovan | 2024-04-15 | 1 | -6/+0 | |
| | | | | | | | | | It was addressed in !2083 | |||||
| | * | tor-guardmgr: Remove outdated documentation. | Gabriela Moldovan | 2024-04-15 | 1 | -3/+0 | |
| | | | | | | | | | | | This is no longer true because of !2082. The `VanguardSet` *does* own its `TimeBoundVanguards`. | |||||
| | * | tor-guardmgr: Remove unused TimeBoundVanguard implementations. | Gabriela Moldovan | 2024-04-15 | 1 | -24/+0 | |
| | | | | | | | | | These are not used anymore as of !2082, so we can remove them now. | |||||
| * | | vanguards: Fix another doc ref | Ian Jackson | 2024-04-15 | 1 | -1/+1 | |
| | | | | | | | | | This was a typo. | |||||
| * | | vanguards: Fix a doc ref | Ian Jackson | 2024-04-15 | 1 | -2/+3 | |
| |/ | | | | This is a broken link when built without --document-private-items. | |||||
| * | tor-guardmgr: Split derive list over multiple lines. | Gabriela Moldovan | 2024-04-11 | 1 | -2/+4 | |
| | | ||||||
| * | tor-guardmgr: Derive Ord for VanguardMode. | Gabriela Moldovan | 2024-04-11 | 2 | -12/+16 | |
| | | ||||||
| * | tor-guardmgr: Expand on a TODO about handling config changes. | Gabriela Moldovan | 2024-04-11 | 1 | -0/+4 | |
| | | ||||||
| * | tor-guardmgr: Add a TODO about updating has_onion_svc on reconfigure. | Gabriela Moldovan | 2024-04-11 | 1 | -0/+1 | |
| | | ||||||
| * | tor-guardmgr: Fix typo in VanguardMgr error message. | Gabriela Moldovan | 2024-04-11 | 1 | -1/+1 | |
| | | ||||||
| * | tor-guardmgr: Read the VanguardMode from VanguardParams. | Gabriela Moldovan | 2024-04-11 | 1 | -26/+54 | |
| | | | | | | | Based on our discussion on https://gitlab.torproject.org/tpo/core/torspec/-/merge_requests/258#note_3011734 If it turns out this is not the behaviour we want, we can update `Inner::mode()` accordingly. | |||||
| * | tor-guardmgr: Store whether we're running an onion svc. | Gabriela Moldovan | 2024-04-11 | 1 | -1/+8 | |
| | | | | | | | The `VanguardMgr` needs to know whether arti is running as an onion service or not, in order to figure out which of the `vanguards_enabled` and `vanguards_hs_service` modes to use. | |||||
| * | tor-guardmgr: Add the two VanguardModes to VanguardParams. | Gabriela Moldovan | 2024-04-11 | 1 | -0/+12 | |
| | | | | | | | | | We have two vanguard modes, one for when arti is running as a client, and a separate one for when it's running as a service. Both modes are extracted from the `NetParameters`, so they belong in `VanguardParams`. | |||||
| * | tor-guardmgr: Replace vanguard heap with a simpler approach. | Gabriela Moldovan | 2024-04-10 | 2 | -134/+118 | |
| | | | | | | | | | | | | | | | | | | | As mentioned in https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2075#note_3016306 using a heap isn't the best way to manage the vanguards: * in the default case, which will apply to most users, the L2 and L3 set sizes are 4 and 8 respectively. Using a heap doesn't make sense for such small sets * the use of `Weak<TimeBoundVanguard>`s will be an inconvenience later on, when we implement vanguard set persistence, since `Weak` isn't serializable or deserializable This switches to a simpler apporach, where the `VanguardMgr` computes the soonest expiration timestamp of its `VanguardSet`s by iterating over all the vanguards in each set. Closes #1366 | |||||
| * | tor-guardmgr: Do not store the NetDir in VanguardMgr. | Gabriela Moldovan | 2024-04-10 | 1 | -31/+23 | |
| | | | | | | Instead, we try to get a `NetDir` from the `NetDirProvider` each time we `run_once()`. | |||||
| * | tor-guardmgr: Remove unnecessary call to discard_expired(). | Gabriela Moldovan | 2024-04-10 | 2 | -3/+8 | |
| | | ||||||
| * | tor-guardmgr: Rename vanguards to vanguards heap for clarity. | Gabriela Moldovan | 2024-04-10 | 1 | -12/+12 | |
| | | ||||||
| * | tor-guardmgr: Remove unused params field. | Gabriela Moldovan | 2024-04-10 | 1 | -4/+0 | |
| | | ||||||
| * | tor-guardmgr: Validate lifetimes before constructing VanguarParams. | Gabriela Moldovan | 2024-04-10 | 1 | -4/+35 | |
| | | | | | | If the [min, max] lifetime interval for a vanguard layer is the empty set (i.e. min > max), we return the default lifetime. | |||||
| * | tor-guardmgr: Hold a weak reference to NetDirProvider. | Gabriela Moldovan | 2024-04-10 | 1 | -7/+14 | |
| | | ||||||
| * | tor-guardmgr: Don't recreate the event stream for each iteration (fmt). | Gabriela Moldovan | 2024-04-10 | 1 | -1/+7 | |
| | | ||||||
| * | tor-guardmgr: Don't recreate the event stream for each iteration. | Gabriela Moldovan | 2024-04-10 | 1 | -3/+5 | |
| | | ||||||
| * | tor-guardmgr: Only replenish the L3 sets if full vanguards are in use (fmt). | Gabriela Moldovan | 2024-04-10 | 1 | -8/+2 | |
| | | ||||||
| * | tor-guardmgr: Only replenish the L3 sets if full vanguards are in use. | Gabriela Moldovan | 2024-04-10 | 1 | -33/+54 | |
| | | ||||||
| * | tor-guardmgr: Clarify VanguardMgr::select_vanguard behaviour. | Gabriela Moldovan | 2024-04-09 | 1 | -0/+9 | |
| | | ||||||
| * | tor-guardmgr: Use ids_listed() instead of by_ids() (fmt). | Gabriela Moldovan | 2024-04-09 | 1 | -1/+2 | |
| | | ||||||
| * | tor-guardmgr: Use ids_listed() instead of by_ids(). | Gabriela Moldovan | 2024-04-09 | 1 | -1/+1 | |
| | | ||||||
| * | tor-guardmgr: Update TODO to say we want RelayUsage::vanguard(). | Gabriela Moldovan | 2024-04-09 | 1 | -1/+1 | |
| | | ||||||
| * | tor-guardmgr: Explain why we're making a uniform choice. | Gabriela Moldovan | 2024-04-09 | 1 | -0/+3 | |
| | | ||||||
| * | tor-guardmgr: Add tests for the vanguard manager. | Gabriela Moldovan | 2024-04-05 | 3 | -0/+392 | |
| | | ||||||
| * | tor-guardmgr: Replenish the vanguard sets as needed. | Gabriela Moldovan | 2024-04-05 | 2 | -13/+222 | |
| | | ||||||
