sharding چیست؟
بلاک چین مانند ظهور اینترنت در دهههای ۸۰ و ۹۰ میلادی است. در آن زمان اینترنت پیشگام ارتباطات آنلاین بود و بلاک چین امروزه راه جدیدی برای افزایش دارایی براساس شبکههای داده و داراییهای دیجیتالی ایجاد میکند.
درواقع این شبکهها شامل محیط فناوری غیرمتمرکز خود هستند که بهمنظور ارائه خدمات دفتر کل و قرارداد هوشمند به اپلیکیشنهای غیرمتمرکز (dApps) شناخته میشوند. آنها برای تسهیل برنامههای خود از اتریوم استفاده میکنند. هدف اتریوم ایجاد رایانه جهانی برای اجرا، رشد و گسترش اپلیکیشنهای غیرمتمرکز است.
شبکه اتریوم درصورتی میتواند به این هدف دست یابد که حجم زیادی از دادهها را در سیستم خود ذخیره و نگهداری کند. البته این کار در حال حاضر امکانپذیر نیست، اما باز هم غیرممکن، یعنی غیرممکن.
sharding چیست؟
با پیدایش بیت کوین، دیدگاه بسیاری از افراد به ارزش بلاک چین تغییر کرد. این فناوری به یکی از هیجانانگیزترین پیشرفتهای فنی قرن بیست و یکم تبدیل شده است. هر چه بلاک چین شناختهتر شد، افراد بیشتری برای زیرساخت پروژههای خود از آن استفاده کردند.
ازجمله چالشهایی که از ابتدای ظهور بلاک چین سرنوشت توسعههای آینده را تهدید میکرد، نبود مقیاسپذیری بود. توسعهدهندگانی که تلاش میکردند مشکل مقیاسپذیری را حل کنند، معمولاً به راهکارهایی دست پیدا میکردند که در تضاد با تمرکززدایی و تأمین امنیت شبکه بود.
در این راستا، تلاشهای زیادی صورت گرفت و راهحلهای متنوعی ارائه شد تا درنهایت روشهایی به نام شاردینگ و لایتنینگ توانستند توجه بخش زیادی از فعالان حوزه ارزها را بهسوی خود جلب کنند.
درحقیقت شاردینگ میتواند کلید اصلی مقیاسپذیری بلاک چین باشد؛ درحالیکه بحث حفظ کردن مشخصههای حریم خصوصی و امنیت که فناوری دفتر کل توزیعشده را میسازد، داغ است.
با وجود خوبیهایی که شاردینگ دارد، هنوز مشکلها و چالشهایی وجود دارد که باید به آنها توجه کرد؛ از اینرو در این مطلب قصد داریم تا به مقوله Sharding بپردازیم و تمامی زوایا و جوانب آن را بررسی کنیم.
شاردینگ پایگاه داده
Sharding نوعی تقسیمبندی یا خردکردن شبکه است که با عنوان طبقهبندی افقی (Horizontal Partitioning) نیز شناخته میشود. این فرایند شامل خردکردن یک پایگاه داده بسیار عظیم به پایگاههای داده کوچکتر و بخشهایی با قابلیت مدیریت بیشتر است که ایده بهبود عملکرد و کاهش مدتزمان پاسخدهی به درخواستها را در خود دارد.
Sharding یک مفهوم جدید نیست و حداقل از دهه ۹۰ میلادی تاکنون در مدیریت پایگاه دادههای متمرکز و سنتی حضور داشته است. این اصطلاح توسط یکی از اولین بازیهای نقشآفرینی آنلاین بزرگ چندنفره به نام Ultimate Online محبوب شد که در آن توسعهدهندگان بازیکنان را در سرورهای گوناگون تقسیمبندی کردند تا مشکل ترافیک حل شود.
در کسب و کارها، یکی از مثالهای رایج از شاردینگ یک پایگاه داده بزرگ، شکستن پایگاه داده مشتریان به مناطق جغرافیایی است. در این حالت، مشتریان حاضر در مناطق جغرافیایی یکسان گروهبندی و در سرورهای منحصربهفرد جای داده میشوند. بهطورکلی، پیش از تصمیمگیری بهمنظور پارتیشنبندی پایگاه داده خود، بهتر است دیگر گزینهها را بررسی کنیم؛ بهطوریکه برخی بهبودهایی که میتوانیم انجام دهیم عبارتاند از:
مجزا سازی سرور اپلیکیشن از سرور پایگاه داده
اگر یک اپلیکیشن بهاصطلاح Monolithic داشته باشیم که تمامی اجزای آن روی تنها یک سرور است، شاید بتوان با انتقال پایگاه داده به یک سرور مجزا عملکرد آن را بهبود بخشید؛ بهطوریکه با دنبالکردن این استراتژی میتوان به Vertical Scaling دست زد.
استفاده از ساز و کارهای کیچ (Cache) مطلوب
چنانچه فراخوانی دادهها در اپلیکیشن ما بیش از ثبت دادههای جدید باشد، در چنین مواقعی میتوان با کشکَشکردن کوئریها بار روی سرور را کم و درنتیجه عملکرد را زیاد کرد.
استفاده از رپلیکیشن (Replication)
در معماری پایگاه داده، اساساً رپلیکیشن به فرایندی گفته میشود که بهموجب آن، داده از یک پایگاه داده به یک یا چند پایگاه داده دیگر کپی میشود؛ بهطوریکه همه آنها از دادههای یکسانی برخوردار هستند و این کار سبب میشود تا فرایند فراخوانی دادهها میان چندین سرور پخش شده و از ایرادات احتمالی جلوگیری شود.
شاردینگ در بلاک چین
Sharding یک مهارت طبقهبندی پایگاه داده است و در بلاک چینها و با هدف مقیاسپذیری استفاده میشود تا بلاک چینها بهکمک آن بتوانند تراکنشهای بیشتری را در هر ثانیه پردازش کنند. درحقیقت Sharding تمامی شبکه بلاک چین را به طبقاتی کوچکتر تقسیم میکند که به هرکدام از آنها یک «شارد» گفته میشود.
از طرفی هر شارد از دادههای مخصوص خود تشکیل شده است که آن را در قیاس با دیگر شاردها متمایز و مستقل میکند. همچنین هدف اصلی Sharding در بلاک چین، کاهش تأخیر در پردازش اطلاعات و بهبود سرعت آن نیز خواهد بود.
از سوی دیگر، نگرانیهای امنیتی پیرامون بهکارگیری شاردینگ در بلاک چین نیز وجود دارد؛ برای مثال هک یا تصاحب شاردی، به نوعی تهاجم گفته میشود که در آن یک شارد به شاردی دیگر حمله میکند و به از دست رفتن اطلاعات آن منجر میشود. بهمنظور درک ساز و کار Sharding، ابتدا باید مفاهیمی مانند فناوری دفتر کل توزیعشده (Decentralized Ledge) و مقیاسپذیری را درک کنیم.
دفتر کل توزیعشده
بهکارگیری فناوری دفتر کل توزیعشده (DLT) در بلاک چین آن را جذاب میکند؛ چراکه اجازه میدهد تراکنشها بهطور توافقی در چندین نقطه گوناگون در سراسر جهان به اشتراک گذاشته شوند. با ثبت تراکنشها، دادهها کپی میشود و در عرض چند ثانیه در شبکه ارسال شده و به اشتراک عموم گذاشته میشوند و بهاصطلاح شواهد عمومی شکل میگیرد.
در این فناوری، اگر بخشی از شبکه قربانی کلاهبرداری یا حمله خرابکارها شود، شرکتکنندگان شبکه میتوانند آنچه را که کلاهبرداران تغییر داده و دستکاری کردهاند، شناسایی کنند؛ زیرا همگی یک کپی از تراکنشهای منتشرشده در دفتر کل را در سیستم خود نگهداری میکنند.
درنتیجه، سیستم دفتر کل توزیعشده اجراشده در بلاک چین میتواند به کاهش تقلب و محدودکردن آسیبهای ناشی از حملات سایبری و هکشدن در آن کمک کند.
مقیاسپذیری بلاک چینها
یکی از چالشهای اصلی فناوری بلاک چین این است که با اضافهشدن کاربران شبکه و پردازش تراکنشهای بیشتر، شبکه بهاصطلاح دچار ایراد شده و روند پردازش اطلاعات در آن کند میشود که به آن تأخیر یا لتنسی (Latency) شبکه میگویند.
تأخیر مانعی برای بلاک چین محسوب میشود و کاربرد آن را محدود میکند؛ درحالیکه بلاک چینها با مانعی به نام تأخیر در روند گسترش خود مواجه میشوند و سیستمهای پرداخت متمرکز الکترونیکی فعلی با سرعت و کارآمدی بیشتری عمل میکنند.
به عبارت دیگر، همچنان که صنایع و کاربران بیشتری از این فناوری استفاده میکنند، مقیاسپذیری چالشی برای بلاک چین در مدیریت حجم فزاینده دادهها و جریان تراکنشهاست. همچنین یکی از راهحلهایی که برای فراهمکردن مقیاسپذیری بیتأخیر در نظر گرفته میشود، فرایند شاردینگ است.
Sharding بهگونهای طراحی شده است که حجم کاری شبکه را به پارتیشنها تقسیم میکند تا در حد ممکن در کاهش تأخیر مؤثر باشد و امکان پردازش تراکنشهای بیشتر در زمان کوتاهتر توسط بلاک چین را فراهم کند.
دیدگاهتان را بنویسید