DID is a novel decentralized social media infrastructure that empowers users to own and distribute their content. Think of it like a decentralized Twitter where the data is entirely in the user's hands and where everyone is free to post content and subscribe to new posts. It could be also be compared to decentralized global RSS feed.
DID is decentralized, but not federated. Each user (domain) is responsible for hosting his social posts and each DID instance contains all the history of urls ever submitted to the platform.
⭐ Don't like to read? Try the DEMO of DID by publishing your first social post
📧 We are looking for active contributors - if you want to join this project please email [email protected]
🧠 Read more about philosophy of DID in this blog post
DID consists of three integral repositories:
- demo-writer: A user-friendly onboarding tutorial to generate keys and social posts.
- instance-nodejs: The heart of the DID network. It validates, stores, and distributes the post information.
- demo-reader: A platform that displays the information from the DID network in a user-friendly format.
This tutorial helps new users get started with DID:
- Generate private/public key pairs using the secp256k1 algorithm.
- Craft DID-compliant HTML documents for social posts.
- Guide on uploading the public key and post to their personal domain.
- Submit the post URL to the DID instance for publishing.
The core of the DID p2p network:
- Receives URL submissions and validates them.
- DOES NOT save post content, only URLs, signatures, domains, and content hashes.
- Distributes validated information to other peers on the network.
A platform to consume DID content:
- Crawls URLs from DID instance databases.
- Stores post data locally.
- Displays data in a Twitter-like interface, showing domains and "retweet" equivalents.
- Key Generation: User creates a private/public key pair (secp256k1).
- Key Hosting: User hosts the public key on their domain (e.g.,
userdomain.com/did.pem
). - Content Creation: User crafts a DID-compliant HTML page with their post and hosts it on their domain.
- Submission: User signs the hash of their content and URL and sends this to a DID instance.
- Validation: DID instance verifies the post's signature, content, and other aspects, then saves the URL and signature.
- Propagation: The URL's information is broadcasted on the p2p network for other instances to validate and store.
Main planned features
- Data synchronization algorithms for DID instances
- Allow image/link attachments for submissions
- Implement advanced reader features: comments, follow lists, popular posts listing etc