NIPs اختصار لـ Nostr Implementation Possibilities (إمكانيات تنفيذ نوستر).
وهي موجودة لتوثيق ما يمكن تنفيذه بواسطة برمجيات الريلاي (relay) و_العميل_ (client) المتوافقة مع Nostr.
- القائمة
- أنواع الأحداث
- أنواع الرسائل
- الوسوم الشائعة
- معايير قبول NIPs
- هل يمثل هذا المستودع عامل مركزية؟
- كيف يعمل هذا المستودع
- الرخصة
- NIP-01: وصف تدفق البروتوكول الأساسي
- NIP-02: قائمة المتابعة
- NIP-03: شهادات OpenTimestamps للأحداث
- NIP-04: الرسالة المباشرة المشفرة --- غير مُوصى به: مهمل لصالح NIP-17
- NIP-05: ربط مفاتيح نوستر بمعرّفات الإنترنت القائمة على DNS
- NIP-06: اشتقاق المفاتيح الأساسية من عبارة البذرة الاستذكارية
- NIP-07: قدرة
window.nostrلمتصفحات الويب - NIP-08: التعامل مع الإشارات --- غير مُوصى به: مهمل لصالح NIP-27
- NIP-09: طلب حذف الحدث
- NIP-10: الملاحظات النصية والسلاسل
- NIP-11: مستند معلومات الريلاي
- NIP-13: إثبات العمل
- NIP-14: وسم الموضوع في الأحداث النصية
- NIP-15: سوق نوستر (للأسواق المرنة)
- NIP-17: الرسائل المباشرة الخاصة
- NIP-18: إعادة النشر
- NIP-19: كيانات مُرمّزة بـ bech32
- NIP-21: مخطط URI
nostr: - NIP-22: التعليق
- NIP-23: المحتوى طويل الشكل
- NIP-24: حقول ووسوم بيانات وصفية إضافية
- NIP-25: التفاعلات
- NIP-26: التوقيع المُفوَّض على الأحداث --- غير مُوصى به: يضيف عبئاً غير ضروري مقابل فائدة قليلة
- NIP-27: إشارات الملاحظات النصية
- NIP-28: الدردشة العامة
- NIP-29: المجموعات القائمة على الريلاي
- NIP-30: الرموز التعبيرية المخصصة
- NIP-31: التعامل مع الأحداث غير المعروفة
- NIP-32: التصنيف
- NIP-34: أمور
git - NIP-35: التورنتات
- NIP-36: المحتوى الحساس
- NIP-37: أحداث المسودة
- NIP-38: حالات المستخدم
- NIP-39: الهويات الخارجية في الملفات الشخصية
- NIP-40: طابع انتهاء الصلاحية
- NIP-42: مصادقة العملاء على الريلايات
- NIP-43: بيانات وطلبات الوصول إلى الريلاي
- NIP-44: الحمولات المشفرة (مُصدَّرة)
- NIP-45: عدّ النتائج
- NIP-46: التوقيع عن بُعد في نوستر
- NIP-47: اتصال محفظة نوستر
- NIP-48: وسوم الوكيل
- NIP-49: تشفير المفتاح الخاص
- NIP-50: قدرة البحث
- NIP-51: القوائم
- NIP-52: أحداث التقويم
- NIP-53: الأنشطة المباشرة
- NIP-54: الويكي
- NIP-55: تطبيق التوقيع على أندرويد
- NIP-56: الإبلاغ
- NIP-57: صواعق لايتنينغ
- NIP-58: الشارات
- NIP-59: غلاف الهدية
- NIP-5A: مواقع الويب الثابتة للمفاتيح العامة
- NIP-60: محفظة Cashu
- NIP-61: نوتزابس
- NIP-62: طلب الاختفاء
- NIP-64: الشطرنج (PGN)
- NIP-65: بيانات قائمة الريلايات
- NIP-66: اكتشاف الريلايات ومراقبة الحيوية
- NIP-68: خلاصات الصور أولاً
- NIP-69: أحداث الطلبات من نظير لنظير
- NIP-70: الأحداث المحمية
- NIP-71: أحداث الفيديو
- NIP-72: المجتمعات المُدارة
- NIP-73: معرّفات المحتوى الخارجي
- NIP-75: أهداف الزاب
- NIP-77: مزامنة Negentropy
- NIP-78: بيانات خاصة بالتطبيق
- NIP-7D: السلاسل
- NIP-84: الإبرازات
- NIP-85: التأكيدات الموثوقة
- NIP-86: واجهة إدارة الريلاي
- NIP-87: قابلية اكتشاف سكّة الإي-كاش
- NIP-88: الاستطلاعات
- NIP-89: معالجات التطبيقات المُوصى بها
- NIP-90: آلات بيع البيانات
- NIP-92: مرفقات الوسائط
- NIP-94: بيانات وصفية للملفات
- NIP-96: تكامل تخزين ملفات HTTP --- غير مُوصى به: استُبدل بواجهات برمجة تطبيق blossom
- NIP-98: مصادقة HTTP
- NIP-99: الإدراجات المصنّفة
- NIP-A0: الرسائل الصوتية
- NIP-A4: الرسائل العامة
- NIP-B0: علامات ويب
- NIP-B7: blossblossom
- NIP-BE: بروتوكول اتصالات نوستر عبر BLE
- NIP-C0: مقتطفات الكود
- NIP-C7: الدردشات
- NIP-EE: المراسلة المشفرة من طرف لطرف باستخدام بروتوكول MLS --- غير مُوصى به: حل محله بروتوكول Marmot
| kind | الوصف | NIP |
|---|---|---|
0 |
بيانات المستخدم الوصفية | 01 |
1 |
ملاحظة نصية قصيرة | 10 |
2 |
توصية ريلاي | 01 (مهمل) |
3 |
المتابعات | 02 |
4 |
رسائل مباشرة مشفرة | 04 |
5 |
طلب حذف حدث | 09 |
6 |
إعادة نشر | 18 |
7 |
تفاعل | 25 |
8 |
منح شارة | 58 |
9 |
رسالة دردشة | C7 |
10 |
رد متسلسل في دردشة جماعية | 29 (مهمل) |
11 |
سلسلة | 7D |
12 |
رد متسلسل في مجموعة | 29 (مهمل) |
13 |
ختم | 59 |
14 |
رسالة مباشرة | 17 |
15 |
رسالة ملف | 17 |
16 |
إعادة نشر عامة | 18 |
17 |
تفاعل مع موقع ويب | 25 |
20 |
صورة | 68 |
21 |
حدث فيديو | 71 |
22 |
حدث فيديو صوري قصير | 71 |
24 |
رسالة عامة | A4 |
30 |
مرجع داخلي | NKBIP-03 |
31 |
مرجع ويب خارجي | NKBIP-03 |
32 |
مرجع نسخة ورقية | NKBIP-03 |
33 |
مرجع مُوجّه | NKBIP-03 |
40 |
إنشاء قناة | 28 |
41 |
بيانات قناة وصفية | 28 |
42 |
رسالة قناة | 28 |
43 |
إخفاء رسالة في القناة | 28 |
44 |
كتم مستخدم في القناة | 28 |
62 |
طلب الاختفاء | 62 |
64 |
شطرنج (PGN) | 64 |
443 |
حزمة مفاتيح | Marmot |
444 |
رسالة ترحيب | Marmot |
445 |
حدث مجموعة | Marmot |
818 |
طلبات الدمج | 54 |
1018 |
رد استطلاع | 88 |
1021 |
عرض سعر | 15 |
1022 |
تأكيد عرض السعر | 15 |
1040 |
OpenTimestamps | 03 |
1059 |
غلاف هدية | 59 |
1063 |
بيانات وصفية للملف | 94 |
1068 |
استطلاع | 88 |
1111 |
تعليق | 22 |
1222 |
رسالة صوتية | A0 |
1244 |
تعليق على رسالة صوتية | A0 |
1311 |
رسالة دردشة مباشرة | 53 |
1337 |
مقتطف كود | C0 |
1617 |
رقع | 34 |
1618 |
طلبات سحب | 34 |
1619 |
تحديثات طلب السحب | 34 |
1621 |
مسائل | 34 |
1622 |
ردود Git (مهمل) | 34 |
1630-1633 |
حالة | 34 |
1971 |
متتبع المشاكل | nostrocket |
1984 |
إبلاغ | 56 |
1985 |
تصنيف | 32 |
1986 |
مراجعات ريلاي | |
1987 |
تضمينات AI / قوائم متجهات | NKBIP-02 |
2003 |
تورنت | 35 |
2004 |
تعليق تورنت | 35 |
2022 |
تجمع Coinjoin | joinstr |
4550 |
موافقة على مشاركة مجتمع | 72 |
5000-5999 |
طلب مهمة | 90 |
6000-6999 |
نتيجة مهمة | 90 |
7000 |
ملاحظات مهمة | 90 |
7374 |
رموز محفظة Cashu محجوزة | 60 |
7375 |
رموز محفظة Cashu | 60 |
7376 |
سجل محفظة Cashu | 60 |
7516 |
سجل تخزين جغرافي | geocaching |
7517 |
إثبات اكتشاف تخزين جغرافي | geocaching |
8000 |
إضافة مستخدم | 43 |
8001 |
إزالة مستخدم | 43 |
9000-9030 |
أحداث تحكم المجموعة | 29 |
9041 |
هدف زاب | 75 |
9321 |
نوتزاب | 61 |
9467 |
تسجيل دخول Tidal | Tidal-nostr |
9734 |
طلب زاب | 57 |
9735 |
زاب | 57 |
9802 |
إبرازات | 84 |
10000 |
قائمة الكتم | 51 |
10001 |
قائمة التثبيت | 51 |
10002 |
بيانات قائمة الريلايات | 65, 51 |
10003 |
قائمة العلامات | 51 |
10004 |
قائمة المجتمعات | 51 |
10005 |
قائمة الدردشات العامة | 51 |
10006 |
قائمة الريلايات المحظورة | 51 |
10007 |
قائمة ريلايات البحث | 51 |
10008 |
شارات الملف الشخصي | 51, 58 |
10009 |
مجموعات المستخدم | 51, 29 |
10011 |
الهويات الخارجية | 39 |
10012 |
قائمة الريلايات المفضلة | 51 |
10013 |
قائمة ريلايات الأحداث الخاصة | 37 |
10015 |
قائمة الاهتمامات | 51 |
10019 |
توصية سكّة نوتزاب | 61 |
10020 |
متابعات الوسائط | 51 |
10030 |
قائمة رموز المستخدم التعبيرية | 51 |
10050 |
قائمة الريلايات لاستقبال DM | 51, 17 |
10051 |
قائمة ريلايات حزمة المفاتيح | Marmot |
10063 |
قائمة خوادم المستخدم | Blossom |
10096 |
قائمة خوادم تخزين الملفات | 96 (مهمل) |
10166 |
إعلان مراقبة الريلاي | 66 |
10312 |
تواجد في الغرفة | 53 |
10377 |
إعلان وكيل | Nostr Epoxy |
11111 |
إعلان طريقة النقل | Nostr Epoxy |
13194 |
معلومات المحفظة | 47 |
13534 |
قوائم العضوية | 43 |
14388 |
قوائم تأثيرات صوت المستخدم | Corny Chat |
15128 |
بيان جذر nsite | 5A |
17375 |
حدث محفظة Cashu | 60 |
21000 |
Lightning Pub RPC | Lightning.Pub |
22242 |
مصادقة العميل | 42 |
23194 |
طلب المحفظة | 47 |
23195 |
رد المحفظة | 47 |
24133 |
اتصال نوستر | 46 |
24242 |
كائنات مخزنة على خوادم الوسائط | Blossom |
27235 |
مصادقة HTTP | 98 |
28934 |
طلب الانضمام | 43 |
28935 |
طلب الدعوة | 43 |
28936 |
طلب المغادرة | 43 |
30000 |
مجموعات المتابعة | 51 |
30001 |
قوائم عامة | 51 (مهمل) |
30002 |
مجموعات ريلاي | 51 |
30003 |
مجموعات العلامات | 51 |
30004 |
مجموعات التنسيق | 51 |
30005 |
مجموعات فيديو | 51 |
30006 |
مجموعات صور | 51 |
30007 |
مجموعات كتم الأنواع | 51 |
30008 |
مجموعات الشارات | 51, 58 |
30009 |
تعريف الشارة | 58 |
30015 |
مجموعات الاهتمامات | 51 |
30017 |
إنشاء أو تحديث كشك | 15 |
30018 |
إنشاء أو تحديث منتج | 15 |
30019 |
واجهة/تجربة سوق | 15 |
30020 |
منتج يُباع كمزاد | 15 |
30023 |
محتوى طويل الشكل | 23 |
30024 |
مسودة محتوى طويل الشكل | 23 |
30030 |
مجموعات رموز تعبيرية | 51 |
30040 |
فهرس منشورات مُنسّق | NKBIP-01 |
30041 |
محتوى منشور مُنسّق | NKBIP-01 |
30063 |
مجموعات قطع الإصدار | 51 |
30078 |
بيانات خاصة بالتطبيق | 78 |
30166 |
اكتشاف الريلاي | 66 |
30267 |
مجموعات تنسيق تطبيقات | 51 |
30311 |
حدث مباشر | 53 |
30312 |
غرفة تفاعلية | 53 |
30313 |
حدث مؤتمر | 53 |
30315 |
حالات المستخدم | 38 |
30382 |
تأكيد موثوق من مستخدم | 85 |
30383 |
تأكيد موثوق لحدث | 85 |
30384 |
تأكيد موثوق لعنوان | 85 |
30388 |
مجموعة شرائح | Corny Chat |
30402 |
إدراج مصنّف | 99 |
30403 |
مسودة إدراج مصنّف | 99 |
30617 |
إعلانات مستودع | 34 |
30618 |
إعلانات حالة المستودع | 34 |
30818 |
مقالة ويكي | 54 |
30819 |
إعادة توجيه | 54 |
31234 |
حدث مسودة | 37 |
31388 |
مجموعة روابط | Corny Chat |
31890 |
تغذية | NUD: Custom Feeds |
31922 |
حدث تقويم قائم على التاريخ | 52 |
31923 |
حدث تقويم قائم على الوقت | 52 |
31924 |
تقويم | 52 |
31925 |
رsvp حدث تقويم | 52 |
31989 |
توصية معالج | 89 |
31990 |
معلومات المعالج | 89 |
32267 |
تطبيق برمجي | |
32388 |
مفضلات غرف المستخدم | Corny Chat |
33388 |
نتائج عالية | Corny Chat |
34235 |
حدث فيديو عنونة | 71 |
34236 |
حدث فيديو قصير عنونة | 71 |
34388 |
تأثيرات صوتية | Corny Chat |
34550 |
تعريف مجتمع | 72 |
34128 |
بيان nsite قديم | 5A (مهمل) |
35128 |
بيان nsite مُسمّى | 5A |
38172 |
إعلان سكّة Cashu | 87 |
38173 |
إعلان Fedimint | 87 |
37516 |
إدراج تخزين جغرافي | geocaching |
38383 |
أحداث الطلبات من نظير لنظير | 69 |
39000-9 |
أحداث بيانات المجموعة الوصفية | 29 |
39089 |
حزم البدء | 51 |
39092 |
حزم بدء الوسائط | 51 |
39701 |
علامات ويب | B0 |
| النوع | الوصف | NIP |
|---|---|---|
EVENT |
يُستخدم لنشر الأحداث | 01 |
REQ |
يُستخدم لطلب الأحداث والاشتراك في التحديثات الجديدة | 01 |
CLOSE |
يُستخدم لإيقاف الاشتراكات السابقة | 01 |
AUTH |
يُستخدم لإرسال أحداث المصادقة | 42 |
COUNT |
يُستخدم لطلب عدّ الأحداث | 45 |
| النوع | الوصف | NIP |
|---|---|---|
EOSE |
يُستخدم لإبلاغ العملاء بأن جميع الأحداث المخزّنة قد أُرسلت | 01 |
EVENT |
يُستخدم لإرسال الأحداث المطلوبة إلى العملاء | 01 |
NOTICE |
يُستخدم لإرسال رسائل مقروءة بشرياً إلى العملاء | 01 |
OK |
يُستخدم لإبلاغ العملاء بنجاح أو فشل EVENT | 01 |
CLOSED |
يُستخدم لإبلاغ العملاء بأن REQ أُنهي مع سبب الانتهاء | 01 |
AUTH |
يُستخدم لإرسال تحديات المصادقة | 42 |
COUNT |
يُستخدم لإرسال أعداد الأحداث المطلوبة إلى العملاء | 45 |
| الاسم | القيمة | المَعامِلات الأخرى | NIP |
|---|---|---|---|
a |
إحداثيات حدث | عنوان URL للريلاي | 01 |
A |
العنوان الجذري | عنوان URL للريلاي | 22 |
c |
معرّف الالتزام | 34 | |
d |
مُعرّف | -- | 01 |
D |
يوم | -- | 52 |
e |
معرّف الحدث (hex) | عنوان URL للريلاي، علامة، pubkey (hex) | 01, 10 |
E |
معرّف الحدث الجذري | عنوان URL للريلاي | 22 |
f |
رمز العملة | -- | 69 |
g |
تجزئة جغرافية | -- | 52 |
h |
معرّف مجموعة | -- | 29 |
i |
هوية خارجية | إثبات، تلميح url | 35, 39, 73 |
I |
الهوية الخارجية الجذرية | -- | 22 |
k |
نوع (kind) | -- | 18, 25, 72, 73 |
K |
النطاق الجذري | -- | 22 |
l |
تصنيف، نطاق تصنيف، اسم لغة | -- | 32, C0 |
L |
نطاق التصنيف | -- | 32 |
m |
نوع MIME | -- | 94 |
p |
مفتاح عام (hex) | عنوان URL للريلاي، لقب | 01, 02, 22 |
P |
مفتاح عام (hex) | -- | 22, 57 |
q |
معرّف حدث (hex) | عنوان URL للريلاي، pubkey (hex) | 18 |
r |
مرجع (URL، إلخ) | -- | 24, 25 |
r |
عنوان URL للريلاي | علامة | 65 |
s |
حالة | -- | 69 |
t |
وسم | -- | 24, 34, 35 |
u |
url | -- | 61, 98 |
x |
تجزئة | -- | 35, 56 |
y |
منصة | -- | 69 |
z |
رقم الطلب | -- | 69 |
- |
-- | -- | 70 |
alt |
ملخص | -- | 31 |
amount |
مللي ساتوشي، كسلسلة نصية | -- | 57 |
bolt11 |
فاتورة bolt11 |
-- | 57 |
branch-name |
اقتراح اسم فرع | -- | 34 |
challenge |
سلسلة التحدي | -- | 42 |
client |
اسم، عنوان | عنوان URL للريلاي | 89 |
clone |
عنوان URL لاستنساخ git | -- | 34 |
content-warning |
السبب | -- | 36 |
delegation |
pubkey، شروط، رمز تفويض | -- | 26 |
dep |
تبعية مطلوبة | -- | C0 |
description |
وصف | -- | 34, 57, 58, C0 |
emoji |
رمز قصير، عنوان URL للصورة | -- | 30 |
encrypted |
-- | -- | 90 |
extension |
امتداد ملف | -- | C0 |
expiration |
طابع زمني يونكس (سلسلة نصية) | -- | 40 |
file |
مسار كامل (سلسلة نصية) | -- | 35 |
goal |
معرّف حدث (hex) | عنوان URL للريلاي | 75 |
merge-base |
معرّف التزام | 34 | |
HEAD |
ref: refs/heads/<branch-name> |
34 | |
image |
عنوان URL للصورة | أبعاد بالبكسل | 23, 52, 58 |
imeta |
بيانات وصفية مضمنة | -- | 92 |
license |
رخصة المحتوى المُشارك | -- | C0 |
lnurl |
lnurl مُرمّز بـ bech32 |
-- | 57 |
location |
سلسلة الموقع | -- | 52, 99 |
name |
اسم | -- | 34, 58, 72, C0 |
nonce |
عشوائي | صعوبة | 13 |
preimage |
تجزئة فاتورة bolt11 |
-- | 57 |
price |
سعر | عملة، تكرار | 99 |
proxy |
معرّف خارجي | بروتوكول | 48 |
published_at |
طابع زمني يونكس (سلسلة نصية) | -- | 23, B0 |
relay |
عنوان URL للريلاي | -- | 42, 17 |
relays |
قائمة ريلايات | -- | 57 |
repo |
مرجع للمستودع الأصلي | -- | C0 |
runtime |
بيئة تشغيل أو مواصفات | -- | C0 |
server |
عنوان URL لخادم تخزين الملفات | -- | 96 |
sound |
رمز قصير، عنوان URL صوت، عنوان URL صورة | -- | 51 |
subject |
موضوع | -- | 14, 17, 34 |
summary |
ملخص | -- | 23, 52 |
thumb |
صورة مصغرة للشارة | أبعاد بالبكسل | 58 |
title |
عنوان | -- | 23, B0 |
tracker |
عنوان URL لمتتبع التورنت | -- | 35 |
web |
عنوان URL لصفحة ويب | -- | 34 |
zap |
مفتاح عام (hex)، عنوان URL ريلاي | وزن | 57 |
يُرجى تحديث هذه القوائم عند اقتراح NIPs جديدة.
- يجب أن تكون مُنفَّذة بالكامل في عميلين على الأقل وريلاي واحد — حيثما ينطبق ذلك.
- يجب أن تكون منطقية.
- يجب أن تكون اختيارية ومتوافقة مع الإصدارات السابقة: يجب الحرص على أن العملاء والريلايات التي تختار عدم تنفيذها لا تتوقف عن العمل عند التفاعل مع تلك التي تختار التنفيذ.
- يجب ألا يكون هناك أكثر من طريقة واحدة لفعل الشيء نفسه.
- سيتم وضع قواعد أخرى عند الحاجة.
لتعزيز التشغيل البيني، نحتاج إلى معايير يمكن للجميع اتباعها، ونحتاجها لتعريف طريقة واحدة لفعل كل شيء دون الإضرار أبداً بـ التوافق مع الإصدارات السابقة، ولهذا الغرض لا مفر من الحصول على موافقة الجميع على نفس الشيء والاحتفاظ بفهرس مركزي لهذه المعايير. لكن حقيقة وجود مثل هذا الفهرس لا تضر باللامركزية في نوستر. في أي وقت يمكن تحدي الفهرس المركزي إذا فشل في تلبية احتياجات البروتوكول ويمكنه الانتقال إلى أماكن أخرى وصيانته من قبل أشخاص آخرين.
يمكن حتى أن يتشعب إلى نسخ متعددة، ثم يذهب بعض العملاء في طريق وبعضهم في طريق آخر، وبعض العملاء يلتزمون بكلا المعيارين المتنافسين. هذا سيؤذي بساطة وانفتاح وتشغيل نوستر البيني قليلاً، لكن كل شيء سيظل يعمل في المدى القصير.
هناك قائمة بمطوري برمجيات نوستر البارزين الذين يمتلكون صلاحية الكتابة في هذا المستودع، لكن ذلك موجود في الغالب لأسباب عملية، فبطبيعة الشيء الذي نتعامل معه يمكن لمالك المستودع إلغاء العضوية وإعادة كتابة التاريخ كما يشاء — وإذا كانت هذه الإجراءات غير مبررة أو يُنظر إليها على أنها سيئة أو خبيثة يجب على المجتمع أن يتفاعل.
قد تظهر المعايير بطريقتين: الطريقة الأولى هي أن شخصاً ما يبدأ بفعل شيء ما، ثم ينسخه الآخرون؛ الطريقة الثانية هي أن شخصاً ما يملك فكرة عن معيار جديد يمكن أن يفيد عملاء متعددين والبروتوكول بشكل عام دون كسر التوافق مع الإصدارات السابقة ومبدأ وجود طريقة واحدة لفعل الأشياء، ثم يكتب تلك الفكرة ويقدمها إلى هذا المستودع، ويقرأها الأطراف المهتمة ويقدمون ملاحظاتهم، ثم بمجرد أن يتفق معظم الناس بشكل معقول نُدون ذلك في NIP يمكن لمطوري العملاء والريلايات المهتمين بالميزة المضي قدماً في تنفيذها.
هاتان الطريقتان لتوحيد الأشياء مدعومتان في هذا المستودع. وعلى الرغم من أن الطريقة الثانية مفضلة، سيُبذل جهد لتحويل المعايير التي ظهرت خارج هذا المستودع إلى NIPs يمكن الرجوع إليها لاحقاً وفهمها وتنفيذها بسهولة من قبل الآخرين — لكن من الواضح أنه كما في أي نظام بشري يمكن تطبيق التقدير عندما تُعتبر المعايير ضارة.
جميع NIPs ملكية عامة.