فهرست مطالب
Toggleبه بیان ساده، شاردینگ یعنی تقسیم یک پردازش بزرگ به پردازشهای کوچکتر؛ فرض کنید قصد تکمیل یک جورچین ۱,۰۰۰ تکه را دارید. به جای آن که تمام ۱,۰۰۰ تکه را روی میز بریزید و شروع به چیدن آنها کنید، میتوانید آنها را بر اساس رنگ تکهها جدا کنید و سپس کار تکمیلش را انجام دهید. این دستهبندی باعث میشود بررسی تکههایی که برای بخش خاصی هستند، آسانتر و سریعتر باشد.
شاردینگ راهکاری است که بار پردازش را به قسمتهای کوچکتر تقسیم میکند و به این طریق، ظرفیت و سرعت شبکه را افزایش میدهد.
واژه شارد (Shard) بهمعنای تکه یا قطعه است و شاردینگ از لحاظ واژگانی به تکهتکه یا قطعهقطعه کردن یک چیز گفته میشود. برای درک بهتر مفهوم شاردینگ، ابتدا نگاهی به تاریخچه آن خواهیم داشت و سپس نقش آن را در فناوری بلاک چین بررسی میکنیم.
شاردینگ در ارزهای دیجیتال
با توجه به تعریف شاردینگ و برقراری ارتباط میان این تعریف و مشکلات مقیاسپذیری بلاک چین، احتمالاً متوجه شدهاید که این تکنیک تا چه حد میتواند در دنیای بلاک چین و ارزهای دیجیتال کاربردی باشد.
شبکههای بلاک چینی در حقیقت پایگاههای دادهای هستند که هر نود (Node) یا گره در آنها بهعنوان سرور مجزایی در شبکه کار میکند. اگر شاردینگ را در بلاک چین اجرا کنیم، در واقع شبکه را به اجزای کوچکتری که «شارد» نام دارند تقسیم کردهایم. هر شارد مجموعه منحصربهفردی از قراردادهای هوشمند و موجودی حسابها را نگهداری خواهد کرد. بهطور کلی، در حوزه بلاک چین، شاردینگ بهمعنای تقسیمبندی یک مجموعه داده به چند قسمت و ذخیره آن در چندین پایگاه داده است.
نودها در شاردهای مجزایی قرار میگیرند تا تراکنشها و عملیات خاصی را تأیید کنند. بهعبارتی نودها در شاردینگ، دیگر مسئول تأیید اعتبار تمامی تراکنشهای شبکه نخواهند بود. برای توضیح بهتر شاردینگ میتوانیم از مثال بلاک چین اتریوم استفاده کنیم.
بلاک چین اتریوم از هزاران کامپیوتر تحت عنوان نودها تشکیل شده است. هر کدام از نودها میزان مشخصی قدرت هش در اختیار شبکه میگذارند تا ماشین مجازی اتریوم (EVM) از پس اجرای وظایف خود مانند اجرای قراردادهای هوشمند و برنامههای غیرمتمرکز برآید.
در حال حاضر اتریوم بر پایه اجرای ترتیبی یا خطی کار میکند که در آن، هر نود باید تمامی عملیات و تراکنشها را پردازش کند. به همین دلیل است که عبور تراکنشها از این فرایند زمان زیادی به طول میانجامد. در حال حاضر اتریوم میتواند حدود ۱۳ تراکنش را در ثانیه پردازش کند؛ اما برای نمونه، سیستم پرداخت ویزا قادر به پردازش ۲۴,۰۰۰ تراکنش در ثانیه است.
شاردینگ در واقع مدل اجرای خطی را که در آن هر نود تمامی فعالیتها را پردازش میکند، به مدل اجرای موازی تغییر میدهد که در آن هر نود تنها مسئول پردازش تعداد مشخصی از تراکنشها خواهد بود. در این صورت پردازش تراکنشها بهصورت موازی و در خطوط چندگانه پیش خواهد رفت.
یک بلاک چین به شاردهای مختلف (زیردامنه یا باکت) تقسیم میشود.به همین دلیل است که به شاردینگ، قسمتبندی افقی (Horizontal Partitioning) نیز میگویند که جایگزینی برای قسمتبندی عمودی (Vertical Partitioning) است.
در قسمتبندی افقی، دادههای کاربران مختلف در شاردهای متفاوت ذخیره میشود. این در حالی است که در قسمتبندی عمودی، هر یک از مشخصات کاربران در یک شارد جداگانه ذخیره خواهد شد. بهعنوان مثال، موجودی حساب در یک شارد و آدرس کیف پول در یک شارد دیگر قرار خواهد گرفت.
در فناوری بلاک چین، قسمتبندی افقی مزایای بیشتری دارد؛ چراکه مقیاسپذیری در آن با کارایی بیشتری قابلپیادهسازی است.
لاک چینی که بهصورت کامل شاردینگ را پیادهسازی کند، میتواند به قابلیتهای زیر دست یابد:
- با اجرای تراکنشهای بیشتر در چندین شارد که بهصورت موازی عمل میکنند، ظرفیت انجام تراکنشها افزایش مییابد؛
- با توجه به اینکه نودهای جدید نیاز به ذخیره کل تاریخچه تراکنشها ندارند، موانع ورود نودهای جدید بهشکل دیتابیسهای شاردشده کاهش مییابد و در نتیجه، دامنه تمرکززدایی گسترش پیدا میکند؛
- امنیت در بلاک چینهای شاردشده برخلاف اکوسیستمهای چندزنجیرهای بالاتر است؛ چراکه در سیستمهای شاردشده تراکنشها باید در سراسر شبکه تأیید شوند. این در حالی است که در اکوسیستمهای چندزنجیرهای، تراکنشهای یک زنجیره فقط در همان زنجیره تأیید میشوند.
با این حال، شاردینگ خالی از مشکل هم نیست و با چالشهای خاص خود همراه است. در ادامه برخی از چالشها و محدودیتهای شاردینگ را بررسی میکنیم.
شاردینگ چیست
به بیان ساده، شاردینگ یعنی تقسیم یک پردازش بزرگ به پردازشهای کوچکتر؛ فرض کنید قصد تکمیل یک جورچین ۱,۰۰۰ تکه را دارید. به جای آن که تمام ۱,۰۰۰ تکه را روی میز بریزید و شروع به چیدن آنها کنید، میتوانید آنها را بر اساس رنگ تکهها جدا کنید و سپس کار تکمیلش را انجام دهید. این دستهبندی باعث میشود بررسی تکههایی که برای بخش خاصی هستند، آسانتر و سریعتر باشد.شاردینگ چیست