From 5b31f07169ca01a5d2980b55cb514c05e0640a47 Mon Sep 17 00:00:00 2001 From: sneakers-the-rat Date: Thu, 15 Jun 2023 23:25:19 -0700 Subject: [PATCH] got diistracted by atproto --- src/adapter/index.md | 11 +++++ src/comparison/hypercore.md | 7 +++ src/comparison/ssb.md | 91 +++++++++++++++++++++++++++++++++++++ src/conf.py | 17 +++++++ src/data_structures.md | 1 + src/discovery.md | 13 +++++- src/index.md | 3 +- src/translation/index.md | 4 ++ 8 files changed, 144 insertions(+), 3 deletions(-) create mode 100644 src/adapter/index.md create mode 100644 src/translation/index.md diff --git a/src/adapter/index.md b/src/adapter/index.md new file mode 100644 index 0000000..eb8922d --- /dev/null +++ b/src/adapter/index.md @@ -0,0 +1,11 @@ +# Adapter + +Interfaces to other protocols and formats + +- Files + - hdf5 + - json + - csv + - mat +- HTTP +- S3 \ No newline at end of file diff --git a/src/comparison/hypercore.md b/src/comparison/hypercore.md index 3396fa3..a94ede7 100644 --- a/src/comparison/hypercore.md +++ b/src/comparison/hypercore.md @@ -1 +1,8 @@ # Dat/Hypercore + + +```{index} Hypercore; Holepunch +``` +## Holepunch + +https://docs.holepunch.to/ diff --git a/src/comparison/ssb.md b/src/comparison/ssb.md index edab114..ad4a844 100644 --- a/src/comparison/ssb.md +++ b/src/comparison/ssb.md @@ -1 +1,92 @@ +```{index} Protocol; Secure Scuttlebutt +``` # Secure Scuttlebutt + + + +## Feeds & Metafeeds + +- Peers maintain a list of feeds they subscribe to +- When peers connect, they ask for updates to subscribed feeds +- Metafeeds can provide metadata about other feeds, and can form a tree structure with other Metafeeds as subfeeds. + - {index}`Bencoded ` rather than JSON. + +```{mermaid} +flowchart LR + subgraph Main [Main Feed] + mf["`Main Feed Posts + *metafeed/announce* + message`"] + end + subgraph Meta [Meta feed] + direction TB + mf1["`Metafeed posts + *metafeed/add/existing + message`"] + mf2["`Metafeed posts + *metafeed/add/existing + message`"] + mf3["`Metafeed posts + *metafeed/add/derived + message`"] + mf4["`Metafeed posts + *metafeed/add/existing + message`"] + mf1 --> mf2 + mf2 --> mf3 + mf3 --> mf4 + end + + subgraph SubfeedA [Subfeed A] + direction LR + sfa1["`Application specific + message in subfeed`"] + sfa2["`Application specific + message in subfeed`"] + sfa1 --> sfa2 + end + subgraph SubfeedB [Subfeed B] + direction LR + sfb1["`Application specific + message in subfeed`"] + sfb2["`Application specific + message in subfeed`"] + sfb1 --> sfb2 + end + subgraph SubfeedC [Subfeed C] + direction LR + sfc1["`Application specific + message in subfeed`"] + sfc2["`Application specific + message in subfeed`"] + sfc1 --> sfc2 + end + subgraph SubfeedD [Subfeed D] + direction LR + sfd1["`Application specific + message in subfeed`"] + sfd2["`Application specific + message in subfeed`"] + sfd1 --> sfd2 + end + + Main --> Meta + Meta --> SubfeedA + Meta --> SubfeedB + Meta --> SubfeedC + Meta --> SubfeedD +``` + +Uses for metafeeds + +- Storing multiple network identities with a special feed off the user's root metafeed. (contents of metafeed entries can be encrypted) +- Allow for multiple devices to use the same identity - https://github.com/ssbc/fusion-identity-spec + - Device A `invite`s Device B to identity + - Device B `consent`s + - Device A `entrust`s phone with private key + - Device B posts a `proof-of-key` message + - If device B lost, `tombstone` the fusion identity message + +## References + +- https://ssbc.github.io/scuttlebutt-protocol-guide/ \ No newline at end of file diff --git a/src/conf.py b/src/conf.py index ea071ea..c42def6 100644 --- a/src/conf.py +++ b/src/conf.py @@ -67,6 +67,23 @@ bibtex_bibfiles = ['p2p_ld_docs.bib'] bibtex_reference_style = 'author_year' bibtex_default_style = 'bbibtex' +# mermaid +mermaid_init_js = """ +mermaid.initialize({ + "startOnLoad":true, + "theme": "base", + "themeVariables": { + "darkMode": true, + "primaryColor": "#202020", + "primaryBorderColor": "#00A5CF", + "primaryTextColor": "#FFFFFF", + "secondaryColor": "#ffffff", + "mainBkg": "#30303000", + "lineColor": "#999999" + } +}) +""" + ## Formatting to handle dates that are in the `date` field rather than `year` import re import pybtex.plugin diff --git a/src/data_structures.md b/src/data_structures.md index 56459ec..df2e684 100644 --- a/src/data_structures.md +++ b/src/data_structures.md @@ -32,6 +32,7 @@ Triplet graphs similar to linked data fragments with envelopes. decoupling conte - 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. - Basically a container is a merkle DAG with binary data at its leaves a la the {index}`Linked Data; Platform` +- Re: Ordering - https://github.com/ssbc/ssb-tangle Re hashing a graph: the container always has one root node that is the container's identity from which a graph traversal starts. A {index}`Merkle DAG` is then constructed starting from the leaves. diff --git a/src/discovery.md b/src/discovery.md index ab8f966..295aba3 100644 --- a/src/discovery.md +++ b/src/discovery.md @@ -4,11 +4,20 @@ How do we find people and know how to connect to them? - Bootstrapping initial connections - Gossiping -- Hole punching + +```{index} Hole Punching +``` +## Hole Punching + +- https://tailscale.com/blog/how-nat-traversal-works/ +- {index}`Hypercore` - See: https://docs.holepunch.to/apps/keet.io + - https://github.com/mafintosh/dht-rpc + - https://docs.holepunch.to/building-blocks/hyperdht +- Socket Supply Co -# Scraps +## Scraps https://xmpp.org/extensions/xep-0030.html diff --git a/src/index.md b/src/index.md index 9ae263f..d9ac97e 100644 --- a/src/index.md +++ b/src/index.md @@ -41,7 +41,8 @@ evolvability :hidden: triplets -translation +adapter/index +translation/index ``` ```{toctree} diff --git a/src/translation/index.md b/src/translation/index.md new file mode 100644 index 0000000..b102829 --- /dev/null +++ b/src/translation/index.md @@ -0,0 +1,4 @@ +# Translation + +Translation/import of existing schema/formats. +