مکانی که داده ها برای پردازش ذخیره می شوند، ممپول (Mempool) نامیده می شود که مخفف Memory Pool است. دادههای تراکنشهایی که در انتظار تایید هستند به مخزن حافظه منتقل میشوند و بنابراین به آن"استخر تراکنش" نیز میگویند. این مخزن جایی است که تمام تراکنش های معلق یا اخیراً استفاده شده در بلاک چین در آن قرار می گیرند. این تراکنشها قبل از اینکه پس از تایید در بلاک بعدی بلاک چین گنجانده شوند، منتظر تایید ماینرها خواهند بود.
ممپول ها روی بلاک چین ذخیره نمی شوند اما گره های شبکه هر کدام حافظه داخلی خود را دارند و هر کدام دارای ظرفیت های متفاوتی هستند. به عبارت دیگر، این گرهها ماینرهایی در سراسر جهان هستند که نسخه کاملی از بلاک چین را در اختیار دارند. هنگامی که یک گره یک بلوک معتبر جدید دریافت می کند، تمام تراکنش های موجود در بلوک از حافظه داخلی حذف شده و تراکنش های دارای ورودی های متناقض نیز حذف می شوند. این می تواند باعث شود که اندازه ممپول به طور ناگهانی تغییر کند و به شدت کاهش یابد.
به طور کلی سخت افزاری برای ایجاد گره اختصاص داده می شود که در اکثر موارد محدود است و باید گفت که انگیزه مالی برای تولید گره وجود ندارد. یک تراکنش همیشه به زمان نیاز دارد تا پس از ارسال در شبکه منتشر شود. یعنی شما ابتدا یک تراکنش را برای همتایان خود ارسال می کنید، پس از مدتی این تراکنش برای سایر همتایان ارسال می شود. از آنجایی که این کار طبق روال معمول انجام نمی شود، باعث می شود گره های مختلف در زمان های مختلف عملیات متفاوتی را در حافظه داخلی خود انجام دهند. این تراکنش ها تا زمانی که در یک بلوک قرار نگیرند تایید نشده باقی می مانند.
ماینرها معاملات را برای تایید بر اساس نرخ کارمزد انتخاب می کنند. به این ترتیب هر چه کارمزدها بیشتر باشد، تراکنش بیشتر می شود و سریعتر در بلوک قرار می گیرد. به عنوان مثال، افرادی را که در ایستگاه اتوبوس منتظر هستند، در نظر بگیرید، همان تراکنش های تایید نشده اند. هر کدام از این افراد پس از تایید شرایط (با ارائه بلیط یا پرداخت هزینه) در صف سوار شدن به اتوبوس منتظر می مانند.
دلیل ورود معاملات به ممپول
کیف پول خود را باز می کنید، تصور کنید مقدار کمی بیت کوین را به آدرس دیگری ارسال می کنید. آدرس گیرنده را به همراه مبلغی که ارسال می کنید می نویسید و کارمزد تراکنش را مشخص می کنید و گزینه ارسال را انتخاب می کنید. در این صورت بیت کوین ارسالی بلافاصله به آدرس گیرنده نمی رسد، بلکه کیف پول شما ابتدا تمامی این تراکنش ها را به گره های دیگر شبکه منتقل می کند. به این ترتیب ابتدا تراکنش های مورد نظر خود را با کلید خصوصی امضا کرده و سپس در شبکه قرار می دهید. هنگامی که این مرحله با موفقیت انجام شد، تراکنش ها به Mempool اضافه می شوند و به محلی برای تراکنش های تایید نشده بیت کوین تبدیل می شوند.
ممپول چگونه کار می کند؟
تراکنش شما به Mempool رسیده است و در انتظار تایید، همراه با هزاران تراکنش تایید نشده دیگر است. برای ورود به پلتفرم بلاک چین، تمامی تراکنش های انجام شده در ممپول باید تایید شوند. ممکن است تعجب کنید که چه کسی همه این تراکنش های تایید نشده را پس از بررسی تایید می کند. در پاسخ باید بگوییم که «ماینرها» مسئول این کار هستند. تراکنش شما حداقل به یک تایید از طرف ماینر نیاز دارد تا به آدرس گیرنده برسد.
برای دریافت این تایید، ماینر ابتدا باید تراکنش شما را از استخر حذف کند و سپس آن را به همراه تعدادی تراکنش تایید نشده دیگر در یک بلوک قرار دهد. در این حالت، ماینر فعالیت خود را برای حل مسئله پیچیده ریاضی آغاز می کند و پس از یافتن راه حل، بلوکی که تراکنش درخواستی در آن ذخیره می شود، به بخشی از بلاک چین تبدیل می شود. از طرف دیگر، اگر تراکنش شما برای مدت طولانی تایید نشود، لغو و بازپرداخت می شود. این مدت برای هر قطعه دو هفته است و به آن دوره انقضا می گویند. این بدان معنی است که اگر تراکنش شما بیش از دو هفته در ممپول باقی بماند و تأیید نشود، به کیف پول شما بازگردانده می شود.
اندازه ممپول
هنگامی که یک گره یک بلاک معتبر دریافت می کند، تمام تراکنش های پردازش شده و ذخیره شده در حافظه حذف می شوند. این کار فضای موجود را آزاد میکند و فضایی را برای تراکنشهایی که هنوز تأیید نشدهاند و باید به بلاک چین اضافه شوند آزاد میکند و اندازه ممپول را کاهش میدهد. به عبارت دیگر، اندازه ممپول متغیر است و به تعداد تراکنش های انجام شده بستگی دارد. همچنین مهم است که هر بلوک فقط می تواند تعداد معینی از تراکنش ها را انجام دهد.
حال تصور کنید چندین فرآیند به طور همزمان به حافظه داخلی می رسند. در این زمان، حافظه داخلی پر می شود و عملیات را به تاخیر می اندازد. در نتیجه، به دلیل محدودیت در گره های موجود، حافظه مورد نیاز در شبکه مورد استفاده برای ذخیره تمام تراکنش های تایید نشده نیز محدود است. بنابراین، یک حد یا آستانه باید به طور خودکار تنظیم شود تا از تمام شدن حافظه جلوگیری شود. به این ترتیب، پس از رسیدن به آن، تمام تراکنش هایی که زیر آستانه تعیین شده قرار می گیرند از Mempool حذف می شوند. این تضمین میکند که فقط تراکنش هایی که برای ممپول پرداخت میکنند توسط ممپول گنجانده شده و پذیرفته میشوند.
کلام آخر
در این مقاله با ممپول و عملکرد آن آشنا شدیم و یاد گرفتیم که وقتی یک حافظه اعتبارسنجی می شود، شامل یک سری تراکنش است که منتظر تایید برای گنجاندن در بلوک بعدی هستند. هنگامی که یک تراکنش به شبکه منتقل می شود، ابتدا توسط تمام گره های شبکه تأیید می شود. هر زمان که اندازه Mempool افزایش یابد، باعث ترافیک بیشتر و در نتیجه تاخیر در پردازش تراکنش ها می شود زیرا زمان تایید بیشتر است و هزینه های اولویت بیشتر است. گاهی اوقات ممکن است به دلیل کارمزد پایین تراکنش (کارمزد کمتر) تراکنش ها در ممپول باقی بمانند.
نظر بدهید