امروز میخوام توی این پست در مورد ماستودون و روش کارش برات توضیح بدم. قبل از اینکه این پست رو بخونی، باید با مفهوم فدیورس آشنا بشی. نگران نباش، من قبلا یه پست در این مورد نوشتم و همه چیز رو در موردش خیلی ساده توضیح دادم. پس قبل از خوندن این پست پیشنهاد میکنم حتما پست من در مورد فدیورس رو بخونی.
لینک مرتبط: فدیورس دقیقا چه کوفتیه؟
حالا که با کلیات ایده فدیورس و عملکردش آشنا شدیم، بهتره یه نگاه دقیقتر بندازیم به ماستودون تا بفهمیم چیزی که به عنوان ویترین فدیورس ساخته شده چیه و چطوری کار میکنه.
ماستودون چی چی هست اصلا؟
به زبون خیلی ساده، ماستودون یه چیزی شبیه توییتره ولی بر بستر فدیورس. ماستودون توسط یه کمپانی خاص کنترل نمیشه. این پلتفرم در اصل یه پروژه متن بازه به این معنی که هر کسی دلش بخواد میتونه کد اون رو برداره و کپی کنه و یه سرور مجزا و بر پایه ماستودون برای خودش بسازه . ماستودون به سرورهای مختلفی که بر پایه این پلتفرم ساخته میشه میگه Instance. حالا من الکی نمیخوام سختش کنم، واسه همین در ادامه این اینستنسها رو همون سرورهای مختلف ماستودون صدا میزنم.
معنی اینکه از ماستودون یه سرور مجزا بسازیم چیه؟ خیلی ساده بخوام توضیح بدم باید بگم که سرور اصلی ماستودون یا همون اپلیکیشن اصلی این پلتفرم قوانین مخصوص به خودش رو داره. مثلا اینکه توی ماستودون تو میتونی پستهایی با نهایتا ۵۰۰ کاراکتر منتشر کنی، یا مثلا اینکه ماستودون به هر پست توی پلتفرم خودش میگه توت و به اون چیزی هم که ما با اسم ریتوییت میشناسیم میگه بوست.
اگه تو با هر کدوم از این قوانین یا بقیه قوانین سرور اصلی ماستودون حال نمیکنی، میتونی بیای یه سرور از ماستودون برای خودت درست کنی و قوانین خودت رو معین کنی و بقیه رو هم دعوت کنی که اگه با قوانین تو بیشتر حال میکنن بیان روی سرور تو از ماستودون استفاده کنن.
نکته جالبش اینجاست که همه این سرورهایی که با ماستودون درست میشن میتونن با هم دیگه ارتباط برقرار کنن. یعنی اگر تو توی یکی از سرورهای ماستودون عضو باشی، میتونی بدون نیاز به عضویت توی بقیه سرورها، با یوزرهای موجود در سرورهای دیگه هم در ارتباط باشی.
پس تو وقتی داری از mastodon.social استفاده میکنی، در واقع داری از سرور اصلی ماستودون استفاده میکنی، اما اگه مثلا داری از mastodon.xyz استفاده میکنی، داری از یه سرور دیگه بر پایه ماستودون استفاده میکنی، ولی به خاطر ساختار فدیورس کاربرهای این دو تا سرور میتونن همچنان با هم دیگه در ارتباط باقی بمونن.
خیلی جالبه، نه؟ این همون چیزیه که بهش میگن پلتفرم غیر متمرکز. یعنی همه چیز روی یه شرکت خاص، یه مالک خاص یا یه اپلیکیشن واحد متمرکز نشده، مثل توییتر یا اینستاگرام.
خیلی لذت بخشه که مجبور نباشی کلی اپلیکیشن مختلف دانلود کنی، توی کلی پلتفرم اجتماعی عضو بشی و هر روز مجبور باشی به همشون سر بزنی تا از دنیا عقب نمونی. اینجوری فقط کافیه یکی از اپلیکیشنهای متصل به فدیورس رو نصب کنی و داخلش عضو بشی. بعدش میتونی به همهشون دسترسی پیدا کنی. میتونی با همه کسایی که بقیه پلتفرمهای متصل به فدیورس رو استفاده میکنن زیر یک سقف در ارتباط باشی.
تازه محدود به قوانین یک پلتفرم خاص هم نیستی و میتونی عضو سروری بشی که با قوانینش بیشتر جور در میای. هر وقت هم از یه سرور خسته شدی یا ازش خوشت نیومد، میتونی بری سراغ یه سرور دیگه با قوانین و سیستمی که بیشتر دوست داری.
اگر از این ایده خوشت اومده پس مطمئن باش تو به فدیورس تعلق داری و باید خودت رو از شر پلتفرمهای متمرکز خلاص کنی و به ماستودون یا امثالش بپیوندی.
ماستودون چه نقطه ضعفهایی داره؟
حالا این همه از ماستودون و ActivityPub تعریف کردم، بذار اون روی سکه رو هم بهت نشون بدم. پروتکلی که ماستودون (یا هر سرویس دیگهای) بر اساس اون کار میکنه یه ایراداتی هم داره که در ادامه بهشون میپردازم.
یکی از ایرادهای ماستودون اینه که اگه یه هکر به هر طریقی بتونه یکی از اینستنسهای (یا همون سرورهای) ساخته شده بر اساس ماستودون رو هک بکنه، خیلی راحت میتونه به اطلاعات تمام کاربرهای داخل اون سرور دسترسی پیدا بکنه و بعد با هویت همون کاربرها هر پیامی دلش خواست به بقیه سرورها ارسال بکنه.
یه ایراد دیگه اینه که هر چی تعداد سرورهای ماستودون بیشتر میشه، این شبکه فدیورس گستردهتر میشه. این البته به خودی خود بد نیست، اما این یه مشکل ایجاد میکنه و اون هم ارتباط بین این سرورهاست. تو اگر یوزر یکی از این سرورها باشی، باید بدونی که اون سرور ممکنه به هر دلیلی تصمیم بگیره ارتباط خودش با یه سرور دیگه رو مسدود بکنه. این باعث میشه که تو به عنوان یه کاربر نتونی بفهمی توی کل دنیای فدیورس دقیقا داره چی میگذره و به همون دایره ارتباطی مربوط به سروری که داخلش هستی محدود میشی.
حالا برای اینکه تو به عنوان یه یوزر بتونی این مشکل رو حل بکنی، میگی خیلی خب من با قوانینی که این سرور تعیین کرده حال نمیکنم و میخوام بتونم با یوزرهای اون یکی سرور ارتباط داشته باشم، پس مجبور میشی سروری که داخلش هستی رو ترک کنی و به سرور مورد نظرت بپیوندی. ولی از اونجایی که تمام اطلاعات اکانت تو داخل خود سرور ذخیره میشن، پس وقتی توی یه سرور جدید عضو میشی مجبوری به عنوان یه یوزر جدید کارت رو شروع کنی.
این یعنی تو نمیتونی یوزرنیم خودت رو با خودت به سرور جدید منتقل کنی. البته نکته مثبتش اینه که اگه کسی توی سرور قبلی بخواد دنبال تو بگرده، ActivityPub میتونه به اون شخص بگه که این یوزر به یه سرور دیگه رفته و آدرس جدید تو رو در اختیارش میذاره. اما اگه اون سرور اولی که عضوش بودی هک بشه یا اینکه به هر دلیلی دیگه نتونه فعال بمونه و از بین بره، اون وقت دیگه نمیتونی هیچ چیزی رو از سرور قبلی به سرور جدید انتقال بدی. دلیلش اینه که ActivityPub برای انتقال اطلاعات بین سرورها نیاز داره که هر دو تا سرور مبدا و مقصد سالم و پابرجا باشن.
چیز دیگهای که نمیتونی در هنگام رفتن به یه سرور جدید با خودت جابهجا کنی، پستهاییه که توی سرور قبلی منتشر کردی. پستهای تو توی سرور قبلی همونجا باقی میمونه، اما فالوئرهات رو میتونی به سرور بعدی انتقال بدی. این اصلا جالب نیست چون تمام محتوایی که تا قبل از انتقالت به سرور جدید تولید کردی رو باید همونجا رها کنی به حال خودش.
از طرف دیگه ماستودون به طور کلی یه پروژه غیر انتفاعیه که تمام پول خودش رو از طریق کمکهای مالی و اسپانسرهایی که بهش پول میدن به دست میاره. این از نظر خیلیها یه ویژگی مثبته، چون ماستودون به هیچ سازمان یا سرمایهگذاری تعلق نداره و به همین خاطر مجبور نیست خواستههای اونها رو دنبال و اجرا بکنه. ضمن اینکه هیچ تبلیغاتی هم توی ماستودون دیده نمیشه چون مدل کسب درآمدش غیر انتفاعیه.
اما مشکل این شیوه کار اینه که به هر حال خود ماستودون و البته هر کسی که یه سرور ازش درست میکنه مجبوره هزینههای این کار و سرپا نگه داشتن سرورها رو بپردازه و البته پول زیادی هم نمیتونه از این طریق به دست بیاره و همیشه باید چشمش به دست کمکهای مالی دیگران باشه. این باعث میشه که خود ماستودون توی کسب درآمد زیاد نتونه پیشرفت بکنه و در نتیجه نمیتونه جوابگوی رقبای پولدارترش باشه. ضمن اینکه خیلی از سرورهای مبتنی بر ماستودون هم ممکنه فقط به خاطر مشکلات مالی نتونن برای مدت زیادی زنده بمونن.
پس یعنی باید بیخیال فدیورس شد؟
نه دقیقا. البته هنوز هیچ کس نمیدونه آینده فدیورس دقیقا چی میشه، ولی مشکلات ActivityPub نباید دلیل بشه که کلا بیخیال فدیورس بشیم. به غیر از اینکه سعی میشه به مرور زمان مشکلات ActivityPub حل بشه، اما پروتکلهای دیگهای هم در کنار ActivityPub ساخته شده یا داره ساخته میشه که برخی از مشکلات ActivityPub رو ندارن. یکی از این پروتکلها که توی پست بعدی میخوام بهش بپردازم و خیلی هم داره محبوب میشه، پروتکل ATProtocol هست، همون چیزی که فعلا فقط بلواسکای ازش استفاده میکنه.
فعلا تا همینجای بحث کافیه. پست بعدی میخوایم به این بپردازیم که ATProtocol چیه، چه مزایایی داره و بلواسکای در کجای فدیورس قرار میگیره.