From 7e187c17b9d4e035e291de761b41cf6901b64228 Mon Sep 17 00:00:00 2001 From: Kayh Date: Thu, 28 Mar 2024 13:10:36 -0400 Subject: [PATCH] update social protocol --- .github/workflows/deploy.yml | 4 +- social/README.md | 42 ++++++++++--------- social/did-host/README.md | 1 + social/{ => dwn}/protocols/dwn-limits.json | 0 social/{ => dwn}/protocols/profile.json | 0 social/{ => dwn}/protocols/world-limits.json | 0 social/{ => dwn}/protocols/world.json | 0 social/{ => dwn}/schemas/dwn-limits.json | 0 .../{ => dwn}/schemas/profile-metadata.json | 0 social/{ => dwn}/schemas/world-limits.json | 0 social/{ => dwn}/schemas/world-metadata.json | 0 11 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 social/did-host/README.md rename social/{ => dwn}/protocols/dwn-limits.json (100%) rename social/{ => dwn}/protocols/profile.json (100%) rename social/{ => dwn}/protocols/world-limits.json (100%) rename social/{ => dwn}/protocols/world.json (100%) rename social/{ => dwn}/schemas/dwn-limits.json (100%) rename social/{ => dwn}/schemas/profile-metadata.json (100%) rename social/{ => dwn}/schemas/world-limits.json (100%) rename social/{ => dwn}/schemas/world-metadata.json (100%) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1bf999e..49dac4f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,8 +20,8 @@ jobs: - uses: actions/checkout@v4 - run: | mkdir -p out - cp -rL social/protocols out/protocols - cp -rL social/schemas out/schemas + cp -r social/dwn/protocols out/protocols + cp -r social/dwn/schemas out/schemas - uses: s0/git-publish-subdir-action@develop env: BRANCH: "gh-pages" diff --git a/social/README.md b/social/README.md index 0836e46..5f38a5b 100644 --- a/social/README.md +++ b/social/README.md @@ -1,18 +1,8 @@ # Social Protocol -The Wired's social protocol provides a self-hostable base layer for user identity and data storage. +The Wired's social protocol provides a self-hostable base for user identity and data storage. -## Decentralized Web Nodes (DWNs) - -[Decentralized Web Nodes](https://identity.foundation/decentralized-web-node/spec/) (DWNs) are servers -that store a user's data and provide an interface for others to interact with it. -These interactions could be a simple read to view a user's worlds, or more complex writes to add -comments or send encrypted friend requests. - -Additionally, DWNs are built on a CRDT that will sync data with other DWNs. -You can make use of a remote cloud-hosted DWN, while at the same time running your own local DWN to keep a backup of your data. - -### Decentralized Identifiers (DIDs) +## Decentralized Identifiers (DIDs) [Decentralized Identifiers](https://en.wikipedia.org/wiki/Decentralized_identifier) (DIDs) provide a globally unique namespace for both users and content within The Wired. @@ -21,19 +11,31 @@ DIDs are a generic format for addressing content that can be extended to support For example, [`did:web`](https://w3c-ccg.github.io/did-method-web/) can be used to address content using a traditional web URL, while [`did:ipid`](https://did-ipid.github.io/ipid-did-method/) can be used to address content over [IPFS](https://docs.ipfs.tech/). -A user's DID resolves to a document containing information such as their name, profile picture, -cryptographic keys that can be used to verify their identity, DWNs they are a part of, and anything else they want to store. +A user's DID resolves to a document containing information such as their name, +cryptographic keys that can be used to verify their identity, servers to contact them at, and anything else they want to store. -## Identity Servers +## DID Host -Identity servers are optional servers for remotely hosting DIDs. -For example, the server may use a method like `did:web`, allowing you to use a domain you control as the basis for your identity. +A DID host is a server that remotely hosts a DID and provides convenient access to it. +For example, the server may use a method like `did:web` and your DID document at a web domain. You can log in to the server with a typical login method - such as a username and password or OAuth connection - then receive -session keys which can be used to verify your ownership of the hosted DID to other parties. -This allows you to use your DID while maintaining the convienance of traditional app logins. +cryptographic keys which can be used to verify your ownership of the hosted DID to other parties. +This allows you to use DIDs with the convienance of traditional app logins. + +Running your own DID host server is a great first step towards self-sovereignity within The Wired. + +## Decentralized Web Nodes (DWNs) + +[Decentralized Web Nodes](https://identity.foundation/decentralized-web-node/spec/) (DWNs) are the data layer of The Wired. +DWNs build upon DIDs to store user data and provide an API for others to interact with it. +These interactions could be a simple read to view a document hosted by the user, or more complex writes to add +comments or send encrypted messages. -Running your own identity server is a great first step towards self-sovereignity within The Wired. +DWNs are built using [CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type)s and will sync their data +with other DWNs. +This allows you to make use of a public cloud-hosted DWN, while at the same time running your own +local DWN to keep a backup of your data. ## Moderation diff --git a/social/did-host/README.md b/social/did-host/README.md new file mode 100644 index 0000000..75e5a29 --- /dev/null +++ b/social/did-host/README.md @@ -0,0 +1 @@ +# DID Host diff --git a/social/protocols/dwn-limits.json b/social/dwn/protocols/dwn-limits.json similarity index 100% rename from social/protocols/dwn-limits.json rename to social/dwn/protocols/dwn-limits.json diff --git a/social/protocols/profile.json b/social/dwn/protocols/profile.json similarity index 100% rename from social/protocols/profile.json rename to social/dwn/protocols/profile.json diff --git a/social/protocols/world-limits.json b/social/dwn/protocols/world-limits.json similarity index 100% rename from social/protocols/world-limits.json rename to social/dwn/protocols/world-limits.json diff --git a/social/protocols/world.json b/social/dwn/protocols/world.json similarity index 100% rename from social/protocols/world.json rename to social/dwn/protocols/world.json diff --git a/social/schemas/dwn-limits.json b/social/dwn/schemas/dwn-limits.json similarity index 100% rename from social/schemas/dwn-limits.json rename to social/dwn/schemas/dwn-limits.json diff --git a/social/schemas/profile-metadata.json b/social/dwn/schemas/profile-metadata.json similarity index 100% rename from social/schemas/profile-metadata.json rename to social/dwn/schemas/profile-metadata.json diff --git a/social/schemas/world-limits.json b/social/dwn/schemas/world-limits.json similarity index 100% rename from social/schemas/world-limits.json rename to social/dwn/schemas/world-limits.json diff --git a/social/schemas/world-metadata.json b/social/dwn/schemas/world-metadata.json similarity index 100% rename from social/schemas/world-metadata.json rename to social/dwn/schemas/world-metadata.json