فهم نموذج الصندوق الصادر (Outbox Model)
تعلم كيف يضمن نظام الـ relay الذكي في Nostr وصول منشوراتك إلى جميع المتابعين
المشكلة: المنشورات المفقودة 📬
هل نشرت شيئًا على Nostr من قبل، لكن أصدقائك لم يتمكنوا من رؤيته؟ أو تابعت شخصًا ولكن لم ترَ منشوراته أبدًا؟ هذه هي مشكلة الاكتشاف.
الطريقة القديمة (قبل نموذج الصندوق الصادر)
أنت تنشر → Relay A → ❌ صديقك يستخدم Relay B فقط
وجهة نظر صديقك:
❌ "أين ذهب منشور @alice؟"
ستنشر إلى relay المفضل لديك، لكن متابعيك قد يستخدمون relays مختلفة تمامًا. لن يروا محتواك أبدًا!
الحل: نموذج الصندوق الصادر
يحل نموذج الصندوق الصادر هذا من خلال الإعلان عن مكان نشرك. فكر في الأمر مثل ترك عنوان إعادة توجيه.
أنت: "أنشر على Relay A، Relay B، و Relay C"
(مخزن في حدث kind:10002)
المتابع: "حسنًا! سأتحقق من هذه الـ relays بحثًا عن منشورات @alice"
ما هو نموذج الصندوق الصادر؟ 📮
نموذج الصندوق الصادر (NIP-65) يشبه وجود دليل عنوان عام يخبر الجميع بمكان العثور على منشوراتك.
تشبيه مكتب البريد الممتد
تذكر أن الـ relays تشبه مكاتب البريد؟ يضيف نموذج الصندوق الصادر نظام عنوان إعادة توجيه:
مكتب البريد التقليدي:
- لديك صندوق بريد واحد في مكتب بريد واحد
- إذا انتقلت، يرسل الناس البريد إلى المكان الخطأ
نموذج صندوق Nostr الصادر:
- لديك قائمة عامة من مكاتب البريد حيث تستلم البريد
- إذا “انتقلت” (تبديل relays)، تقوم بتحديث قائمتك العامة
- يعرف الجميع مكان العثور عليك
قائمة الـ relay الخاصة بك (kind:10002)
يقوم عميل Nostr بإنشاء قائمة relay تلقائيًا تخبر الآخرين:
{
"kind": 10002,
"tags": [
// Relays حيث تنشر بشكل عام (صندوقك الصادر)
["r", "wss://relay.nostr.info", "write"],
["r", "wss://relay.damus.io", "write"],
// Relays حيث تقرأ الإشارات (صندوقك الوارد)
["r", "wss://nos.lol", "read"],
["r", "wss://relay.snort.social", "read"]
]
}
شرح العلامات:
- write → حيث تنشر محتواك (صندوقك الصادر)
- read → حيث تتحقق من الإشارات/الردود (صندوقك الوارد)
- بدون علامة → كل من القراءة والكتابة
كيف يعمل في الممارسة العملية
السيناريو 1: Alice تنشر، Bob يتابع
قائمة Relay Alice (kind:10002):
- wss://relay.a.com [write]
- wss://relay.b.com [write]
Bob يتابع Alice. عميل Bob يرى:
"تحقق من wss://relay.a.com و wss://relay.b.com بحثًا عن منشورات Alice"
النتيجة: Bob يتصل بكلا الـ relay ويرى محتوى Alice! ✅
السيناريو 2: Charlie يذكر Alice
Charlie يذكر @alice في منشور
عميل Charlie يتحقق من قائمة relay Alice:
- wss://relay.a.com [read]
- wss://relay.b.com [read]
عميل Charlie يرسل الإشارة إلى relays READ الخاصة بـ Alice
النتيجة: Alice ترى الإشارة حتى لو كانت غير متصلة! ✅
السيناريو 3: Alice تبدل الـ relays
Alice تتوقف عن استخدام relay.a.com، تبدأ في استخدام relay.c.com
1. Alice تحدث قائمة relay kind:10002
2. تنتشر إلى جميع الـ relays المتصلة
3. المتابعون يبدأون تلقائيًا في التحقق من relay.c.com
النتيجة: لا توجد منشورات مفقودة، لا يوجد اتصال يدوي مطلوب! ✅
لماذا هذا مهم
1. الاكتشاف بدون مركزية
وسائل التواصل الاجتماعي التقليدية لديها خادم مركزي يعرف الجميع. Nostr لامركزي، لذا يحتاج إلى طريقة أخرى للعثور على الناس.
نموذج الصندوق الصادر = اكتشاف موزع
2. مقاومة الرقابة
إذا حظرك relay واحد، يمكن لمتتابعيك العثور عليك من خلال قائمة relay الخاصة بك على relays أخرى.
3. المرونة
بدّل الـ relays في أي وقت دون فقدان جمهورك. فقط قم بتحديث قائمة relay.
4. الكفاءة
العملاء يتصلون فقط بالـ relays التي تستخدمها، وليس كل relay موجود.
أفضل الممارسات
حافظ على قائمتك صغيرة
الموصى به: 2-4 relays إجمالاً
لماذا؟
- المزيد من الـ relays = المزيد من الاتصالات = استنزاف المزيد من البطارية
- عوائد متناقصة بعد 4 relays
- معظم المحتوى ينتشر إلى الـ relays الشائعة على أي حال
امزج القراءة والكتابة
إعداد جيد:
- 2-3 relays “write” (حيث تنشر)
- 1-2 relays “read” (للإشارات)
مثال:
الكتابة إلى: Relay شائع A، Relay الشخصي
القراءة من: Relay شائع B (للإشارات)
اختر Relays موثوقة
استخدم relays معروفة وموثوقة التي:
- لديها وقت تشغيل جيد
- تخزن المحتوى بشكل دائم (ليس مؤقتًا)
- قريبة جغرافيًا (زمن استجابة أقل)
المفاهيم الخاطئة الشائعة
”أحتاج إلى أن أكون على كل relay”
خطأ: كونك على 20+ relay لا يساعد. منشوراتك تنتشر عبر الشبكة. التزم بـ 2-4 relays عالية الجودة.
”إذا غادرت relay، أفقد متابعي”
خطأ: فقط قم بتحديث قائمة relay (kind:10002). سيبدأ المتابعون تلقائيًا في التحقق من relays الجديدة.
”الرسائل المباشرة الخاصة تمر عبر الصندوق الصادر أيضًا”
صحيح جزئيًا: NIP-17 (الرسائل الخاصة) يستخدم نموذج الصندوق الصادر للتسليم، ولكن مع تشفير إضافي.
”أحتاج إلى إخبار الناس يدويًا بـ relays الخاصة بي”
خطأ: عميلك ينشر قائمة relay تلقائيًا. يكتشفها المتابعون عندما يتابعونك.
الغوص العميق التقني (اختياري)
كيف تكتشف العملاء relays الخاصة بك
- المتابعة الأولية: عندما يتابعك شخص ما، يطلب عميله حدث kind:10002
- يُكشف عن relays: يحتوي الحدث على تفضيلات relay
- التحديثات المستمرة: إذا غيرت الـ relays، تنشر kind:10002 جديد
- الانتشار: ينشر العملاء قوائم relay للمساعدة في الاكتشاف
الأحداث القابلة للاستبدال
kind:10002 هو قابل للاستبدال - فقط أحدث نسخة يتم الاحتفاظ بها. وهذا يعني:
- لا انتفاخ تاريخي
- سهل التحديث
- بسيط للعملاء للإدارة
اعتبار الخصوصية
قائمة relay الخاصة بك هي عامة. يمكن لأي شخص رؤية أي الـ relays تستخدمها. هذا ضروري لكي يعمل النظام، ولكن كن على دراية أنه مرئي.
اتخذ إجراءً
تحقق من الـ relays الحالية
ابحث في إعدادات عميل Nostr:
- ما هي الـ relays التي تتصل بها؟
- هل تم وضع علامة عليها كـ “read” أو “write”؟
- هل لديك 2-4 إجمالاً؟
تحسين إعدادك
إذا كان لديك 5+ relays:
- أزل تلك التي لديها وقت تشغيل ضعيف
- احتفظ بـ 3-4 مفضلات
- تأكد من أن واحدًا على الأقل هو “read” للإشارات
انشر الوعي
ساعد الآخرين على الفهم:
- شارك هذا الدليل
- اشرح لماذا لا يمكنك رؤية منشورات شخص ما
- ساعد في استكشاف مشاكل الاكتشاف وإصلاحها
Outbox Model Quiz
Outbox Purpose
Question 1 of 5