radicle-heartwood-lfs/radicle-remote-helper/src
Fintan Halpenny cd9b46fe51
radicle: fault tolerant thresholds
There are two areas where we can be more tolerant of delegate namespaces
being missing or not validating:
1. Calculating the canonical HEAD
2. Fetching from a remote

In 1. the protocol is tolerant in that if the local node does not have
the default branch for a delegate, it will still attempt to use any of
the delegates it does have to reach the threshold.

This is made safe by ensuring that if the threshold is being updated
then the node performing the update must have a threshold of delegates
locally in their storage. It also made safe by 2.

In 2. the protocol is tolerant by allowing delegates to be missing
from the serving side, as long as they can still meet a threshold of
delegates. This is further tolerant, when validating the received
data, a threshold of delegates are valid to consider the fetch
successful -- otherwise it will fail.

Signed-off-by: Fintan Halpenny <fintan.halpenny@gmail.com>
X-Clacks-Overhead: GNU Terry Pratchett
2024-04-03 14:30:05 +02:00
..
fetch.rs cli: use `git` for anonymous fetch 2024-01-02 15:04:49 +01:00
git-remote-rad.rs Implement new versioning system 2024-03-25 11:54:08 +01:00
lib.rs radicle: Switch error type for repository methods 2024-04-03 14:25:02 +02:00
list.rs radicle: implement caching for issues and patches 2024-02-23 16:03:21 +01:00
push.rs radicle: fault tolerant thresholds 2024-04-03 14:30:05 +02:00