radicle-heartwood-lfs/radicle-cli/examples
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
..
framework cli-test: Update framework with new features 2023-08-04 12:23:49 +02:00
git helper: Don't sync if we aren't seeding 2024-03-18 13:04:48 +01:00
workflow cli: show reviews on `rad patch list` 2024-03-11 13:22:14 +01:00
rad-auth-errors.md radicle: Fix config loading with bad alias 2024-03-21 14:44:04 +01:00
rad-auth.md radicle: Fix config loading with bad alias 2024-03-21 14:44:04 +01:00
rad-block.md cli: Fix some tests 2024-03-09 14:01:30 +01:00
rad-checkout-repo-config-linux.md cli: Add canonical remote to `init` and `checkout` 2023-04-24 15:42:00 +02:00
rad-checkout-repo-config-macos.md cli: Add canonical remote to `init` and `checkout` 2023-04-24 15:42:00 +02:00
rad-checkout.md cli: Add canonical remote to `init` and `checkout` 2023-04-24 15:42:00 +02:00
rad-clean.md radicle: remove repo iff there's no local rad/sigrefs 2023-11-30 10:48:14 +01:00
rad-clone-all.md Use "repository" consistently over "project" 2024-01-22 21:18:54 +01:00
rad-clone-connect.md cli: Rework `rad sync` 2024-01-26 15:22:10 +01:00
rad-clone-directory.md Use "repository" consistently over "project" 2024-01-22 21:18:54 +01:00
rad-clone-unknown.md node: Rename node `tracking` module 2023-12-06 10:00:45 +01:00
rad-clone.md cli: Rename `rad ls --seeds` flag 2024-03-11 10:46:09 +01:00
rad-cob.md cli: show reviews on `rad patch list` 2024-03-11 13:22:14 +01:00
rad-config.md node: Make worker count configurable 2024-03-19 16:34:15 +01:00
rad-diff.md cli: Improve `rad diff` 2023-11-09 13:04:40 +01:00
rad-fetch.md cli: From "tracking" to "seeding" and "following" 2023-12-06 09:56:57 +01:00
rad-fork.md Use "repository" consistently over "project" 2024-01-22 21:18:54 +01:00
rad-id-collaboration.md radicle: fault tolerant thresholds 2024-04-03 14:30:05 +02:00
rad-id-conflict.md radicle: UserInfo for Repository::create 2023-11-09 16:43:34 +01:00
rad-id-multi-delegate.md cli: Don't fork on clone 2023-12-13 12:14:06 +01:00
rad-id-threshold.md radicle: fault tolerant thresholds 2024-04-03 14:30:05 +02:00
rad-id.md radicle: fault tolerant thresholds 2024-04-03 14:30:05 +02:00
rad-inbox.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-init-no-git.md cli: Improve `rad init` wording 2024-03-11 13:08:03 +01:00
rad-init-private-clone-seed.md Use "repository" consistently over "project" 2024-01-22 21:18:54 +01:00
rad-init-private-clone.md cli: Support `--seed` on `rad clone` 2024-01-03 14:07:19 +01:00
rad-init-private.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-init-sync-not-connected.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-init-sync-preferred.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-init-sync-timeout.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-init-sync.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-init-with-existing-remote.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-init.md cli: Show full path in `rad init` 2024-02-26 12:40:17 +01:00
rad-inspect-noauth.md cli: Improve messaging when config doesn't load 2023-12-13 12:30:11 +01:00
rad-inspect.md cli: Add `rad inspect --sigrefs` command 2023-11-17 16:56:20 +01:00
rad-issue.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-merge-after-update.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-merge-no-ff.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-merge-via-push.md cli: show reviews on `rad patch list` 2024-03-11 13:22:14 +01:00
rad-node.md cli: Fix some tests 2024-03-09 14:01:30 +01:00
rad-patch-ahead-behind.md cli: show reviews on `rad patch list` 2024-03-11 13:22:14 +01:00
rad-patch-change-base.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-checkout-force.md cli: show revision on rad patch checkout 2024-03-11 11:56:11 +01:00
rad-patch-checkout-revision.md cli: show revision on rad patch checkout 2024-03-11 11:56:11 +01:00
rad-patch-checkout.md cli: show revision on rad patch checkout 2024-03-11 11:56:11 +01:00
rad-patch-delete.md cli: test rad patch delete 2024-03-08 23:43:19 +01:00
rad-patch-diff.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-draft.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-edit.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-fetch-1.md cli: use `git` for anonymous fetch 2024-01-02 15:04:49 +01:00
rad-patch-fetch-2.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-merge-draft.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-open-explore.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-pull-update.md cli: show revision on rad patch checkout 2024-03-11 11:56:11 +01:00
rad-patch-update.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-patch-via-push.md cli: show reviews on `rad patch list` 2024-03-11 13:22:14 +01:00
rad-patch.md cli: show reviews on `rad patch list` 2024-03-11 13:22:14 +01:00
rad-publish.md cli: Add tests for `rad publish` 2023-09-05 11:16:09 +02:00
rad-push-and-pull-patches.md cli: show revision on rad patch checkout 2024-03-11 11:56:11 +01:00
rad-remote.md cli: Improve `rad remote add` 2024-01-08 17:28:01 +01:00
rad-review-by-hunk.md cob: Properly authorize root actions 2024-02-23 12:31:13 +01:00
rad-seed-and-follow.md cli: Fix some tests 2024-03-09 14:01:30 +01:00
rad-self.md cli: Move node addresses command 2024-02-26 14:23:13 +01:00
rad-sync-without-node.md cli: From "tracking" to "seeding" and "following" 2023-12-06 09:56:57 +01:00
rad-sync.md helper: Don't sync if we aren't seeding 2024-03-18 13:04:48 +01:00
rad-unseed.md cli: Rename `rad ls --seeds` flag 2024-03-11 10:46:09 +01:00
rad-watch.md cli: Add `watch` command 2023-12-11 12:04:26 +01:00