some basic pages and start of diagram

This commit is contained in:
sneakers-the-rat 2023-06-02 22:40:49 -07:00
parent 4e7dd7775a
commit 9890c25e95
24 changed files with 1506 additions and 2 deletions

View file

@ -14,6 +14,13 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Update rustup
run: rustup self update
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install nightly -c rust-docs
rustup override set nightly
- name: Install latest mdbook
run: |
tag=$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name')
@ -21,6 +28,10 @@ jobs:
mkdir mdbook
curl -sSL $url | tar -xz --directory=./mdbook
echo `pwd`/mdbook >> $GITHUB_PATH
- name: Install plugins
run: |
cargo install mdbook-bib
cargo install mdbook-mermaid
- name: Deploy GitHub Pages
run: |
# This assumes your book is in the root of your repository.

View file

@ -1 +1,5 @@
# docs
# docs
https://piracy.solutions/docs
Made with [mdBook](https://rust-lang.github.io/mdBook/)

View file

@ -4,3 +4,16 @@ language = "en"
multilingual = false
src = "src"
title = "p2p-ld"
[preprocessor.bib]
bibliography = "p2p_ld_docs.bib"
render-bib = "cited"
[preprocessor.mermaid]
command = "mdbook-mermaid"
[output.html]
site-url = "/docs/"
git-repository-url = "https://github.com/p2p-ld/docs"
git-repository-icon = "fa-github"
additional-js = ["mermaid.min.js", "mermaid-init.js"]

1
mermaid-init.js Normal file
View file

@ -0,0 +1 @@
mermaid.initialize({startOnLoad:true});

1282
mermaid.min.js vendored Normal file

File diff suppressed because one or more lines are too long

6
src/README.md Normal file
View file

@ -0,0 +1,6 @@
# Introduction
All of this is very work in progress :) plz do not rely on any of the descriptions or statements here, as they are all effectively provisional.
This site describes the implementation of the p2p linked data protocol in {{#cite saundersDecentralizedInfrastructureNeuro2022 }}

View file

@ -1,3 +1,31 @@
# Summary
- [Chapter 1](./chapter_1.md)
[Introduction](README.md)
- [Overview](./overview.md)
- [Comparison](./comparison.md)
- [P2P Concepts](./p2p_concepts.md)
- [Out of Scope](./out_of_scope.md)
# p2p-ld Protocol
- [Protocol](./protocol.md)
- [Identity](./identity.md)
- [Discovery](./discovery.md)
- [Data Structures](./data_structures.md)
- [Vocabulary](./vocabulary.md)
- [Querying](./querying.md)
- [Encryption](./encryption.md)
- [Federation](./federation.md)
- [Backwards Compatibility](./backwards_compatibility.md)
- [Evolvability](./evolvability.md)
# Ecosystem
- [Triplets]()
- [Translation]()
---
[Sketchpad](./sketchpad.md)

View file

@ -0,0 +1,6 @@
# Backwards Compatibility
- HTTP
- Bittorrent
- IPFS
- ActivityPub

44
src/comparison.md Normal file
View file

@ -0,0 +1,44 @@
# Comparison
All of this is TODO. Comparison to existing protocols and projects (just to situate in context, not talk shit obvs)
## "The big ones"
- BitTorrent
- IPFS
## "The research ones"
- Dat
- Hypercore
## Social
- ActivityPub/Fediverse
- Secure Scuttlebutt
- Matrix
## Semweb/LD
- SOLID
- Nanopubs
## To be categorized
- Agregore
- Arweave
- CAN
- Chord
- Earthstar
- Freenet
- Manyverse
- P2panda
- SAFE
- Storj
- Swarm
## Points of comparison
- not append-only
- metadata

8
src/data_structures.md Normal file
View file

@ -0,0 +1,8 @@
# Data Structures
Triplet graphs similar to linked data fragments with envelopes. decoupling content addressing from versioning
- Merkel DAGs
- Envelopes
- Versioning
- Typed objects with formatting

7
src/discovery.md Normal file
View file

@ -0,0 +1,7 @@
# Discovery
How do we find people and know how to connect to them?
- Bootstrapping initial connections
- Gossiping
- Hole punching

3
src/encryption.md Normal file
View file

@ -0,0 +1,3 @@
# Encryption
How can we make it possible to have a protocol that is "open" when it is intended to, but also protects privacy and consent when we need it to?

1
src/evolvability.md Normal file
View file

@ -0,0 +1 @@
# Evolvability

6
src/federation.md Normal file
View file

@ -0,0 +1,6 @@
# Federation
Making supra-peer clusters with explicit governance and policies for rehosting and sharing!
- Creating federations of peers
-

7
src/identity.md Normal file
View file

@ -0,0 +1,7 @@
# Identity
How is an individual peer identified?
- Cryptographic identity
- Web of trust/shared identity
- External verification/discovery via DNS and other out of band means.

7
src/out_of_scope.md Normal file
View file

@ -0,0 +1,7 @@
# Out of Scope
What should explicitly be left out of the protocol?
## Implementation
Things that are described in the spec, but details are left up to the implementation

16
src/overview.md Normal file
View file

@ -0,0 +1,16 @@
# Overview
p2p-ld
## Background
- Semweb/Linked Data
- Limitations/differences of existing p2p
## Use
- How is this intended to be used? by whom? in what contexts?
## Roadmap
- Development roadmap and timeline!

3
src/p2p_concepts.md Normal file
View file

@ -0,0 +1,3 @@
# P2P Concepts
Overview of the various concepts that p2p systems have to handle or address with links to the sections where we address them!

16
src/p2p_ld_docs.bib Normal file
View file

@ -0,0 +1,16 @@
@online{saundersDecentralizedInfrastructureNeuro2022,
title = {Decentralized Infrastructure for (Neuro)Science},
author = {Saunders, Jonny L.},
date = {2022-08-31},
eprint = {2209.07493},
eprinttype = {arxiv},
eprintclass = {cs},
doi = {10.48550/arXiv.2209.07493},
url = {http://arxiv.org/abs/2209.07493},
urldate = {2023-03-01},
abstract = {The most pressing problems in science are neither empirical nor theoretical, but infrastructural. Scientific practice is defined by coproductive, mutually reinforcing infrastructural deficits and incentive systems that everywhere constrain and contort our art of curiosity in service of profit and prestige. Our infrastructural problems are not unique to science, but reflective of the broader logic of digital enclosure where platformatized control of information production and extraction fuels some of the largest corporations in the world. I have taken lessons learned from decades of intertwined digital cultures within and beyond academia like wikis, pirates, and librarians in order to draft a path towards more liberatory infrastructures for both science and society. Based on a system of peer-to-peer linked data, I sketch interoperable systems for shared data, tools, and knowledge that map onto three domains of platform capture: storage, computation and communication. The challenge of infrastructure is not solely technical, but also social and cultural, and so I attempt to ground a practical development blueprint in an ethics for organizing and maintaining it. I intend this draft as a rallying call for organization, to be revised with the input of collaborators and through the challenges posed by its implementation. I argue that a more liberatory future for science is neither utopian nor impractical -- the truly impractical choice is to continue to organize science as prestige fiefdoms resting on a pyramid scheme of underpaid labor, playing out the clock as every part of our work is swallowed whole by circling information conglomerates. It was arguably scientists looking for a better way to communicate that created something as radical as the internet in the first place, and I believe we can do it again.},
archive = {https://web.archive.org/web/20230301224337/https://arxiv.org/abs/2209.07493},
pubstate = {preprint},
keywords = {archived,Computer Science - General Literature,E.2,H.4.3,H.5.3,K.2,K.4.1,K.4.3,K.6.4},
file = {/Users/jonny/Dropbox/papers/zotero/S/SaundersJ/saunders_2022_decentralized_infrastructure_for_(neuro)science.pdf}
}

1
src/protocol.md Normal file
View file

@ -0,0 +1 @@
# Protocol

3
src/querying.md Normal file
View file

@ -0,0 +1,3 @@
# Querying
How do we find peers that have subgraphs that are responsive to what we want?

1
src/references.md Normal file
View file

@ -0,0 +1 @@
# References

29
src/sketchpad.md Normal file
View file

@ -0,0 +1,29 @@
# Sketchpad
## System Diagram
Just a stub to check if mermaid works
```mermaid
erDiagram
IDENTITY {
string hash
}
INSTANCE {
string ip
string client
}
BEACON {
string uri
}
IDENTITY ||--o{ INSTANCE : runs
BEACON }o--|{ INSTANCE : links
BEACON }o--|| IDENTITY : represents
```
## Graph Data Model
- Triplets
- Containers
- Codecs

1
src/vocabulary.md Normal file
View file

@ -0,0 +1 @@
# Vocabulary