خاصیت تغییر ناپذیری چیست؟
جهت آشنایی شما با سیستمهای همتا به همتا (Peer to Peer) تصمیم گرفتیم تا مفاهیم مرتبط با این سیستم را در نوشتههایی مجزا به صورت ساده توضیح دهیم. در این نوشته نیز به مفهوم خاصیت تغییرناپذیری میپردازیم.
جهت آشنایی شما با سیستمهای همتا به همتا (Peer to Peer) تصمیم گرفتیم تا مفاهیم مرتبط با این سیستم را در نوشتههایی مجزا به صورت ساده توضیح دهیم.
در اولین نوشته از مجموعهی این مقالات مفهوم Caching، در نوشتهی دوم دربارهی مفهوم هَش (Hash) یا الگوریتم درهمساز و کاربرد آن و در نوشتهی سوم دربارهی مفهوم آیپیافاس (IPFS) توضیح دادیم. در این نوشته نیز به مفهوم خاصیت تغییرناپذیری میپردازیم.
۴. خاصیت تغییر ناپذیری چیست؟
ممکن است از خود بپرسید در سیستمی مثل سیستم همتا به همتا (Peer to Peer) - که میتوانید اطلاعات را از سِرور یا از کاربران دیگر که اطلاعات را در اختیار دارند بگیرید- اگر محتوای یک سایت را از کاربران دیگر دریافت کنید همیشه احتمالِ این وجود دارد که این محتوا تغییر داده شده یا حتی قدیمی باشد. چگونه میتوان مطمئن شد که محتوای دریافت شده از سیستم غیر متمرکز یا توزیع شده محتوای قابل اعتمادی است؟
آیپیافاس (IPFS) -که پیشتر مختصری دربارهی آن توضیح دادیم- از مفهومی به نام آدرسدهی محتوایی استفاده میکند. این مفهوم در مقابل آدرسدهی نامی و آدرسدهی مکانی مطرح میشود. در آدرسدهی نامی, آدرسِ فایلها بر اساس نام آنها است و دو فایلِ مشابه میتوانند نامهای مختلف و دو فایلِ متفاوت میتوانند نامهای مشابه داشته باشند. در آدرسدهی مکانی آدرسِ یک فایل بر اساس مکان ذخیره شدن آن فایل است. در حال حاضر آدرسدهی وب در واقع از ترکیبِ این دو آدرسدهی ساخته شده است. در آدرسدهی محتوایی آدرس فایل بر اساس محتوای فایل است و آدرس یا نام فایل موجودیت جداگانه و مستقلی از محتوای فایل ندارد. برای قابل فهمتر شدن موضوع به مثال زیر توجه کنید:
فرض کنید برای تحویلِ کت و شلوار خود به خشکشویی رفتهاید، متصدی خشکشویی بابتِ تحویل گرفتنِ کت و شلوار به شما رسیدی میدهد که روی آن یک کلمه نوشته شده است. وقتی برای دریافت کت و شلوار به خشکشویی برمیگردید و رسید خود را به متصدی نشان میدهید، او بدون مشکلی کت و شلوار را پیدا کرده و به شما میدهد. نحوهی جستوجوی متصدی برای کت و شلوار هم بر اساس این که خشکشویی از چه سیستمی برای نامگذاری استفاده کرده متفاوت است.
در آدرسدهی مکانی و نامی کلمهی نوشته شده بر روی رسید شما که در پیدا کردنِ کت و شلوار به متصدی کمک میکند در واقع محل کت و شلوار را نشان میدهد. ممکن است به طور مثال بر روی رسید این عبارت نوشته شده باشد: «کت و شلوار آقای زروان در طاقچهی شمارهی ۱۹». متصدی خشکشویی با دیدن این آدرس به طاقچهی شمارهی ۱۹ رفته و کت و شلواری که روی آن نوشته شده «آقای زروان» را میآورد. این حالت که آدرس کت و شلوار به محل طاقچه بستگی دارد ممکن است مشکلاتی را ایجاد کند. به طور مثال اگر کت و شلوار به یک طاقچهی دیگر منتقل شود و یا شخصی دیگر هم با نامِ "آقای زروان" یک کت و شلوار دیگر آورده باشد، پیدا کردن آن به مشکل برخواهد خورد.
اما در آدرسدهی محتوایی کلمهی نوشته شده روی رسید شما بر اساس محتوا (در این مثال ابعاد، جنس، نوع و دیگر مشخصاتِ کت و شلوار) خواهد بود. مثلا روی رسید نوشته "ک.م.ن.چ.ج.س.۵۲.پ.آ.آ" که در زبان خشکشوییها یعنی "کت و شلوار مشکی نخی چهار جیب سایز ۵۲ پارگی آرنج آستین". متصدی نقشهی لباسها را نگاه کرده و طبقِ نقشه، آخرین محلِ "ک.م.ن.چ.ج.س.۵۲.پ.آ.آ" طاقچهی شماره ۱۹ است. به این ترتیب متصدی به راحتی کت و شلوار را پیدا کرده و به شما تحویل میدهد. دقت کنید که در این نوع آدرسدهی، آدرس کت و شلوار شما دائما به محض تغییر بهروز میشود.
بنابراین نام و آدرسِ یک فایل در آدرسدهی محتوایی به محتوا و فرمت یک فایل بستگی دارد و به محض تغییرِ فایل نام و آدرس آن فایل هم تغییر میکند. به این ترتیب اگر فایل شما روی سِروری تغییر کرده باشد، مرورگر یا برنامهای که مسئولِ دریافت فایل است به سرعت تشخیص میدهد که این فایل، فایل درخواست شده نیست و آن را حذف میکند. باید توجه کرد که نام فایل با استفاده از یک تکنیک کامپیوتری به نام هَش (Hash) که الگوریتمهای مختلفی دارد از روی محتویاتِ فایل ساخته شده و امکان یکی بودن نام دو فایل با محتویات متفاوت بسیار بسیار ناچیز است. دربارهی الگوریتم هَش پیشتر در اینجا توضیح دادهایم.
در عین حال وقتی چند سِرور مختلف یک فایل مشابه مانند فایلهای جاوا اسکریپت (Java Script) دارند فقط یکی از آنها نیاز به بارگذاری آن فایل دارد.
توجه: این نوشته با نوشتههای بعدی تکمیل خواهد شد.
بخش اول این مجموعه نوشته با عنوان «تعریف Caching و فرآیند آن» را در اینجا بخوانید.
بخش دوم این مجموعه نوشته با عنوان «هَش (Hash) یا الگوریتم درهمساز چیست و چگونه استفاده میشود؟» را در اینجا بخوانید.
بخش سوم این مجموعه نوشته با عنوان «آیپیافاس (IPFS) چیست؟» را در اینجا بخوانید.
پیشنهادها و انتقادات خود را از طریق شبکههای اجتماعی پسکوچه با ما در میان بگذارید.
❤️ تیم پسکوچه