مشکلات مقیاس پذیری در بلاک چینها باعث شد تا راهکارهایی مانند شاردینگ و لایتنینگ برای بهبود آن ارائه شوند. شاردینگ یکی از روشهای بهبود مقیاس پذیری است که بلاک چینهایی چون اتریوم قصد استفاده از آن را در آینده دارند. در این مطلب که از کوینتلگراف گرفته شده، به توضیح تاریخچه شاردینگ و نحوه استفاده از آن در بلاک چینها خواهیم پرداخت.
شاردینگ چیست؟
شاردینگ نوعی پارتیشنبندی پایگاه داده است که از آن به عنوان پارتیشنبندی افقی نیز یاد میشود.
فرایند شاردینگ شامل شکستن یک پایگاه داده بسیار بزرگ به اجزای کوچکتر و قابل مدیریت است. اجرای شاردینگ با هدف بهبود عملکرد و کاهش زمان پاسخدهی انجام میشود.
شاردینگ مفهوم جدیدی نیست و از اواخر دهه ۹۰ میلادی در مدیریت پایگاه دادههای متمرکز رایج از آن استفاده میشده است.
استفاده از این اصطلاح زمانی رایج شد که توسعهدهندگان یکی از اولین بازیهای در سبک نقش آفرینی بر خط چندنفره گسترده به نام اولتیما آنلاین، برای مدیریت ترافیک ورودی تصمیم گرفتند بازیکنان را در سرورهای مختلف پخش کنند.
مثال رایج از شاردینگ یک پایگاه داده بزرگ در دنیای کسبوکار، شکستن پایگاه داده مشتریان به مناطق جغرافیایی است. مشتریانی که در مکانهای جغرافیایی یکسانی هستند، با هم گروهبندی میشوند و در سرورهای منحصربفردی قرار میگیرند.
شاردینگ در بلاک چین نیز مفهوم ثابتی را دنبال میکند.
شبکههای بلاک چینی پایگاه دادهای هستند که هر نود یا گره به عنوان سرور مجزایی در شبکه اعلام حضور میکند. اگر شاردینگ را در بلاک چین اجرا کنیم، در واقع شبکه را به اجزای کوچکتری که «شارد» نام دارند، تقسیم کردهایم. هر شارد مجموعه ثابت و منحصربفردی از قراردادهای هوشمند و موجودی حسابها را نگهداری خواهد کرد.
نودها در شاردهای مجزایی قرار میگیرند تا تراکنشها و عملیات خاصی را تایید کنند. به عبارتی نودها در شاردینگ، دیگر مسئول تایید تمامی تراکنشها در شبکه نخواهند بود.
ایجاد اجزای قابل مدیریتتر، هدف استفاده از شاردینگ در بلاک چینهاست تا در نتیجه آن میزان تراکنشها افزایش یابد و مشکلاتی ناشی از مقیاسپذیری در بلاک چینهای بزرگ امروزی حل شود.
در ادامه به جزئیات شاردینگ خواهیم پرداخت.
برای توضیح شاردینگ، از مثال بلاک چین اتریوم استفاده میکنیم.
بلاک چین اتریوم از هزاران کامپیوتر (به عبارت دقیقتر ۸۶۲۲ عدد در حال حاضر) تحت عنوان نودها تشکیل شده است. هر کدام از نودها میزان مشخصی قدرت هش در اختیار شبکه میگذارند تا ماشین مجازی اتریوم (EVM) از پس اجرای وظایف خود مانند اجرای قراردادهای هوشمند و برنامههای غیرمتمرکز برآید.
در حال حاضر اتریوم بر پایه اجرای ترتیبی یا خطی کار میکند که در آن هر نود باید تمامی عملیات و تراکنشها را پردازش کند. برای همین نیز عبور تراکنشها از این فرایند زمان زیادی به طول میانجامد. در حال حاضر اتریوم میتواند تا ۱۰ تراکنش در ثانیه پردازش کند اما برای نمونه سیستمهای پرداخت ویزا قادر به پردازش ۲۴,۰۰۰ تراکنش در ثانیه هستند. همینطور افزودن کامپیوتر یا همان نود به شبکه الزاما باعث بهبود راندمان نخواهد شد؛ چرا که دفتر کل و تراکنشهای ثبت شده بر روی تمامی کامپیوترها موجود است و تنها زنجیره تایید کردن طولانیتر خواهد شد.
شاردینگ مدل اجرای خطی را که در آن هر نود تمامی فعالیتها را پردازش میکند، به مدل اجرای موازی تغییر میدهد که در آن هر نود تنها مسئول پردازش تعداد مشخصی از تراکنشها خواهد بود. در این صورت پردازش تراکنشها به صورت موازی و در خطوط چندگانه پیش خواهد رفت.