معرفی Tangled؛ یک گیتهاب غیرمتمرکز و فدرال بر پایه AT Protocol — The federated code forge
خلاصه
پروژه Tangled یک پلتفرم همکاری کدهای منبعباز و فدرال است که بر پایه AT Protocol توسعه یافته است. این ابزار به توسعهدهندگان اجازه میدهد کدهای خود را روی سرورهای شخصی میزبانی کنند و در عین حال به شکل یکپارچه با دیگران همکاری داشته باشند.
زمینه و تاریخچه
در دو دهه گذشته، پلتفرمهای میزبانی کد یا همان forgeها نقش اصلی را در نگهداری پروژههای نرمافزاری، بررسی تغییرات (Code Review) و ارتباط توسعهدهندگان با یکدیگر داشتهاند. با این حال، وابستگی کامل به پلتفرمهای متمرکز مشکلاتی نظیر قطعی سرویس، تغییرات سلیقهای در امکانات و انحصار دادهها را به همراه داشته است. از سوی دیگر، هرچند ترکیب Git و پروتکل ایمیل بهعنوان یک راهکار قدیمی و غیرمتمرکز همچنان پابرجا است، اما تجربه کاربری مناسبی را ارائه نمیدهد.
پروژه Tangled با هدف ارائه بهترین ویژگیهای هر دو دنیا شکل گرفته است: ماندگاری و استقلال پروتکلهای باز در کنار راحتی و ظاهر صیقلی یک پلتفرم مدرن میزبانی کد. این پلتفرم بهعنوان یک سیستم فدرال طراحی شده است که به توسعهدهندگان امکان میدهد زیرساخت خود را کنترل کنند.
معماری فنی و جزئیات پیادهسازی
تنگلد اخیراً تغییرات معماری بزرگی را تجربه کرده است که تمرکز اصلی آن روی بهبود سرعت، مقیاسپذیری و توزیعشده بودن است:
- معماری فرانتاند و ایندکسر: نسخه اولیه این ابزار یک مونولیت زبان Go به نام
appviewبود که روی یک پایگاه داده SQLite در سوئد اجرا میشد. در معماری جدید، بخش فرانتاند با استفاده از Svelte بازنویسی شده و روی لبه شبکه (Edge) قرار گرفته است. این بخش توسط یک ایندکسر کاملاً درون حافظه و بدون وابستگی به دیسک به نامbobbin(نوشته شده با Rust) پشتیبانی میشود که در بیش از ۱۱ منطقه در سراسر جهان مستقر است. - مدل داده و ابزارهای گیت: سرور گیت این پروژه که
Knot2نام دارد، به زبان Rust نوشته شده و یک سرور گیت کامل به همراه سرور SSH را در یک باینری واحد ترکیب کرده است. - اشیاء مشارکتی یا COBs: مسائل (Issues)، درخواستهای ادغام (Pull Requests)، کامنتها و ری اکشنها دیگر در یک دیتابیس جداگانه ذخیره نمیشوند، بلکه بهعنوان اشیاء مشارکتی (Collaborative Objects) مستقیماً درون خود ریپازیتوری و به عنوان بخشی از تاریخچه گیت قرار میگیرند. این امر قابلیت حمل پروژه را به حداکثر میرساند.
- تاییدیه یا Attestation: برای جلوگیری از دستکاری دادهها روی سرورهای میزبان (Knots)، هر تغییری که کاربر ایجاد میکند با استفاده از پروتکل AT Protocol در PDS شخصی او ثبت و تأیید میشود تا اعتبارسنجی دوسویه برقرار باشد.
- پشتیبانی از سازمانها و Pull Requestهای زنجیرهای: حسابهای کاربری سازمانی بهعنوان حسابهای مستقل در AT Protocol پیادهسازی شدهاند. همچنین جریان کاری PRها بازطراحی شده و امکان استفاده از Pull Requestهای زنجیرهای (Stacked PRs) برای کاربران Git و Jujutsu فراهم شده است.
چرا این پروژه برای مهندسان اهمیت دارد؟
برای مهندسان نرمافزار، Tangled گامی مهم به سمت بازپسگیری مالکیت زیرساختها و دادههای توسعه نرمافزار است. با اتکا به AT Protocol، دادههای مربوط به کد و مشارکتهای شما به شبکه اجتماعی غیرمتمرکز متصل میشود و شما دیگر قفل هیچ پلتفرم انحصاری نخواهید بود.
بسیاری از کاربران در بحثهای هاکرنیوز از این رویکرد استقبال کرده و اشاره کردهاند که داشتن دادههای پروژه در کنار سایر دادههای اجتماعی در بستر ATProto، تجربه ای بینظیر برای توسعهدهندگان به ارمغان میآورد. قابلیت خودمیزبانی (Self-hosting) کامل و انعطافپذیری بالای این ابزار در توسعه افزونهها و باتهای هوش مصنوعی، آن را به گزینهای آیندهدار تبدیل کرده است.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل