From a1f5ccc136435a83e490979b612e76d7f3443a06 Mon Sep 17 00:00:00 2001 From: sneakers-the-rat Date: Tue, 6 Jun 2023 23:41:55 -0700 Subject: [PATCH] checkpointing --- src/comparison/activitypub.md | 1 + src/comparison/at_protocol.md | 16 ++++++++++ src/comparison/bittorrent.md | 1 + src/comparison/hypercore.md | 1 + src/{comparison.md => comparison/index.md} | 34 ++++++++++++---------- src/comparison/ipfs.md | 1 + src/comparison/ld_fragments.md | 1 + src/comparison/matrix.md | 1 + src/comparison/nanopubs.md | 1 + src/comparison/solid.md | 1 + src/comparison/ssb.md | 1 + src/conf.py | 6 ++++ src/data_structures.md | 1 + src/definitions.md | 14 +++++++++ src/identity.md | 2 +- src/index.md | 5 ++-- 16 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 src/comparison/activitypub.md create mode 100644 src/comparison/at_protocol.md create mode 100644 src/comparison/bittorrent.md create mode 100644 src/comparison/hypercore.md rename src/{comparison.md => comparison/index.md} (60%) create mode 100644 src/comparison/ipfs.md create mode 100644 src/comparison/ld_fragments.md create mode 100644 src/comparison/matrix.md create mode 100644 src/comparison/nanopubs.md create mode 100644 src/comparison/solid.md create mode 100644 src/comparison/ssb.md diff --git a/src/comparison/activitypub.md b/src/comparison/activitypub.md new file mode 100644 index 0000000..9a83a0d --- /dev/null +++ b/src/comparison/activitypub.md @@ -0,0 +1 @@ +# ActivityPub diff --git a/src/comparison/at_protocol.md b/src/comparison/at_protocol.md new file mode 100644 index 0000000..5606e8a --- /dev/null +++ b/src/comparison/at_protocol.md @@ -0,0 +1,16 @@ +# AT Protocol/Bluesky + +```{index} Identity +``` +```{index} Bluesky +``` +```{index} Identity; DID +``` + +We aren't too concerned with billionaires cosplaying as altruists and the technologies they produce, but the AT Protocol has a few ideas, particularly related to [identity](https://atproto.com/guides/identity), that are interesting. + +Specifically, AT protocol differentiates between *handles* and *identities*, where DNS entries are used as short handles that resolve to a [DID](https://www.w3.org/TR/did-core/). + +That's about it, the rest of the handling of DID's is extremely centralized (see [did:plc](https://atproto.com/specs/did-plc) which requires resolution against a single domain), and the requirement of all posts to be funneled through [Big Graph Services](https://blueskyweb.xyz/blog/5-5-2023-federation-architecture) rather than directly peer to peer is transparently designed to ensure a marketing and advertising layer in between actors in the network. + + diff --git a/src/comparison/bittorrent.md b/src/comparison/bittorrent.md new file mode 100644 index 0000000..2fb68a2 --- /dev/null +++ b/src/comparison/bittorrent.md @@ -0,0 +1 @@ +# BitTorrent diff --git a/src/comparison/hypercore.md b/src/comparison/hypercore.md new file mode 100644 index 0000000..3396fa3 --- /dev/null +++ b/src/comparison/hypercore.md @@ -0,0 +1 @@ +# Dat/Hypercore diff --git a/src/comparison.md b/src/comparison/index.md similarity index 60% rename from src/comparison.md rename to src/comparison/index.md index 91b652e..e75b713 100644 --- a/src/comparison.md +++ b/src/comparison/index.md @@ -2,26 +2,30 @@ All of this is TODO. Comparison to existing protocols and projects (just to situate in context, not talk shit obvs) -## "The big ones" +```{toctree} +:caption: P2P -- BitTorrent -- IPFS +bittorrent +ipfs +hypercore +``` -## "The research ones" +```{toctree} +:caption: Social -- Dat -- Hypercore +activitypub +ssb +matrix +at_protocol +``` -## Social +```{toctree} +:caption: Linked Data -- ActivityPub/Fediverse -- Secure Scuttlebutt -- Matrix - -## Semweb/LD - -- SOLID -- Nanopubs +solid +ld_fragments +nanopubs +``` ## To be categorized diff --git a/src/comparison/ipfs.md b/src/comparison/ipfs.md new file mode 100644 index 0000000..c798b8a --- /dev/null +++ b/src/comparison/ipfs.md @@ -0,0 +1 @@ +# IPFS diff --git a/src/comparison/ld_fragments.md b/src/comparison/ld_fragments.md new file mode 100644 index 0000000..b7da0b9 --- /dev/null +++ b/src/comparison/ld_fragments.md @@ -0,0 +1 @@ +# Linked Data Fragments diff --git a/src/comparison/matrix.md b/src/comparison/matrix.md new file mode 100644 index 0000000..f417dac --- /dev/null +++ b/src/comparison/matrix.md @@ -0,0 +1 @@ +# Matrix diff --git a/src/comparison/nanopubs.md b/src/comparison/nanopubs.md new file mode 100644 index 0000000..59b4209 --- /dev/null +++ b/src/comparison/nanopubs.md @@ -0,0 +1 @@ +# NanoPubs diff --git a/src/comparison/solid.md b/src/comparison/solid.md new file mode 100644 index 0000000..b26f8ce --- /dev/null +++ b/src/comparison/solid.md @@ -0,0 +1 @@ +# SOLID diff --git a/src/comparison/ssb.md b/src/comparison/ssb.md new file mode 100644 index 0000000..edab114 --- /dev/null +++ b/src/comparison/ssb.md @@ -0,0 +1 @@ +# Secure Scuttlebutt diff --git a/src/conf.py b/src/conf.py index 7543731..8d13e37 100644 --- a/src/conf.py +++ b/src/conf.py @@ -37,6 +37,12 @@ html_baseurl = '/docs/' # ----------- # Extension config +# myst +myst_heading_anchors = 3 +myst_enable_extensions = [ + 'tasklist' +] + # Napoleon settings napoleon_google_docstring = True napoleon_numpy_docstring = True diff --git a/src/data_structures.md b/src/data_structures.md index 566c119..b5d0382 100644 --- a/src/data_structures.md +++ b/src/data_structures.md @@ -29,6 +29,7 @@ Triplet graphs similar to linked data fragments with envelopes. decoupling conte - Format: A container can specify one or several ways it can be displayed - Capabilities: A container can specify different capabilities that another account can take (eg. "Like", "Upvote", "Reply") - Capabilities should also contain a permissions scope, if none is present, the global scope is assumed. + - Since Identities are just a special form of container, they too can advertise different actions that they support with capabilities. diff --git a/src/definitions.md b/src/definitions.md index 57e5bd9..b78afda 100644 --- a/src/definitions.md +++ b/src/definitions.md @@ -1 +1,15 @@ # Definitions + +Putting there here to remind me to use the glossary directive... (these are not real definitions yet, just placeholders) + +```{glossary} + +Identity + A unique cryptographic identity. One person may have multiple identities. One identity may have one or several {term}`Petname`s and {term}`Beacon`s + +Petname + A short name used to refer to a {term}`Identity`. Petnames are always contextual: `@Alice` referring to `@Bob` has the status of "The person that @Alice knows as @Bob." A petname can be declared by the identity being referred to as a "canonical" petname, but since they are potentially nonunique they should always be dereferenced against the Identity making the reference. + + + +``` \ No newline at end of file diff --git a/src/identity.md b/src/identity.md index 632cb19..adf180c 100644 --- a/src/identity.md +++ b/src/identity.md @@ -22,7 +22,7 @@ A given identity can have 0 or many bidirectional links indicating that the iden - Subscribers to a given identity MUST store and represent the known aliases and treat them as equivalent - Other accounts can give an alias to an identity that MAY be accepted (by issuing a backlink) or denied (by ignoring it). -### Succession +### Rotation An identity has a specific field indicating whether it is "active" or "retired," and can issue a special top-level link with given permission scope indicating the identity that succeeds it. - eg in the case of harrassment, one can hop identities and only tell close friends. diff --git a/src/index.md b/src/index.md index ef09590..c37b26d 100644 --- a/src/index.md +++ b/src/index.md @@ -8,13 +8,14 @@ This site describes the implementation of the p2p linked data protocol in {cite} :caption: Introduction overview -comparison +comparison/index p2p_concepts out_of_scope -``` +``` ```{toctree} :caption: Protocol +:numbered: definitions protocol