الانتقال إلى المحتوى

استبدال معاملات مجمع إيثريوم

دليل ضمن نطاق العميل لاستبدال معاملات إيثريوم الصادرة من المرسل نفسه وبالـ nonce نفسه، وزيادة حدود الرسوم، وسباق الإلغاء، ومعاملات الكتل البيانية، ومسارات الإرسال الخاصة، والإيصالات والنهائية.

آخر تحديث

لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.

الإجابة المباشرة

استبدال معاملة إيثريوم هو سياسة محلية لمجمع المعاملات، قد تفضل بموجبها عقدة معاملة موقعة حديثا على معاملة مرشحة أخرى من المرسل نفسه وتحمل nonce نفسه. وليس مفتاح Replace-by-Fee عالميا على مستوى الإجماع. فقبول العقدة تجزئة المعاملة الجديدة لا يمحو المعاملة القديمة الموقعة من العقد الأخرى أو المرحلات الخاصة أو منشئي الكتل، والإدراج في السلسلة المعتمدة وحده هو الذي يحدد أي معاملة مرشحة تستهلك nonce الحساب.

يحافظ إجراء “تسريع” في المحفظة عادة على الوجهة والقيمة وبيانات الاستدعاء الأصلية مع رفع حقول الرسوم. أما إجراء “إلغاء” عبر المجمع العام فينشئ عادة تحويلا ذاتيا بقيمة صفر من المرسل نفسه وبالـ nonce نفسه. وهذه معاملة منافسة وليست عملية تراجع: إذا أدرجت المعاملة الأصلية أولا فلن ينعكس تحويلها أو استدعاؤها للعقد. وقد تعرف المسارات الخاصة إجرائيات إلغاء مختلفة تخص منتجاتها؛ فمثلا توثق Flashbots Protect إلغاء للمصادقة لا يوضع على السلسلة، ولا يجوز تعميمه على استبدال معاملات إيثريوم العامة.

آلية العمل

  1. ثبت سلسلة النسب بدقة: معرف السلسلة، والعميل وإصداره، وكتلة الرأس والرسوم الأساسية، ومسار الإرسال، والمرسل، وnonce الحساب في السلسلة المعتمدة، والبايتات الخام الموقعة للمعاملة الأصلية، وتجزئتها ونوعها. استعلم من عدة مشاهد عامة أو خاصة ذات صلة؛ فتسمية المحفظة أو استجابة RPC واحدة ليست حالة عالمية.
  2. صنف الأصل بدقة إلى مرفوض، أو معلق محليا، أو في قائمة الانتظار خلف فجوة nonce، أو مسقط أو مطرود، أو مرسل سرا، أو مدرج بنجاح، أو مدرج مع status = 0، أو أزيل بفعل إعادة تنظيم، أو صار نهائيا. توقف عن اعتبار الاستبدال متاحا متى استهلك nonce على السلسلة المعتمدة، مع أن إعادة التنظيم قد تعيد فتح السباق.
  3. حدد القصد الجديد. ينبغي لعملية التسريع أن تعيد إنتاج كل حقل دلالي مقصود؛ وعادة تستخدم محاولة الإلغاء العامة المرسل والـ nonce نفسيهما مع to = sender وvalue = 0 وبيانات استدعاء فارغة. قارن معرف السلسلة والنوع والوجهة والقيمة وبيانات الاستدعاء وقائمة الوصول وحد الغاز وتجزئات الكتل البيانية والتفويض قبل التوقيع.
  4. اقرأ سياسة الاستبدال الفعلية للعقدة المستهدفة. تستخدم معاملات النوع القديم والنوع 1 الحقل gasPrice؛ وتعرض معاملات النوع 2 الحقلين maxFeePerGas وmaxPriorityFeePerGas؛ كما تعرض معاملات النوع 3 الحقل maxFeePerBlobGas وتتطلب البيانات الجانبية. إن القيمتين الافتراضيتين الحاليتين في Geth، txpool.pricebump = 10 للمجمع العادي وblobpool.pricebump = 100 لمجمع الكتل البيانية، مثالان لإعداد Geth وليستا ثابتين على مستوى إيثريوم.
  5. احسب أهلية الإدراج والتمويل بمعزل عن نسبة الزيادة. في النوع 2 يكون السعر الفعلي min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas). ولا تزال المعاملة المرشحة تحتاج إلى ترميز صحيح، وحد غاز جوهري كاف، ورصيد يغطي القيمة مع أقصى تعرض للرسوم؛ فرفع الحد لا يصلح بيانات استدعاء غير صالحة ولا يضمن نجاح تنفيذ EVM.
  6. أرسل بتأن واحتفظ بكل استجابة. قد تكشف إعادة البث العلني القصد وتعرضه لاستخراج القيمة القصوى؛ وللمرحلات الخاصة نطاق رؤية وإلغاء وتغطية منشئي كتل وتوافر خاص بها. تتبع التجزئات القديمة والجديدة عبر كل مسار من دون افتراض أن القبول المحلي حذف المنافس، ومن دون إرسال معاملة ثالثة ناقلة للقيمة بصورة عمياء.
  7. طابق المعاملة الفائزة مع السلسلة المعتمدة. تحقق من كتلة الإيصال وتجزئتها وفهرس المعاملة وstatus والغاز المستخدم وسعر الغاز الفعلي والسجلات وnonce المرسل والأرصدة وحالة العقد عند مستوى النهائية المطلوب. سجل التجزئات الخاسرة على أنها مستبدلة أو مسقطة أو لا تزال مرصودة وفقا للأدلة، وأعد التحليل بعد إعادة التنظيم.

أمثلة محلولة

  • مثال تعليمي لزيادة رسوم معاملة عادية من النوع 2. تحمل المعاملة القديمة maxFeePerGas = 40 gwei وmaxPriorityFeePerGas = 2 gwei. في إعداد Geth تعليمي يفرض زيادة 10%، تكون العتبتان الحسابيتان 44 gwei و2.2 gwei. تفشل معاملة عند 44/2.1 gwei في بلوغ عتبة رسوم الأولوية، بينما تبلغ 44/2.2 gwei العتبتين التعليميتين. ومع رسوم أساسية قدرها 32 gwei وغاز مستخدم 21,000، يكون السعر الفعلي 34.2 gwei، وإجمالي الرسوم 718,200 gwei = 0.0007182 ETH، والحرق الأساسي 0.000672 ETH، ورسوم الأولوية 0.0000462 ETH. يعتمد القبول الفعلي على التنفيذ والإصدار وتقريب أعداد wei الصحيحة.
  • الحساسية للرسوم الأساسية. حدود معاملة بديلة هي 66/4.4 gwei. عند رسوم أساسية 60 gwei يكون السعر الفعلي min(66, 60 + 4.4) = 64.4 gwei. وعند رسوم أساسية 65 gwei يصبح السعر الفعلي 66 gwei ولا تتجاوز رسوم الأولوية الفعلية 1 gwei. وعند رسوم أساسية 67 gwei تكون 66 < 67، فلا تكون المعاملة مؤهلة تحت ذلك الحد حتى لو اجتازت اختبار الزيادة المحلي.
  • سباق الإلغاء. ترسل المعاملة الأصلية ذات nonce رقم 20 مقدار 5 ETH إلى تاجر. إذا فازت بتكلفة 21,000 * 42 gwei = 0.000882 ETH، يتلقى التاجر 5 ETH وتصبح معاملة الإلغاء ذات nonce منخفض أكثر من اللازم. وإذا فاز التحويل الذاتي بقيمة صفر وتكلفة 21,000 * 45 gwei = 0.000945 ETH، فإنه يستهلك nonce رقم 20 ويمنع الأصل من الدخول لاحقا في السجل المعتمد نفسه. لا يمكن معرفة النتيجة بمجرد الضغط على زر الإلغاء.
  • حدود مجمع الكتل البيانية. تحمل معاملة قديمة من النوع 3 حد رسوم تنفيذ 100 gwei، وحد رسوم أولوية 3 gwei، وحد رسوم كتل بيانية 20 gwei. في إعداد تعليمي لمجمع Geth يفرض زيادة 100%، تكون العتبات الحسابية 200/6/40 gwei. تفشل معاملة عند 200/6/39 gwei في حد الكتل البيانية، بينما تبلغ 200/6/40 gwei العتبات التعليمية الثلاث، لكنها تظل بحاجة إلى بيانات جانبية وnonce ورصيد وقبول في المجمع صالحة. وليست هذه القيم قواعد للمعاملات العادية أو للعملاء الآخرين.

المخاطر

  • اختيار معرف سلسلة أو شبكة خاطئ.
  • اختيار مرسل أو nonce حساب خاطئ.
  • استخدام رأس سلسلة أو رسوم أساسية أو nonce معتمد قديم.
  • محاولة الاستبدال بعد إدراج الأصل أو بلوغه النهائية.
  • تطبيق قواعد مجمع المعاملات العادي على UserOperation من ERC-4337.
  • افتراض أن عميلا أو مزودا أو إصدارا أو إعدادا آخر يستخدم السياسة نفسها.
  • عدم بلوغ عتبة الزيادة بسبب تقريب أعداد wei الصحيحة.
  • رفع واحد فقط من حقلي رسوم EIP-1559 المطلوبين.
  • ضبط maxFeePerGas دون الرسوم الأساسية للكتلة المرشحة.
  • تجاهل حد رسوم الكتل البيانية أو البيانات الجانبية أو قاعدة مجمعها الخاصة.
  • عدم كفاية الرصيد للقيمة مع أقصى رسوم مفوضة.
  • توقيع أو نوع أو ترميز أو غاز جوهري أو نطاق سلسلة غير صالح.
  • تغيير الوجهة أو القيمة أو بيانات الاستدعاء أو قائمة الوصول أو تجزئات الكتل البيانية بطريق الخطأ.
  • خسارة معاملة الإلغاء العامة لسباق الإدراج.
  • بقاء المعاملة القديمة ضمن مدخلات عقد أخرى أو منشئي كتل.
  • تسريب المرحل الخاص للإرسال أو حظره أو إسقاطه أو إخفاقه في إلغائه.
  • كشف إعادة البث العامة للقصد أمام التقديم أو هجوم الشطيرة أو أشكال أخرى من استخراج القيمة القصوى.
  • تسبب فجوة nonce في حجب معاملات لاحقة أو الدفع إلى تحويل مكرر.
  • إدراج المعاملة البديلة مع ارتداد تنفيذها أو نفاد غازها، مع استهلاك nonce والرسوم.
  • أخطاء إعادة التنظيم أو النهائية أو سلسلة نسب الإيصالات التي تعيد إحياء المعاملات المرشحة أو تسيء تصنيفها.

مفاهيم شائعة خاطئة

  • المعاملة ذات الرسوم الأعلى تحذف القديمة من الشبكة عالميا.
  • أي معاملتين تحملان الرقم نفسه تستبدل إحداهما الأخرى حتى لو اختلف المرسل.
  • زر الإلغاء في المحفظة يعكس معاملة أدرجت بالفعل.
  • قبول عقدة واحدة للمعاملة البديلة يثبت أن منشئي الكتل سيدرجونها.
  • قاعدة زيادة عالمية قدرها 10% تشمل كل عميل ومعاملة كتل بيانية ومرحل خاص وUserOperation.

موضوعات ذات صلة

المصادر

التنقل

ابحث في الويكي...