-
@ 812cff5a:5c40aeeb
2025-05-28 12:56:32NIP-01 — الشكل الأساسي للأحداث في نُستر
رقم التعريف (NIP): 01
العنوان: الشكل الأساسي للأحداث
الحالة: نهائي
المؤلف: fiatjaf
التاريخ: 2020-12-10
الملخص
هذا المستند يعرّف الشكل القياسي لأي "حدث" يتم تداوله ضمن شبكة نُستر (Nostr).
الهدف من هذا التنسيق هو ضمان إمكانية معالجة وتفسير الأحداث من قبل جميع العملاء والخوادم بطريقة موحّدة.
هيكل الحدث
كل حدث عبارة عن كائن يحتوي على الحقول التالية:
{ "id": <معرّف فريد>, "pubkey": <مفتاح عام للمرسل>, "created_at": <تاريخ الإنشاء كرقم UNIX timestamp>, "kind": <نوع الحدث>, "tags": [<قائمة من الوسوم>], "content": <المحتوى>, "sig": <التوقيع الرقمي> }
شرح الحقول
- id: سلسلة نصية تمثل SHA-256 لمحتوى الحدث.
- pubkey: المفتاح العام للمستخدم (عادةً 32 بايت بصيغة hex).
- created_at: الطابع الزمني للإنشاء (Unix timestamp).
- kind: رقم يحدد نوع الحدث (مثلاً: منشور، متابعة، إعادة نشر).
- tags: قائمة من الوسوم المرتبطة بالحدث (مثلاً: إشارة إلى مستخدم أو حدث).
- content: المحتوى الأساسي للحدث (نص أو بيانات).
- sig: التوقيع الرقمي الذي يثبت أن المرسل هو صاحب المحتوى.
كيفية توليد معرف الحدث
id
يتم توليد المعرّف عبر أخذ تمثيل JSON للحدث (بدون الحقول
id
وsig
) ثم حساب التجزئة باستخدام SHA-256.
توقيع الحدث
يُوقّع المستخدم الحدث باستخدام مفتاحه الخاص.
هذا التوقيع الرقمي يسمح لأي شخص بالتحقق من صحة الحدث باستخدام المفتاح العام.
أنواع الأحداث (kind)
0
: ملف التعريف (الاسم، الصورة، النبذة).1
: منشور عام نصي.2
: إعادة نشر.3
: قائمة المتابَعين.4
: رسالة مشفّرة خاصة.- أنواع أخرى يمكن إضافتها لاحقًا.
الوسوم (Tags)
الوسوم عبارة عن قوائم (arrays) داخل الحدث لتوفير معلومات إضافية.
مثال:["e", "<معرّف الحدث>"] ["p", "<مفتاح عام لمستخدم>"]
"e"
تشير إلى حدث."p"
تشير إلى مستخدم.
الخلاصة
NIP-01 هو الأساس الهيكلي لتبادل الأحداث عبر نُستر.
من خلال اتباع هذا الشكل، يمكن لجميع التطبيقات والخوادم العمل معاً بسلاسة، وضمان أمن وموثوقية كل حدث.