diff --git a/src/SUMMARY.md b/src/SUMMARY.md index ee0cbb0..2b9fb96 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -14,6 +14,7 @@ - [NIP شماره دو](./nips/nip-02.rtl.md) - [NIP شماره سه](./nips/nip-03.rtl.md) - [NIP شماره چهار](./nips/nip-04.rtl.md) + - [NIP شماره پنج](./nips/nip-05.rtl.md) # نوستر برای توسعه دهندگان diff --git a/src/nips/nip-05.rtl.md b/src/nips/nip-05.rtl.md index f9559c4..f6cc313 100644 --- a/src/nips/nip-05.rtl.md +++ b/src/nips/nip-05.rtl.md @@ -6,4 +6,55 @@ در رویداد های گونه ۰ (متادیتا کاربر) یک کلید به نام `nip05` (https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1)[میتواند ادرس شناسه گر اینترنتی] (ادرسی ایمیل مانند) را به عنوان مقدار داشته باشد. هرچند که لینک به مشخصات شناسه گر اینترنتی در بالا وجود دارد اما نیپ ۵ تصور میکند که `` به کاراکتر های `a-z0-9-_.` حساس است و حساستی به کوچکی و بزرگی کاراکتر ها ندارد. -با دیدن این ادرس کلاینت ادرس را به دو قسمت `domain` و `` تقسیم میکند و از این مقادیر برای ایجاد یک درخواست GET به `https:///.well-known/nostr.json?name=` استفاده میکند. \ No newline at end of file +با دیدن این ادرس کلاینت ادرس را به دو قسمت `domain` و `` تقسیم میکند و از این مقادیر برای ایجاد یک درخواست GET به `https:///.well-known/nostr.json?name=` استفاده میکند. + +خروجی باید یک شی جیسان با کلید به نام `"names"` داشته باشد که به کلید های عمومی ای در مبنای ۱۶ اشاره کند. اگر کلید عمومی مربوط به `` با کلید عمومی کاربری که این شناسه در رویداد متادیتا او قرارداشته برابر باشد کلاینت میتواند نتیجه بگیرد که کلید عمومی با این شناسه هم میتواند شناخته شود. + +## نمونه + +اگر کلاینت رویدادی همچون رویداد زیر دید: + +```json +{ + "pubkey": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9", + "kind": 0, + "content": "{\"name\": \"bob\", \"nip05\": \"bob@example.com\"}" + ... +} +``` + +یک درخواست GET به ادرس `https://example.com/.well-known/nostr.json?name=bob` ایجاد میکند و چنین پاسخی میگیرد: + +```json +{ + "names": { + "bob": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9" + } +} +``` + +یا به همراه ویژگی رله ها پیشنهاد شده: + +```json +{ + "names": { + "bob": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9" + }, + "relays": { + "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9": [ "wss://relay.example.com", "wss://relay2.example.com" ] + } +} +``` + +اگر کلید عمومی با کلید عمومی داده شده در `"names"` برابر بود به این معنا است که وابستگی معتبر است و نشانی نیپ ۵ میتواند نمایش داده شود. + +ویژگی رله های پیشنهادی میتواند شامل کلید های عمومی به عنوان کلید و ارایه ای از ادرس رله ها به عنوان مقدار باشد. اگر این مقدار وجود داشت میتواند به کلاینت کمک کند تا بفهمد در کدام رله ها میتواند رویداد های مربوط به کلید عمومی داده شده را پیدا کند. وب سرور هایی که `.well-known/nostr.json` را بصورت پویا اراعه میکنند باید فهرست رله های پیشنهادی را هم در صورت وجود در همان درخواست برگردانند. + +## پیدا کردن کاربر ها با استفاده از شناسه نیپ ۵ + + یک کلاینت ممکن است پشتیبانی از یافتن کاربران با استفاده از شناسه گر اینترنتی را پیاده سازی کند. روند همچون پیش است اما برعکس: نخست کلاینت ادرس well-known را میگیرد سپس از خروجی کلید عمومی کاربر را بدست می اورد و کوشش میکند تا رویداد گونه ۰ کاربر را پیدا کند و بررسی کند که ادرس نیپ ۵ با ادرس نیپ ۵ در رویداد گونه ۰ کاربر برابر است یا نه. + +## یادداشت ها + +### کلاینت همیشه باید کلید های عمومی را دنبال کند نه ادرس های نیپ ۵ را + diff --git a/src/simple-nostr/quick-start-2.rtl.md b/src/simple-nostr/quick-start-2.rtl.md index 3e78cd1..17df3af 100644 --- a/src/simple-nostr/quick-start-2.rtl.md +++ b/src/simple-nostr/quick-start-2.rtl.md @@ -11,13 +11,6 @@ https://github.com/persianccbook/nips-persian/issues ## نوستر چیست؟ -قبل از خوندن این بخش اگر میخواید اشنایی با پروتکل رو کوتاه و سریع یادبگیرید من توییت زیر رو پیشنهاد میدم: - -https://x.com/Ali2kCom/status/1608110985314697218 - - -در ادامه ما سعی میکنیم خیلی ساده اما با مثال و کمی مفصل تر نوستر رو توضیح بدیم. - > !نکته: بیشتر موارد توضیح داده شده ممکنه پیچیده بنظر بیاد برای انجام دادن اما در نظر بگیرید که ابزار های زیادی هستن که این کار رو برای شما انجام میدن به سادگی که بعد از درک اولیه معرفی میکنیم. ### شبکه های اجتماعی فعلی @@ -89,7 +82,7 @@ https://snort.social/settings/keys میتونید کلید عمومیتون رو به فایل README گیتهاب این کتاب بیفیزایید و کلید عمومی دوستانی که پیشتر این مطلب رو خوندن و کلیدشون رو اونجا به اشتراک گذاشتن رو پیدا کنید و اونار دنبال کنید: -https://github.com/persianccbook/nips-persian +https://github.com/kehiy/persian-nostr-book ## ادامه