آنچه در این مقاله خواهید خواند
ذخیره سازی غیر متمرکز و توزیع شده روشی نوین برای نگهداری فایلها است. موفقترین پروژه در این زمینه فایل کوین (FileCoin) بوده است.
سیستمهای ذخیره سازی غیر متمرکز مسئولیت نگهداری داده را بین چند اپراتور مستقل به اشتراک گذاشته و یک شبکه تشکیل میدهند. به عبارتی در اینجا وظیفه بر عهده یک موجودیت (یک سرور مرکزی) قرار ندارد. از دید کاربر، این تکنیک هیچ تفاوتی با راهکارهای متمرکز سنتی نداشته و امکان بارگذاری، ذخیره کردن و دسترسی مجدد به انواع دیتا میسر است. با این حال، آن چه پشت پرده رخ میدهد، تفاوتی اساسی دارد. یکی از بهترین پروژههای پیاده شده بر مبنای این مفهوم، فایل کوین بوده است.
مقدمهای بر ذخیره سازی غیر متمرکز
رایانش مدرن بسیار متمرکز است. طی یک دهه گذشته، چند شرکت بزرگ ارائهدهنده خدمات ابری (کلاد) به وسیله تقسیم سیستمهای کامپیوتری سنتی و ایجاد بسترهای مبتنی بر کلاد (به منظور ذخیره سازی)، سودهای هنگفتی به دست آوردهاند. وب مدرن منعکسکننده این تمرکز است؛ هنگامی مواجه شدن یکی از این ارائهدهندگان با قطعی، کل اینترنت با چالش و مشکل رو به رو خواهد شد. به عنوان نمونه میتوان به خارج شدن سرویس AWS آمازون در سال 2017، قطعی گیت هاب در ژوئن سال 2020 و مشکلات متعدد سرورهای کلاد مایکروسافت طی اکتبر 2020 اشاره کرد. به واسطه این اتفاقات، استفاده چند صد میلیون کاربر در سراسر دنیا از اینترنت با اختلال مواجه شد. انتظار داریم به لطف ذخیره سازی غیر متمرکز کمتر شاهد بروز رخدادهای این چنینی باشیم.
محتواهایی که ما روی سرورهای متمرکز نگهداری میکنیم، در واقع پشت پیوندهایی شکننده، که هر از چند گاه با شکست مواجه میشوند، قرار دارند. با در نظر گرفتن اتکای روز افزون افراد، شرکتها، نهادها و سازمانها به خدمات اینترنتی، بروز چنین رخدادهابی ابعاد مختلف زندگی فردی و اجتماعی را تحت تاثیر قرار خواهد داد. به عنوان مثال، قطع شدن سرورهای یک شرکت خدمات درمانی یا بیمه را برای چند روز تصور کنید. چه تعداد بیمار در این شرایط با مشکل مواجه خواهند شد؟
معماریهای متمرکز به خاطر آسانتر بودن ساخت و توسعه سیستمها بر اساس آنها، تاکنون دستاوردهای بینظیری داشتهاند، اما زمان آن رسیده تا با استفاده از ذخیره سازی غیر متمرکز وارد فاز جدیدی از خدمات ابری شویم. ذخیره سازی غیر متمرکز زمینه را برای توزیع شدگی بیشتر وب فراهم خواهد کرد.
خصوصیات اساسی ذخیره سازی غیر متمرکز
روشهای مختلفی به منظور طراحی یک سیستم غیر متمرکز با هدف نگهداری از داده وجود دارد. همه آنها دارای یک سری ویژگی مشترک بوده و روی انعطافپذیری و کارایی تاکید دارند.
انعطافپذیری
اینترنت مدرن به طرز وحشتناکی شکننده است. محتواهای وب کنونی پشت آدرسهای URL قرار گرفته و هر کدام از آنها در هر لحظه از زمان، به یک سرور قطعی تعلق دارند. اگر این سرویسدهنده به هر دلیلی با قطعی مواجه شده و از سرویسدهی خارج شود، امکان دسترسی به محتواهای ذخیره شده روی آن سلب خواهد شد. علت واضح است؛ یک سرور متمرکز تبدیل به نقطه تکی شکست (Single Points Of Failure) شده و فرصتی مناسب برای سانسور کردن فراهم میکند!
در نتیجه، در اینترنت امروزی، لینکهای پوسیده (وقتی پیوندی شکسته شده یا برای همیشه از دسترس خارج میشود) فراگیر شده و در همه جا دیده میشوند! برخلاف روش ذخیره سازی غیر متمرکز راهکارهای متمرکز سانسور در سطح دولت را ساده کرده و حملات DDoS به سادگی علیه سرویسدهنده ترتیب داده میشوند. این عوامل، دسترسی به هر فایلی در اینترنت را با اختلال مواجه کرده یا به طور کامل غیر ممکن میکنند. شرایطی را در نظر بگیرید که با وجود نیاز مبرم به دسترسی به فایلی مشخص، امکان انجام این کار از شما سلب شده است. آیا چنین اتفاقی آزاردهنده و دیوانهکننده نیست!؟
در یک سیستم ذخیره سازی غیر متمرکز ایدهآل، از کار افتادن یک اپراتور، مانع دسترسی کاربران به محتواهایی که از قبل ذخیره شدهاند، نخواهد شد. یک محیط این چنینی، به وسیله توزیع مسئولیتها در گرههای شبکه، علاوه بر مقاوم شدن در برابر قطعی، با سانسور محتواها نیز مبارزه خواهد کرد. از طرفی با توجه به نبود یک موجودیت مرکزی کنترلکننده، مقاومتی ذاتی در برابر حملات DDoS ظهور میکند.
بهرهوری
همه معماریهای مربوط به سیستمهای محاسباتی، مزایا و معایب خاص خود را دارند. به همین دلیل هیچ راهکاری مشخصی جوابگوی تمامی نیازها نیست. متاسفانه، تاکید وب مدرن بر تمرکز هیچ تفاوتی ندارد.
در حال حاضر، تعداد انگشت شماری دیتاسنتر متمرکز در تعداد محدودی شهر در سراسر دنیا، بخش عظیمی از داده را درون خود نگه میدارند. اگر دو کاربر در شبکهای یکسان در پی ارسال پیام برای یکدیگر باشند، این پیامها ابتدا به دست دیتاسنتر خواهد رسید. اگر صد کاربر ساکن در یک اتاق مشغول تماشای ویدیوی یکسانی روی گوشی هوشمند خود باشند، هر کدام به شکل جداگانه درخواستی به سرور مرکزی ارسال میکند. در ادامه، دانلود صد کپی از آن محتوا به صورت موازی آغاز خواهد شد. حالت بهینه، دانلود تنها یک نسخه از ویدیو و اشتراکگذاری آن در شبکه محلی است.
به لطف ذخیره سازی غیر متمرکز اشتراکگذاری فایلها نیازمند ارسال درخواستهایی بر بستر اینترنت، به تعداد معینی مرکز داده، نخواهد بود. در عوض، گرهها با استفاده از حداقل واسطه ممکن، با یکدیگر ارتباط برقرار میکنند. به عنوان مثال، اتصال به نودهای واقع در کشورهای دیگر به چندین هاپ نیاز دارد، به همین دلیل نمیتوان واسطهها را به طور کامل از میان برداشت. با این حال، برای اعضای واقع در یک شبکه، امکان برقراری تعامل به صورت مستقیم فراهم است.
هدف نهایی برای سیستمهای ذخیره سازی غیر متمرکز داشتن تعداد زیادی نود است، به طوری که هر فرد بتواند به منظور دستیابی به اطلاعات مورد نظرش، یک همتای محلی یا نسبتا محلی پیدا کند.
راهکارهای غیر متمرکز به منظور ذخیره سازی میتوانند در چنین فعالیتهایی، سبب ذخیرهسازی قابل توجه هزینههای جاری شوند. با دور زدن مراکز داده پراکنده، یک سیستم توزیع شده قادر خواهد بود گرهها را حتی در مقایسه با مدرنترین شبکههای تحویل محتوا (CDN) بسیار نزدیک به کاربران نهایی قرار بدهد. نتیجه، افزایش زیاد سرعت بازیابی داده برای آنها خواهد بود. اشتراک فایل نظیر به نظیر از طریق شبکههای محلی به صرفهجویی در پهنای باند نیز کمک زیادی میکند. این موضوع برای کاربران ساکن در مناطقی با دسترسی محدود به اینترنت گستردهتر، اهمیت بیشتری دارد.
خصوصیات مطلوب ذخیره سازی غیر متمرکز
در حالی که انعطافپذیری و بهرهوری از مشخصههای اصلی روشهای غیر متمرکز نگهداری داده به شمار میروند، یک سیستم این چنینی میتواند در حالت ایدهآل، چند ویژگی دیگر نیز ارائه کند.
در دسترس
یک سیستم توزیع شده ایدهآل باید قابل دسترس و همچنین مشارکت در شبکه آن، آسان باشد. به این ترتیب نودهای بیشتری قادر به ذخیرهسازی و توزیع فایلها از طرف نتورک خواهند بود. اگر سوالی مبنی بر امکان تبدیل شما به یک نود در ذهنتان پدید آمده، در نظر داشته باشید پاسخ به چند شرط وابسته است.
در فایل کوین به عنوان یکی از موفقترین پروژههای ذخیره سازی غیر متمرکز تا امروز، هر فرد با هوش فنی نسبی باید بتواند یک گره کلاینت را برای تعامل با شبکه اجرا کند. با این حال، نیاز به داشتن سخت افزار و پهنای باند مشخص را نباید فراموش کرد. به عبارتی هر کاربر با هر سیستم کامپیوتری نمیتواند به عنوان یک گره در FileCoin ایفای نقش کند.
در شبکههای ذخیره فایل غیر متمرکز استفادهکننده از پروتکل IPFS نظیر فایل کوین، محدودیتهای سخت افزاری چندان سختگیرانه نبوده و برای تعداد قابل توجهی از کاربران، فرصت برای تبدیل شدن به یک گره مهیا است.
قابل برنامهریزی
ارائهکنندگان خدمات کلاد ذخیره سازی ارزان و قابل اعتماد را آسانتر از همیشه کردهاند. یکی از جنبههای اصلی موفقیت آنها، توانایی تهیه و مدیریت ذخیره سازی از طریق کد و به واسطه رابطهای کاربردی برنامهنویسی (API) بوده است. هر سیستم رقابتی باید بتواند همان سطح از آسودگی را ارائه کند.
آدرسدهی محتوا
همانطور که پیشتر به آن اشاره کردیم، ویژگیهای ذاتی آدرسهای URL یک سری مزایا و معایب را سبب شدهاند. آنها به جای خود محتوا، محل قرارگیری دیتا را تشریح میکنند. برای توضیح چگونگی دشوار کردن یافتن تکهای داده توسط سیستمهای متمرکز، تصمیم برای دانلود عکس یک گربه را تصور کنید. دو آدرس زیر را در نظر داشته باشید:
- https://example1.com/cat.jpeg
- https://example2.com/cat.jpeg
هر دو URL به فایلی با نام cat.jpeg اشاره میکنند، اما تضمین و دلیلی درباره یکسان بودن آنها وجود ندارد. اگر وب سایت example1.com از دسترس خارج شود، نمیتوان مطمئن بود example2.com همان چیزی که به دنبالش هستید را در اختیارتان قرار بدهد. احتمال متفاوت بودن فایل cat.jpeg ذخیره شده در آن بالا است. در حقیقت، بعید نیست فایل به اشتباه نامگذاری شده و cat.jpeg در example2.com عکسی از یک سگ باشد! علت بروز این اتفاق، نبود هیچگونه رابطه ذاتی بین URL و محتوای اشاره شده توسط آن است. در نتیجه از اینترنت امروزی نمیتوان پرسید «آیا کسی در آنجا این پرونده را دارد؟» چرا که به جز محل قرارگیری فایل (وب سایت یا سرور نگهدارنده آن)، اطلاعات بیشتری دربارهاش موجود نیست.
وقتی با استفاده از URL اقدام به اشتراکگذاری یک سری فایل میکنید، احتمال بروز مشکل وجود دارد. ممکن است سرور، فایلی متفاوت از آن چه شما انتظار دارید به ازای یک URL مشخص ارائه کند. نباید احتمال حمله مرد میانی را دست کم گرفت که طی آن، فردی فایل را دستکاری و نسخهای جعلی را در اختیار مخاطب شما قرار میدهد. این مشکلات اطمینان از دسترسی به فایل مورد نظر از طریق یک آدرس URL را دشوار خواهد کرد. در یک سیستم ذخیره سازی غیر متمرکز ایدهآل راهکاری برای حل این دسته معضلات وجود دارد.
آدرسدهی محتوا در مقابل، فایلها را بر اساس شناسههای محتوا (CID) پیدا میکند. میتوان آنها را به اثر انگشت دیجیتال فایلها تشبیه کرد. مشخص کردن آدرس فایلها به این روش، بسیاری از مشکلات مربوط به آدرسدهی مکان، که در بالا به برخی از آنها اشاره کردیم، را از بین میبرد.
وقتی کاربری در پی دسترسی به یک فایل است، به جای درخواست از یک سرور بر اساس یک آدرس URL، از نودهای شبکه پروندهای با یک CID مشخص را درخواست میکند. بعد از دانلود توسط کلاینت، اثر انگشت خود را روی آن خواهد زد.
مثال قبلی درباره دانلود عکس گربه از دو وب سایت را به یاد آورید. با در نظر گرفتن رویه آدرسدهی محتوا، این طور به نظر خواهد رسید که همه وب سایتها درک مشترکی از cat.jpeg داشته و در صورت مطرح شدن درخواست، محتوای مربوط به آن را میشناسند. به همین دلیل اگرچه نمیتوان بابت وجود آن cat.jpeg مشخص در هر نود تضمین داد، اما تمامی گرهها پایگاه داده خود را بر اساس اثر انگشت پرونده مورد نظر بررسی میکنند.
اگرچه نیاز به اختصاص اثر انگشت به پروندهها در یک شبکه ذخیره سازی غیر متمرکز سبب فراتر رفتن آن از درک کاربران عادی میشود، اما در پلتفرمی نظیر فایل کوین که از پروتکل IPFS بهره برده است، این فرآیند برای آنها به صورت خودکار انجام خواهد شد. به این ترتیب، دریافت فایل تقاضا شده از سوی کاربر تضمین میشود. در این سیستم، یافتن ارائهدهندگان جایگزین برای قطعهای داده، اهمیتی ندارد.
به لطف کار با شناسههای محتوا (CID)، قادر به یافتن فایلی که در یک سیستم متمرکز امکان یافتنش وجود نداشت، خواهید بود. CID از حملات مرد میانی جلوگیری کرده و به سرور اجازه نمیدهد به طور ناگهانی، فایل مربوط به یک URL مشخص را تغییر بدهد.
بدون نیاز به اعتماد
یک سیستم تراستلس (Trustless) یا بدون نیاز به اعتماد، همکاری بین دو طرف را بدون نیاز به شناخت یکدیگر یا کمک گرفتن از یک شخص ثالث، امکانپذیر میکند. در نظر گرفتن مشوقهایی در یک نتورک ذخیره سازی غیر متمرکز این چنینی، اعضا را به داشتن رفتار ضروری برای عملکرد صحیح شبکه ترغیب میکند.
قابل رسیدگی
در یک فضای ذخیره سازی غیر متمرکز ایدهآل باید بتوان به طور مستمر از نگهداری صحیح داده توسط نودها اطمینان پیدا کرد. این نوع ممیزی، کلید دستیابی به ویژگی «بدون نیاز به اعتماد» است. اگر همیشه از ذخیره شدن صحیح دیتا مطمئن شوید، نیازی کمتری به اعتماد به فراهمکننده سرویس خواهید داشت.
(متن) باز
در نهایت، یک فضای ذخیره سازی توزیع شده باز است. کد منبع آن متن باز و قابل مشاهده برای همه است. علاوه بر آن، سیستم نگهداری دیتا نباید یکپارچه باشد. در عوض، باید یک پروتکل باز که هر فردی قادر به پیادهسازی و اجرا بر مبنای آن است، ارائه کند. به عبارتی باید زمینه را برای ورود همه کاربران فراهم کرد.
فایل کوین چطور ویژگیهای ذخیره سازی غیر متمرکز را ارائه میکند؟
فایل کوین یک سیستم ذخیره سازی توزیع شده و غیر متمرکز بوده و هدف از طراحی آن، دستیابی به ویژگیها و مزایای بررسی شده تا اینجا است. ایده پروتکل FileCoin نخستین مرتبه در سال 2014 به عنوان لایهای مشوق برای IPFS مطرح شد. Interplanetary File System یک شبکه ذخیره سازی نظیر به نظیر محسوب میشود.
شبیه به خود IPFS، فایل کوین نیز پروتکلی متن باز بوده و ویژگیهای طرحهای مشابه قبلی را به ارث برده است. به همین دلیل از همان ساختار زیربنایی نظیر به نظیر و قابلیت آدرسدهی به محتوا، بهره میبرد.
شبکهای از نودهای فایل کوین زمینه را برای ظهور بازار ذخیره سازی توزیع شده و غیر متمرکز به منظور نگهداری و بازیابی فایلها فراهم کرده است. این شبکه توسط نسل جدیدی از فناوری بلاک چین پشتیبانی شده و تعهدات صورت گرفته توسط شرکتکنندگان در شبکه را ثبت میکند. در اینجا کاربران با استفاده از رمز ارز بومی نتورک یعنی توکن FIL اقدام به ایجاد تراکنش خواهند کرد.
بازار بازیابی
در بحث بازیابی و ارائه دیتا به کاربر، گرهها تحت عنوان ماینرهای بازیابی شناخته شده و بر سر تحویل فایل به کاربران با سرعتی بالا، با یکدیگر رقایت میکنند. استخراجکنندگان در اینجا از طریق کارمزدهای پایین FIL پاداش به دست میآورند. این موضوع به گرههای واقع در مکانهای اصلی تحویل محتوا، برای پیوستن به شبکه انگیزه میدهد. به واسطه پیوستن آنها، توزیع سریعتر فایلها امکانپذیر خواهد شد. مزیت دیگر، ایجاد شبکهای قدرتمند است که فایلهای با درخواست زیاد را تکثیر و حفظ میکند.
بازار ذخیره سازی
در این بخش از اکوسیستم فایل کوین، گرهها را با عنوان ماینرهای ذخیره سازی میشناسیم. آنها توان رقابت در خصوصیات مختلف را دارند. به عنوان نمونه میتوان به قیمت و موقعیت جغرافیایی اشاره کرد. استخراجکنندگان ذخیره سازی فایلها را تحت یک سری قرار داد طی مدت زمانی مشخص برای مشتریان نگهداری میکنند. آنها پیش از قبول یک قرارداد، باید در قالب رمز ارز FIL وثیقهای قرار بدهند. اگر ماینر در انجام وظایف خود نسبت به مشتری ناموفق باشد، این وثیقه برای بازپرداخت به مشتری مورد استفاده قرار خواهد گرفت.
وقتی یک استخراجکننده و کلاینت به یک توافق دست پیدا کردند، مشتری داده خود را به فضای ذخیره سازی غیر متمرکز ماینر منتقل خواهد کرد. وی در ادامه این داده را به یک سکتور اضافه میکند. سکتور، واحد و یکان پایه ذخیره کردن در فایل کوین است. نود نگهدارنده در ادامه با هدف ایجاد یک نسخه منحصربهفرد از آن سکتور داده، یک عملیات پردازشی سنگین تحت عنوان «مهر و موم کردن» (Sealing) اجرا خواهد کرد.
اگر یک کلاینت، در پی ذخیره سازی چند کپی منحصربهفرد از داده خود باشد، به لطف فرآیند مهر و موم کردن، از اختصاص اثری انگشتی مجزا به هر نسخه اطمینان حاصل میشود. تلاش محاسباتی مورد نیاز برای استخراج آن، به وسیله تولید مجدد با استفاده از داده اصلی، از تقلب کردن گره جلوگیری خواهد کرد. دیتای مهر و موم شده در نهایت برای ایجاد یک PoRep در بلاک چین فایل کوین، استفاده میشود.
در طول قراردادی که مشتری با نود بر سر ذخیره سازی غیر متمرکز داده خود بسته است، ماینر باید به صورت دورهای چیزی تحت عنوان PoST را به بلاک چین ارسال کند. PoST وسیلهای برای اثبات اختصاص فضای ذخیره سازی موجود یک استخراجکننده به شبکه است. ماینر این گواهیها را به صورت تصادفی و با استفاده از داده مهر و موم شده علاوه بر PoRep ارسال شده برای بلاک چین ایجاد خواهد کرد. این نشانهها به یک کلاینت ثابت میکنند استخراجکننده، همچنان یک نسخه کامل و منحصربهفرد از دیتا را در اختیار دارد. این تضمین بزرگی است، چرا که حتی سرویسهای ذخیره سازی ابری مدرن امروزی نیز چنین قابلیتی در اختیار مشتریان خود قرار نمیدهند.
مشتری در نهایت بر اساس قراردادی که در ابتدا عقد شده، مزد ماینر را با توکن FIL پرداخت میکند. از طرفی دیگر، استخراجکنندگان فرصتی به منظور ماین کردن بلاکهای جدید در بلاک چین فایل کوین به دست آورده و پاداشی نیز خارج از چارچوب قراردادها با مشتریان به دست خواهند آورد. سومین روش برای کسب درآمد از شبکه FileCoin، دریافت کارمزد از کاربران علاقهمند به افزودن یک پیام در بلاکهای استخراج شده است.
سیستم اثبات فایل کوین به عنوان یک شبکه ذخیره سازی غیر متمرکز پیشرو، به معنی نیاز ماینرها به داشتن یک سری سخت افزار اضافی است. با این حال تهیه این قطعات هزینه زیادی طلب نکرده و نیازی به داشتن اطلاعات تخصصی ندارد. از طرفی الزامات سخت افزاری برای حضور شبکه به عنوان سرویسگیرنده نیز در حد متوسط تعریف شده است. این موضوع نشان میدهد احتمال عدم توانایی شبکه برای سرویسدهی به یک سری مشتری (به خاطر محدودیتهای سخت افزاری) وجود دارد.
گرههای فایل کوین به منظور تعامل برنامهای با شبکه، رابط کاربری برنامهنویسی (API) ارائه میکنند. به لطف آن، سرویسهای مختلف قادر به بهره بردن از زیرساخت FileCoin برای پیادهسازی پروژههای خود خواهند بود. به عبارتی آنها در پروژههای خود، از شبکه فایل کوین برای نگهداری داده استفاده میکنند.
نتیجهگیری
روش ذخیره سازی غیر متمرکز و توزیع شده، جایگزینی قانعکننده برای راهکار سنتی متمرکز محسوب میشود. شبکهای بنا شده بر مبنای این مفهوم، این فرصت را به توسعهدهندگان میدهد تا مناطق جدیدی را در فضای مبادلات طراحی، با تاکید بر قدرت و کارایی در ذخیره و تحویل محتوا، کشف کنند.
فایل کوین به عنوان پروژهای بسیار موفق در این زمینه نشان داد سیستمهای ذخیره سازی توزیع شده میتوانند سرویسهایی کاملا رقابتی با ویژگیهای مطلوب متعدد ارائه کنند. از جمله مهمترین مزیتها در اینجا، هزینه و تعرفه بسیار پایین خدمات است. به عنوان نمونه برای یک ماه در اختیار داشتن 1 ترابایت فضا در سرویس (متمرکز) آمازون S3 باید 25 دلار پرداخت کنید. این هزینه برای دریافت فضایی یکسان در شبکه فایل کوین به حدود 2 دلار کاهش پیدا خواهد کرد!
منبع: coinmarketcap