Skip to content

Commit

Permalink
nip-10 - done.
Browse files Browse the repository at this point in the history
  • Loading branch information
kehiy committed Nov 15, 2024
1 parent c65870c commit 6d91448
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- [NIP شماره هفت](./nips/nip-07.rtl.md)
- [NIP شماره هشت](./nips/nip-08.rtl.md)
- [NIP شماره نه](./nips/nip-09.rtl.md)
- [NIP شماره ده](./nips/nip-10.rtl.md)

# نوستر برای توسعه دهندگان

Expand Down
69 changes: 69 additions & 0 deletions src/nips/nip-10.rtl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@

# نیپ شماره 10

## راجع به تگ های p و e در رویداد های متنی (گونه ۱)

`پیش نویس` ‍‍`دلبخواهی`

### چکیده

این نیپ توضیح میدهد که چگونه از تگ های e و p در رویداد های متنی استفاده شود. بخصوص رویداد هایی که درپاسخ به رویداد های متنی دیگری ارسال شده اند. این به کلاینت ها کمک میکند تا پاسخ ها را در رشته ای درختی با رویداد اصلی به عنوان ریشه درخت قرار دهد.

### تگ e موقعیتی (منسوخ شده)

> این رویه در استفاده است اما باید به عنوان منسوخ شده در نظر گرفته شود.
["e", <event-id>, <relay-url>] همانطور که در نیپ ۱ آمده.

به طوری که:

* <event-id>: شناسه رویداد ارجاع داده شده است.
* <relay-url>: ادرس رله پیشنهادی برای رویداد ارجاع داده شده. کلاینت های زیادی این را دلبخواهی در نظر میگیرند.

موقعیت تگ e در رویداد معنا های متفاوتی دارد:

* بدون تگ e:
این رویداد یک پاسخ نیست و به رویدادی ارجاعی ندارد.

* یک تگ e:
["e", <id>]: ایدی رویدادی که این رویداد پاسخ به ان است.

* دو تگ e ["e", <root-id>], ["e", <reply-id>]:
<root-id>: شناسه رویدادی که در ریشه زنجیره پاسخ ها قرار دارد.
<reply-id>: شناسه رویدادی که این رویداد به ان اشاره میکند.

* چند تگ e ["e", <root-id>] ["e", <mention-id>], ..., ["e", <reply-id>]:
ممکن است هر تعداد شناسه <mention-ids> وجود داشته باشد که میتواند در زنجیره پاسخ ها باشند یا نباشند که از این رویداد استناد میکنند. root-id و reply-id همچون موارد قبل اند.

> این روند منسوخ شده چرا که وقتی یک رویداد به رویداد دیگری ارجاع میدهد اما یک پاسخ نیست ابهاماتی پیچیده یا حتی غیرقابل حل ایجاد میکند.
### تگ e علامت گزاری شده (ترجیحی)

["e", <event-id>, <relay-url>, <marker>, <pubkey>]

به طوری که:

*<event-id>: شناسه رویداد ارجاع داده شده است.

* <relay-url>: ادرس رله پیشنهادی برای رویداد ارجاع داده شده. کلاینت باید یک ادرس معتبر قرار دهد. کلاینت ممکن است این فیلد را یک رشته خالی قرار دهد.

* <marker>: دلبخواهی است و اگر وجود داشته باشد یکی از موارد reply یا root یا mention است.

* <pubkey>: دلبخواهی است و باید شناسه مالک رویداد ارجاع شده باشد.

مواردی که با "reply" نشانه گذاری شده اند نشان دهنده شناسه رویدادی است که به آن پاسخ داده شده است. موارد نشانه گذاری شده با "root" شناسه رویداد ریشه رویدادی است که به ان پاسخ داده شده است. برای پاسخ های سطح بالا (رویداد هایی که مستقیما به ریشه اشاره میکنند.) تنها نشانه root باید استفاده شود. مواردی که با "mention" نشانه گذاری شده اند نشان دهنده شناسه یک رویداد نقل قول شده یا بازنشر شده اند.

یک پاسخ مستقیم به رویداد ریشه باید تنها یک تگ e با نشانه گذاری root داشته باشد.

> این روند ترجیح داده شده است زیرا اجازه میدهد رویداد به رویداد های دیگر اشاره کند بدون اینکه با <reply-id> یا <root-id> اشتباه گرفته شوند.
<!-- <pubkey> باید کلید عمومی TODO -->


### تگ p

یک فهرست است کلید های عمومی افرادی که در ریک رشته پاسخ درگیر هستند در رویداد های متنی.

زمانی که به یک رویداد پاسخ داده میشود تگ های p پاسخ برابر با تمام تگ های p خود رویداد و کلید عمومی ان رویداد است.

برای نمونه: یک رویداد متنی با مالکیت a1 با تگ های p: [p1, p2, p3] سپس تگ های p پاسخ به این رویداد باید به صورت [a1, p1, p2, p3] بدون اهمیت ترتیب باشد.

0 comments on commit 6d91448

Please sign in to comment.