بلاک چین (blockchain) نوعی ماشین تراکنش است. دادههای روی زنجیره ارائهدهنده تراکنشهای تایید شده هستند که ارزش در آنها ذخیره شده است. این در حالی است که در Mempool یا پیش زنجیره، دادهها ارائهدهنده ارزش و تراکنشهای جاری هستند.
امروزه این صنعت عمدتا متمرکز بر ارزش ذخیره شده است. این بخش مهمی از شبکه نسل سوم است. برای این که هر تراکنشی در یک بلاک جای بگیرد، باید از mempool بگذرد. Mempool بر خلاف بلاک چین که به عنوان یک ثبت قطعی عمل میکند، آشفته و غیر قابل پیشبینی است. درک این مفاهیم برای کاربران ارز دیجیتال خالی از لطف نیست.
خلاصهای از مطلب
سازندگان باتجربه مدتها با پیچیدگی Mempool دست و پنجه نرم کردهاند. با ارائه ساختار mempool ، مشکلات جالبی ظاهر میشوند. یکی از این مشکلات این است که تنها یک منبع حقیقت وجود ندارد، بلکه هزاران mempool مستقل وجود دارد که هر کدام محتوی دادههای مختلفی هستند.
دادههای تراکنش دائما در حال حرکت هستند. دادههای خام دارای تراکم کم و گاهی اوقات نامتناسب هستند. در نتیجه، به دست آوردن دادههای قطعی mempool دشوار است. افزایش پیچیدگی در معماریهای تراکنش باعث تشدید این چالشها میشود.
در حالی که بلاک چین به عنوان یک منبع واحد حقیقت عمل میکند، mempool هیچ شکل ذاتی از تضمین اجماع ندارد. سازماندهی کردن این آشفتگی به صورت دادههای پیش زنجیره مطابق میل توسعهدهندگان نیازمند منابع و تخصص اساسی است.
تراکنشهای بلاک چین مانند چمدانهای بررسی شده هستند
وقتی که فردی بر روی شبکه نسل سوم تراکنش انجام میدهد، این فرد باید تراکنش را به شبکه تحویل دهد و امیدوار باشد که این تراکنش وارد یک بلاک شود. این درست مانند بررسی کردن چمدانها در فرودگاه است. نودی (node) که تراکنش فرد را دریافت میکند، اقدام به انتشار آن میکند و منتظر تایید آن فرد میشود. اگر این تراکنش گیر کند و یا گم شود، هیچ مقام متمرکزی وجود ندارد که به شما بگوید چه اتفاقی افتاده و یا اینکه در حل مشکل به شما کمک کند.
نگرانی در مورد تراکنشها حقیقت دارد
با توجه به وضعیت شبکه نسل سوم و نحوه اعتبارسنجی تراکنشها، تراکنشها نوعی نگرانی ایجاد میکنند و این نگرانی تنها مخصوص کاربران جدید نیست.
کاربران باتجربه که احتمال بیشتری دارد که با ارزش واقعی تراکنش انجام دهند، اغلب بیشترین نگرانی را در مورد تراکنشها تجربه میکنند. این نگرانی برای اکوسیستم بلاک چین مشکلآفرین است و کاربران نهایی معمولا با چنین سیستمهایی تعامل برقرار نمیکنند.
ارزش روی زنجیره، غیرفعال و ذخیره شده است
در فضای بلاک چین از ارزش روی زنجیره زیاد صحبت میشود. این در حالی است که همه این ارزش غیرفعال و ذخیره شده است. اما برعکس، Mempool همیشه در حال تحرک است.
این قضیه اهمیت دارد؛ زیرا مکانیزمهای درونی mempool خیلی درک نمیشوند. داشتن دانش در مورد فعالیتهای mempool در درک این که هر تراکنش چگونه بر روی زنجیره ذخیره میشود، اهمیت دارد.
حتی اصطلاحات پایه هم جای تردید و مباحثه دارند
Blocknative به این صورت Mempool را تعریف میکند:
منطقه شروع عملیات اشتراکی در مقابل یک بلاک چین که نظمدهی تراکنش، اولویتبندی کارمزد تراکنش و ساختار بلاک عمومی را فعال میکند.
میتوان این را به عنوان یک ناحیه انتظار برای پذیرش تراکنشها و ورود آنها به داخل بلاک تصور کرد. اما با توجه به موقعیت خود در اکوسیستم گسترده بلاک چین ، ممکن است برچسب متفاوتی را مورد استفاده قرار دهید:
- Geth این را TX-POOL مینامد.
- Parity آن را TX-QUEUE مینامد.
- بیت کوین آن را mempool مینامد.
- لیبرا (Libra) آن را مانند بیت کوین نامگذاری میکند.
- تزوس (Tezos) نیز آن را مانند بیت کوین نامگذاری میکند.
ما نیز در اینجا به منظور شفافیت و فراگیری از برچسب mempool استفاده میکنیم.
چیزی به نام Mempool وجود ندارد
هیچ Mempool استاندارد و یا سازمانی وجود ندارد. در عوض، تعداد زیادی Mempool وجود دارند و هر نود دارای نوع بینظیر خود است و به تعداد نودها Mempool وجود دارد.
ترکیب تراکنشها در داخل یک mempool تحت تاثیر عوامل زیادی است و این عوامل هستند که تعیین میکنند که کدام تراکنش وارد میشود و ادامه مییابد.
تنظیمات پیشفرض اهمیت دارند
تنظیمات پیشفرض برای Geth و Parity بخش عمده رفتار را دیکته میکند. اگر همه شکافها در یک نود پر باشد، وقتی یک تراکنش معوق جدید به Mempool پذیرفته میشود، تراکنشی که کمترین کارمزد را دارد، رها میشود.
نودهای مختلف که دارای تنظیمات متفاوتی هستند، تراکنشهای مختلفی را مورد پذیرش قرار میدهند و یا رد میکنند.
Mempool تراکنشها را از دست میدهد
یک تراکنش از دست داده شده به تراکنشی گفته میشود که بر روی زنجیرهای نوشته شده که نسخه Mempool کاربر آن را پذیرش نمیکند. از منظر کاربر، این تراکنشی است که فورا تایید شده است.
بنا به تحلیلات ما، Mempool یک نود خاص در یک منطقه خاص حدود ۱ درصد از همه تراکنشها را در خلال شرایط عملکردی عادی از دست میدهد. در صورتی که حجم تراکنشها زیاد باشد، درصد تراکنشهای از دست رفته میتواند بسیار متنوع باشد.
هر چیزی در Mempool را میتوان جایگزین کرد
در حالی که تراکنشهای روی زنجیره غیرقابل تغییر هستند، تراکنشهای جاری را میتوان با تراکنش جایگزین رونویسی بیش از حد کرد. اینها را معمولا تراکنشهای cancel و speed up مینامند.
درصد تراکنشهای جایگزین در طول زمان تفاوت دارد. در حالی که معمولا این تراکنشها حدود ۱ درصد از همه تراکنشها هستند، اما در زمان اوج فشار بیش از ۱۰ درصد را تشکیل میدهند.
چگونه از دادههای Mempool استفاده کرد؟
Notify چارچوب کاری قدرتمندی است که به توسعهدهندگان اجازه دسترسی به یک شبکه نود جهانی میدهد که این شبکه به صورت آنی Mempool را تسخیر و سازماندهی میکند.
توسعهدهندگان میتوانند به notify به صورت API، SDK و JS Library دسترسی داشته باشند. این شبکه اعلانات آنی مورد اعتماد بیش از ۴۰ تیم است.
ایجاد سریعتر از طریق مکانیسم خوراکدهی داده بی درنگ
توسعهدهندگان از دادههای Mempool حداکثر استفاده را میکنند تا زمان توسعه را کاهش دهند و قرارداد هوشمند را بی درنگ اشکالزدایی کنند.
از طریق تنظیم یک Notify API، توسعهدهندگان میتوانند برنامههای غیرمتمرکز و قراردادهای هوشمند را بی درنگ اشکالزدایی کنند. تنظیم این حدود ۵ دقیقه زمان میبرد و به توسعهدهندگان این امکان را میدهد که بازخورد فوری دریافت کنند.
بهبود تجربه کاربری با هشدارهای تراکنش
به جای این که انتظار داشته باشیم که کاربران دادهها را استخراج کرده و برای به روز رسانیها آماده شوند، برنامه شما میتواند از Notify API بهترین استفاده را بکند و اطلاعات را در اختیار کاربران قرار دهد.
میتوانید مثالی از این کار را در Pillar و Eidoo مشاهده کنید که هر دوی آنها به کاربران در مورد تراکنشهای ورودی و خروجی هشدار میدهند. این حلقه بازخورد باعث کاهش نگرانی کاربران میشود و به آنها کمک میکند که در موقع پیش آمدن مشکل، اقدامی درست و مناسب انجام دهند.
عملکرد پروتکل معیار
پروتکلهای امور مالی غیرمتمرکز (DeFi) میتوانند از دادههای Mempool استفاده کنند و متوجه شوند که تراکنشها بر روی پروتکل آنها در مقایسه با دیگر پروتکلها چقدر به طول انجامیده است.
حقیقت این است که بسیاری از پروتکلها بینشی در مورد زمان تراکنش ندارند. در اینجاست که عملکرد اهمیت پیدا میکند.
مثالی از ساخت توسط دادههای Mempool
امروزه توسعهدهندگان در فضای بلاک چین استفادههای زیادی از Notify میکنند و با استفاده از آن اقدام به ساخت برنامههای نسل آینده میکنند.
یک پروژه مهیج که در اینجا مورد بحث قرار میدهیم، OutFront نام دارد. این سرویس بر تراکنشهای معوق برای انتقالهای غیرمجاز توکنهای ERC20 از کیف پولها نظارت میکند و تراکنش رقیب با کارمزد بالاتر را از میان برمیدارد و وجوه را نجات میدهد. این سیستم که وجوه را خودش نگه نمیدارد، از یک توکن مجاز تایید شده برای اجرای ریکاوری استفاده میکند.
قبلا پیچیدگی mempool باعث شده بود که هیچ تیمی بر روی آن اقدام به ساخت نکند. اما اکنون با استفاده از API و SDK فراهم آمده از جانب Blocknative، قضیه فرق کرده است. در این جهان جدید، توسعهدهندگان قادرند که همه وضعیتهای احتمالی آینده بلاک چین را ببینند.
کلام پایانی
تراکنشهای زیادی در داخل Mempool وجود دارد که در این میان، تعداد تراکنشهای داخلی بسیار بیشتر از تراکنشهای خارجی است. بنابراین محیط دادههای mempool آشفته و همیشه در حال تغییر است. برای پردازش تراکنشهای زیاد، لازم است که در فضای بلاک چین از Mempool استفاده بهینه شود تا تجربه کاربری بهبود یابد.
برای پذیرش عام بلاک چین و ارز دیجیتال، نیازمند تجارب کاربری غنی هستیم. اعتماد به تراکنشها و نحوه اجرای آنها در اینجا اهمیت دارد. Mempool در این میان یکی از عناصر اساسی برای ایجاد تجارب کاربری قویتر است.