حتماً برای شما هم پیش آمده است که تراکنشی که روی شبکه اتریوم ارسال می‌کنید، در مرحله Pending بماند و تأیید نشود. گاهی هم ممکن است دارایی‌ها را به آدرس اشتباه فرستاده باشید. در این مقاله، آموزش نحوه تغییر یا لغو تراکنش اتریوم را آماده کرده‌ایم. تا پایان ما را همراهی کنید.

تراکنش اتریوم چیست؟

تراکنش‌ها دستورالعمل‌هایی هستند که به صورت رمزنگاری روی شبکه‌های بلاکچین انجام می‌شوند. شبکه اتریوم از دو نوع اصلی تراکنش پشتیبانی می‌کند:

  • تراکنش‌های استقرار قرارداد (Contract Deployment)
  • تراکنش‌های معمولی (Regular)

تراکنش استقرار قرارداد نوع تراکنش بدون گیرنده است. تراکنش معمولی هم ساده‌ترین نوع تراکنش‌ است که برای انتقال ETH از یک کیف پول به کیف پول دیگر استفاده می‌شود.

یک تراکنش عادی اتریوم که روی این شبکه ارسال شده است، شامل شناسه فرستنده یا امضایی می‌شود که وقتی کلید خصوصی فرستنده تراکنش را تأیید می‌کند، ایجاد می‌شود. این تأییدیه یا امضا نشان می‌دهد که فرستنده اجازه انجام تراکنش را صادر کرده است. آدرس دریافت‌کننده، مقدار ETH برای انتقال از فرستنده به گیرنده و اطلاعات مربوط به کارمزد تراکنش اتریوم، همگی بخشی از یک تراکنش معمولی ارسال‌شده اتریوم هستند. شبکه اتریوم از الگوریتم اجماع اثبات کار استفاده می‌کند که بر خلاف الگوریتم اجماع اثبات سهام، تأیید تراکنش را با استفاده از استخراج بلاک انجام می‌دهند.

فازهای مختلف تراکنش اتریوم

یک تراکنش اتریوم شامل فازهای مختلف است. این‌ها مراحل متفاوتی از حیات تراکنش هستند که هرکدام ویژگی خاص خود را دارند. در ادامه این فازها را تشریح می‌کنیم.

Unknown یا ناشناخته

به حالت مجهولی از تراکنش اطلاق می‌شود که شبکه آن را در نظر نگرفته یا پردازش نکرده است.

Pending یا معلق

تراکنش pending اتریوم

هنگامی که تراکنشی در حالت تعلیق است، منتظر است تا ماینرها آن را بردارند و پردازش کنند که به آن تراکنش «Pooled» و همچنین «Mempool» گفته می‌شود.

داشتن اطلاعات درباره اینکه هزینه گس چیست و چگونه کار می‌کند، اینجا مفید خواهد بود. ماینرها هزینه‌های گس بیشتر را در اولویت قرار می‌دهند؛ به همین دلیل، معاملات با هزینه گس کمتر ممکن است برای مدت طولانی در مرحله تعلیق باقی بماند. معاملات با کمترین هزینه گس ممکن است هرگز انتخاب نشوند و آن‌ها برای همیشه در این وضعیت گیر کنند. فرایند لغو یا اصلاح تراکنش اتریوم، معمولاً در این مرحله اتفاق می‌افتد.

In Block یا درون بلاک

هنگامی که ماینر با موفقیت تراکنش را انتخاب و آن را در بلاکی استخراج می‌کند، به حالت «درون بلوک» می‌رود. به تراکنش‌های درون بلوکی، تراکنش‌های استخراج‌شده نیز می‌گویند. اگر بلاک فورک شده باشد، تراکنش در بلاک ممکن است به حالت معلق بازگردد. هنگامی که شبکه، تراکنش استخراج‌شده‌ای را معکوس می‌کند، به‌عنوان تراکنش فورک (Forked Transaction) شناخته می‌شود.

 Replacedیا جایگزین‌شده

هنگامی که یکی از شرایط زیر رخ می‌دهد، تراکنش می‌تواند از حالت در حال انتظار یا معلق، به حالت جایگزین‌شده منتقل شود:

  • تراکنش جدید با Nonce یکسان از همان فرستنده وارد حالت داخل بلاک می‌شود.
  • معامله دیگری از همان فرستنده با همان نانس و ۱۲ درصد هزینه گس بیشتر وارد مرحله معلق می‌شود.

نانس (Nonce) چیست؟

Nonce مخفف «Number Only Used Once» به معنی اعدادی است که فقط یک بار استفاده شده‌اند. این اصطلاح به تعداد کل تراکنش‌های تأییدشده از آدرس اتریوم مدنظر اشاره دارد.

کیف پول‌های اتریوم می‌توانند چندین تراکنش را از یک حساب بدون تأخیر زیاد بین یکدیگر تقسیم کنند. به این معنی که یک محاسبه Nonce مکانیزمی ضروری است که تعیین می‌کند کدام تراکنش ابتدا پردازش می‌شود. معمولاً برنامه‌های کیف پول اتریوم از نانس کاربران  به صورت غیرمستقیم مراقبت می‌کنند. در ادامه، از این مفهوم برای ویرایش تراکنش اتریوم استفاده خواهیم کرد.

آموزش لغو کردن تراکنش اتریوم

معمولاً تراکنش‌های اتریوم برای ساعت‌ها در حالت تعلیق‌اند و زمانی که کاربران هزینه گس کمی را پرداخت می‌کنند، متوقف می‌شوند؛ بنابراین، کاربران اغلب اصلاح تراکنش‌ اتریوم را ضروری می‌دانند.

لغو یا ویرایش تراکنش اتریوم در شرایط خاصی امکان‌پذیر است. برای این منظور، کاربران باید به خاطر داشته باشند که لغو تراکنش اتریوم فقط در صورتی امکان‌پذیر است که تراکنش هنوز در شبکه معلق باشد. اولین قدم این است که در یک بلاک جست‌وجوگر یا اکسپلورر بررسی کنند که آیا تراکنش هنوز معلق است یا نه. به‌طور کلی، برای تعیین هش تراکنش که به‌عنوان شناسه تراکنش اتریوم نیز شناخته می‌شود، اگر کاوشگر بلاک بگوید تراکنش در فاز معلق است، کاربران همچنان می‌توانند آن را لغو کنند.

بیشتر بخوانید: اتراسکن چیست؟ آموزش کامل نحوه استفاده از سایت اتر اسکن

دو روش اصلی برای لغو تراکنش اتریوم که در حالت Pending است، وجود دارد:

۱. لغو درون برنامه

ساده‌ترین راه برای لغو تراکنش اتریوم که در حالت تعلیق است، لغو درون برنامه‌ای است که کاربران را ملزم می‌کند از برنامه کیف پول اتریوم خارج شوند، مرورگر خود را ببندند، آن را دوباره باز کنند و دوباره به برنامه وارد شوند. اگر این روش مشکل را حل نکرد، راه دوم به کمک آن‌ها خواهد آمد.

۲. تنظیم نانس سفارشی

تغییر نانس در تراست ولت

لغو تراکنش اتریوم در این فاز با تنظیم نانس سفارشی به‌معنای ایجاد تراکنش بدون ETH با هزینه گس زیاد به آدرس خود کاربر است تا از گیر کردن تراکنش قبلی در حالت تعلیق جلوگیری کند. قبل از ارسال تراکنش دوم، کاربران باید نانس تراکنش معلق اصلی را یادداشت کنند و سپس دوباره از همان Nonce استفاده کنند. برای مثال، تصور کنید تراکنشی با مقدار X اتریوم ثبت کرده‌اید. مقدار نانس شما برای این تراکنش ۱۸ است. در مرحله ویرایش، میزان اتریوم پرداختی را صفر می‌کنید. در قسمت نانس همان عدد ۱۸ را وارد می‌کنید. اما این بار، هزینه گس را مقدار بیشتری وارد می‌کنید تا نود این تراکنش در اولویت‌های بالاتر قرار بگیرد.

تغییر نانس و تایید تراکنش در تراست ولت

در این شرایط، به احتمال زیاد به هدف خود می‌رسید که لغو تراکنش اتریوم یا اصلاح آن است.

سخن پایانی

تراکنش‌های ارسال‌شده در شبکه اتریوم در شرایط خاصی امکان لغو یا اصلاح شدن را دارند. در این مقاله، آموزش لغو تراکنش اتریوم را به صورت کامل بررسی کردیم، فازهای مختلف یک تراکنش اتریوم را شرح دادیم و شرایط تسریع فرایند ثبت و تأیید تراکنش را مرور کردیم. درنهایت، همیشه توجه کنید که چه مقدار هزینه گس برای تراکنش در نظر گرفته‌اید.