- स्थिर वेबसाइटों का उपयोग करने वाला एक विकेंद्रीकृत सोशल नेटवर्किंग प्रोटोकॉल, जिसमें हर उपयोगकर्ता अपने डेटा का सीधे स्वामित्व और प्रबंधन करता है
- सारा डेटा एन्क्रिप्टेड JSON स्टोरेज में रखा जाता है, और ब्राउज़र क्लाइंट फ़ीड एग्रीगेट करता है तथा पोस्ट प्रकाशित करता है
- सर्वर या रिले के बिना, दोस्तों की वेबसाइटों और ब्राउज़रों के बीच सीधे संचार के जरिए काम करता है
- उपयोगकर्ता का डोमेन नाम ही उसकी पहचान है, और HTTPS/TLS के माध्यम से प्रमाणित होता है
- सरल संरचना के साथ self-sovereign social network को लागू करता है, और व्यक्तियों के बीच भरोसे-आधारित संवाद पर फ़ोकस करता है
sAT Protocol अवलोकन
s@ एक स्थिर साइट आधारित विकेंद्रीकृत सोशल नेटवर्किंग प्रोटोकॉल है, जिसमें हर उपयोगकर्ता अपने डेटा को अपनी वेबसाइट पर संग्रहीत करता है
- सारा डेटा एन्क्रिप्टेड JSON फ़ाइलों के रूप में संग्रहीत होता है, और ब्राउज़र क्लाइंट इन्हें पढ़कर पोस्ट प्रकाशित करने और फ़ीड एग्रीगेशन का काम करता है
- यह केंद्रीय सर्वर या रिले के बिना काम करता है, और डेटा उपयोगकर्ता की साइट से सीधे दोस्त के ब्राउज़र तक जाता है
- पोस्ट का आदान-प्रदान केवल आपसी follow संबंध होने पर संभव है, जिससे influencer-केंद्रित संरचना को बाहर रखा जाता है
- यह प्रोटोकॉल GitHub Pages जैसी किसी विशेष होस्टिंग सेवा पर निर्भर नहीं है
पहचान (Identity)
- उपयोगकर्ता का डोमेन नाम ही पहचान की भूमिका निभाता है
- HTTPS/TLS के माध्यम से यह प्रमाणित होता है कि डोमेन स्वामी ने ही सामग्री प्रकाशित की है
डिस्कवरी (Discovery)
एन्क्रिप्शन मॉडल (Encryption Model)
- सारा उपयोगकर्ता डेटा एन्क्रिप्टेड JSON स्टोरेज में रखा जाता है, और केवल उपयोगकर्ता तथा followers ही इसे डिक्रिप्ट कर सकते हैं
- X25519 key pair का उपयोग कर public key को
profile.json में प्रकाशित किया जाता है, और private key को ब्राउज़र localStorage में रखा जाता है
- पोस्ट डेटा को XChaCha20-Poly1305 से एन्क्रिप्ट किया जाता है, और content key को प्रत्येक follower के लिए
libsodium के crypto_box_seal से एन्क्रिप्ट किया जाता है
keys/_self.json फ़ाइल में उपयोगकर्ता की content key और publishing secrets शामिल होते हैं, जिन्हें केवल वही डिक्रिप्ट कर सकता है
key rotation और unfollow
- unfollow होने पर नई content key बनाई जाती है और सभी पोस्टों को फिर से एन्क्रिप्ट किया जाता है
- बचे हुए followers के लिए नए key envelopes बनाए जाते हैं और
keys/_self.json अपडेट किया जाता है
- जिसे unfollow किया गया है, वह अब पोस्टों को डिक्रिप्ट नहीं कर सकता
डिक्रिप्शन फ्लो
- जब कोई विज़िटर दोस्त की साइट पर जाता है, तो वह अपनी private key से
keys/{follower-domain}.json को डिक्रिप्ट कर content key प्राप्त करता है
- इसके बाद
posts/index.json और अलग-अलग पोस्ट (posts/{id}.json.enc) को लाकर डिक्रिप्ट किया जाता है
डेटा संरचना (Data Schema)
- हर पोस्ट को अलग-अलग एन्क्रिप्टेड फ़ाइल के रूप में संग्रहीत किया जाता है, और
posts/index.json में पोस्ट ID नई से पुरानी क्रम में सूचीबद्ध होती हैं
- पोस्ट ऑब्जेक्ट का उदाहरण:
{
"id": "20260309T141500Z-a1b2",
"author": "alice.com",
"created_at": "2026-03-09T14:15:00Z",
"text": "Hello, decentralized world!",
"reply_to": null,
"reply_to_author": null
}
- पोस्ट ID, ISO8601 UTC timestamp और 4-अक्षर वाले random hash से बनी होती है
follow सूची (Follow List)
फ़ीड एग्रीगेशन (Feed Aggregation)
- क्लाइंट follow सूची पढ़ता है और प्रत्येक follower की पोस्टों को डिक्रिप्ट करके समयक्रमिक फ़ीड बनाता है
- पोस्टों को
created_at के आधार पर descending क्रम में sort किया जाता है
रिप्लाई (Reply)
- रिप्लाई वे पोस्ट हैं जिनमें
reply_to और reply_to_author फ़ील्ड सेट होते हैं
- nested replies समर्थित नहीं हैं, और केवल top-level पोस्ट पर सीधे रिप्लाई किया जा सकता है
- यदि मूल पोस्ट दिखाई नहीं देती (जैसे non-follow स्थिति में), तो रिप्लाई भी प्रदर्शित नहीं होगी
प्रकाशन (Publishing)
- नई पोस्ट बनाना → content key से एन्क्रिप्ट करना → स्थिर साइट पर अपलोड करना →
posts/index.json अपडेट करना
- अपलोड के लिए GitHub Contents API आदि का उपयोग किया जा सकता है
- publishing secrets को
keys/_self.json में एन्क्रिप्ट करके संग्रहीत किया जाता है
स्थिर साइट संरचना उदाहरण
{domain}/satellite/
profile.json # public key और प्रोफ़ाइल
posts/
index.json # पोस्ट ID सूची
{id}.json.enc # एन्क्रिप्टेड पोस्ट
follows/
index.json # follow सूची
keys/
_self.json # content key और credentials
{domain}.json # follower-विशिष्ट content key
FAQ
- “क्या यह RSS + एन्क्रिप्शन है?” → हाँ
- “क्या यह AT Protocol का firehose-रहित वर्ज़न है?” → हाँ
- “क्या यह scalable है?” → नहीं (“दोस्ती भी scalable नहीं होती”)
- “क्या s का मतलब slow/shitty है?” → हाँ
- “क्या इसे self-host किया जा सकता है?” → हाँ, लेकिन CORS सक्षम होना चाहिए
अभी कोई टिप्पणी नहीं है.