نیپ شماره 9

درخواست پاک کردن رویداد

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

یک رویداد ویژه با شماره گونه ۵ به معنای درخواست پاک کردن یک رویداد است. که فهرستی از یک یا چند تگ e و/یا a دارد که ارجاع داده میشود به رویدادی که مالک ان میخواهد پاک شود. درخواست پاک کردن باید یک تگ k را شامل شود که شماره گونه هر رویدادی است که درخواست میشود که پاک شود.

بخش محتوا رویداد ممکن است با یک یادداشت راجع به دلیل این درخواست پر شود.

برای نمونه:


{
  "kind": 5,
  "pubkey": <32-bytes hex-encoded public key of the event creator>,
  "tags": [
    ["e", "dcd59..464a2"],
    ["e", "968c5..ad7a4"],
    ["a", "<kind>:<pubkey>:<d-identifier>"],
    ["k", "1"],
    ["k", "30023"]
  ],
  "content": "these posts were published by accident",
  // other fields...
}

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

رله هااز انجایی که ممکن است کلاینت ها رویداد های پاک شده را داشته باشند به نشر درخواست پاک شدن ادامه دهند. همچنین کلاینت ها باید درخواست را به رله هایی که رویداد پاک کردن را ممکن است نداشته باشند بفرستند.

وقتی از یک تگ a استفاده میشود رله باید تمام نگارش های رویداد جایگزین پذیر را تا زمان created_at رویداد پاک کنند.

استفاده کلاینت ها

کلاینت ها ممکن است بخواهند که رویدادهایی را که توسط رویدادهای درخواست پاک کردن معتبری به آنها ارجاع داده شده است را به طور کامل پنهان کنند. این شامل یادداشت‌های متنی، پیام‌های مستقیم یا دیگر انواع رویدادهایی است که هنوز تعریف نشده‌اند.

از طرف دیگر ممکن است رویداد را همراه با نماد یا نشانه ای نشان دهند که نویسنده آن رویداد را پاک کرده است. بخش محتوا ممکن است برای جایگزینی محتوای خود رویدادهای پاک شده نیز استفاده شود هرچند یک رابط کاربری باید به وضوح نشان دهد که این دلیل درخواست پاک کردن است، نه محتوای رویداد.

کلاینت باید قبل از پنهان کردن یا پاک هر رویدادی تا یید کند که هر رویداد کلید عمومی که در تگ e درخواست پاک کردن ارجاع شده است، با کلید عمومی درخواست پاک کردن یکی است. رله ها به طور کلی نمی توانند این اعتبار سنجی را انجام دهند و نباید معتبر حساب شوند.

کلاینت‌ ها رویداد درخواست پاک کردن را به هر شکلی که انتخاب کنند میتوانند نمایش دهند، برای نمونه اصلا نشان ندهند یا با یک اطلاعیه برجسته ان را نمایش دهند.

کلاینت ها ممکن است بخواهند به کاربر اطلاع دهند که درخواست پاک کردن پاک شدن رویداد را ضمانت نمیکند چرا که پاک کردن یک رویداد از تمام رله ها و کلاینت ها ممکن نیست.

استفاده رله ها

رله‌ ها ممکن است تایید کنند که یک رویداد درخواست پاک کردن فقط به رویدادهایی اشاره میکند که همان کلید عمومی خود درخواست پاک کردن را دارند، اما این مورد اجباری نیست زیرا رله‌ ها ممکن است از همه رویدادهای اشاره شده باخبر نباشد.

درخواست پاک کردن یک رویداد درخواست پاک کردن

انتشار یک رویداد برای پاک کردن یک درخواست پاک کردن بی تاثیر است. رله ها و کلاینت ها مجبور به پشتیبانی ویژگی لغو درخواست پاک کردن نیستند.