النص الرئيسي: في المقالات السابقة، ذكرنا أن عقد Sequencer Inbox مصمم خصيصًا لتلقي دفعات من بيانات المعاملات التي ينشرها جهاز التسلسل على الطبقة الأولى. في الوقت نفسه، أشرنا إلى أن صندوق وارد التسلسل يُشار إليه أيضًا باسم "الصندوق السريع"، حيث يكون نظيره هو صندوق الوارد المؤجل (يُشار إليه باسم صندوق الوارد). بعد ذلك، سنقدم شرحًا تفصيليًا للمكونات المتعلقة بنقل الرسائل عبر السلسلة، مثل صندوق الوارد المؤجل.
يمكن تقسيم المعاملات عبر السلسلة إلى L1 إلى L2 (الإيداع) ومن L2 إلى L1 (السحب). لاحظ أن الإيداع والسحب المذكورين هنا لا يرتبطان بالضرورة بالأصول عبر السلسلة، ولكن يمكن أن يكونا عبارة عن رسائل لا تتضمن الأصول بشكل مباشر. لذا فإن هاتين الكلمتين لا تمثلان سوى اتجاهين للسلوكيات المرتبطة بالسلسلة المتقاطعة.
بالمقارنة مع معاملات L2 النقية، تتبادل المعاملات عبر السلسلة المعلومات في نظامين مختلفين، L1 وL2، وبالتالي فإن العملية أكثر تعقيدًا.
بالإضافة إلى ذلك، ما نسميه عادة السلوك عبر السلسلة هو عبر السلسلة على شبكتين غير مرتبطتين باستخدام جسر عبر السلسلة في وضع الشاهد. يعتمد أمان هذه السلسلة المتقاطعة على الجسر المتقاطع. تاريخيًا، تعرضت الجسور المتقاطعة القائمة على وضع الشاهد لحوادث سرقة بشكل متكرر.
في المقابل، يختلف السلوك عبر السلسلة بين Rollup وشبكة Ethereum الرئيسية اختلافًا جوهريًا عن العمليات عبر السلسلة المذكورة أعلاه. وذلك لأن حالة الطبقة الثانية يتم تحديدها من خلال البيانات المسجلة على الطبقة الأولى. طالما أنك تستخدم جسر Rollup عبر السلسلة الرسمي، فإن هيكله التشغيلي آمن تمامًا.
وهذا يسلط الضوء أيضًا على جوهر مجموعة التحديثات، التي تظهر، من وجهة نظر المستخدم، كسلسلة مستقلة. ومع ذلك، في الواقع، ما يسمى بـ "الطبقة 2" هو مجرد نافذة عرض سريعة يفتحها Rollup للمستخدمين، ولا يزال هيكلها الحقيقي الشبيه بالسلسلة مسجلاً في الطبقة 1. لذلك، يمكننا اعتبار L2 نصف سلسلة، أو "سلسلة تم إنشاؤها على الطبقة الأولى".
من المهم ملاحظة أن العمليات عبر السلسلة غير متزامنة وغير ذرية. على عكس سلسلة واحدة حيث تكون نتيجة المعاملة معروفة بمجرد تأكيدها، لا يمكن للمعاملات عبر السلسلة ضمان حدوث أحداث معينة على الجانب الآخر في وقت محدد. لذلك، قد تفشل المعاملات عبر السلسلة بسبب مشكلات بسيطة، ولكن باستخدام الطرق الصحيحة، مثل التذاكر القابلة لإعادة المحاولة، لن تكون هناك أي مشكلات مثل توقف الأموال.
التذاكر القابلة لإعادة المحاولة هي أدوات أساسية تُستخدم عند إيداع الأموال من خلال جسر Arbitrum الرسمي لكل من الرموز المميزة ETH وERC20. تتكون دورة حياتها من ثلاث خطوات:
إرسال التذكرة على L1: أنشئ تذكرة إيداع باستخدام طريقة createRetryableTicket() في عقد Delayed Inbox وأرسلها.
الاسترداد التلقائي على L2: في معظم الحالات، يمكن لجهاز التسلسل استرداد التذكرة تلقائيًا للمستخدم دون مزيد من التدخل اليدوي.
الاسترداد اليدوي على L2: في بعض حالات الحافة، مثل الزيادة المفاجئة في أسعار الغاز على L2 حيث يكون الغاز المدفوع مسبقًا على التذكرة غير كافٍ، قد يفشل الاسترداد التلقائي. وفي مثل هذه الحالات، يلزم التدخل اليدوي من قبل المستخدم. لاحظ أنه في حالة فشل الاسترداد التلقائي، يجب استرداد التذكرة يدويًا خلال 7 أيام؛ بخلاف ذلك، قد يتم حذف التذكرة (مما يؤدي إلى خسارة دائمة للأموال) أو المطالبة بدفع رسوم لتجديد عقد الإيجار.
علاوة على ذلك، في عملية سحب جسر Arbitrum الرسمي، على الرغم من وجود بعض التشابه المتماثل مع سلوك الإيداع من حيث العملية، إلا أنه لا يوجد مفهوم لإعادة المحاولة. يمكن فهم ذلك من منظور بروتوكول التراكمي نفسه ومن خلال فحص بعض الاختلافات:
لا يوجد استرداد تلقائي أثناء السحب لأن جهاز EVM لا يحتوي على مؤقتات أو أتمتة. بينما يمكن تنفيذ الاسترداد التلقائي على L2 بمساعدة جهاز التسلسل، يحتاج المستخدمون على L1 إلى التفاعل يدويًا مع عقد Outbox للمطالبة بأصولهم.
لا توجد أيضًا مشكلة تتعلق بانتهاء صلاحية التذكرة أثناء السحب؛ وطالما انقضت فترة التحدي، يمكن المطالبة بالأصول في أي وقت.
تعتبر المعاملات عبر السلسلة التي تتضمن أصول ERC-20 معقدة. يمكننا أن نفكر في عدة أسئلة:
لا ننوي الإجابة على كل هذه الأسئلة لأنها معقدة للغاية بحيث لا يمكن معالجتها بشكل شامل. تهدف هذه الأسئلة ببساطة إلى توضيح مدى تعقيد المعاملات عبر سلسلة ERC-20.
حاليًا، تستخدم العديد من حلول القياس حلول القائمة البيضاء + القائمة اليدوية لتجنب المشكلات المعقدة والشروط الحدودية المختلفة.
تستخدم Arbitrum نظام Gateway لمعالجة معظم نقاط الضعف في المعاملات عبر سلسلة ERC20، والتي تتميز بالخصائص التالية:
لتوضيح ضرورة البوابات المخصصة، دعونا نفكر في مثال بسيط نسبيًا لنقل WETH عبر السلسلة.
WETH هو ما يعادل ERC20 لـ ETH. نظرًا لأن الأثير بمثابة العملة الأساسية، فمن المستحيل تحقيق العديد من الوظائف المعقدة في التطبيقات اللامركزية بشكل مباشر. ومن ثم، هناك حاجة إلى معادل ERC20 مثل WETH. من خلال إيداع بعض ETH في عقد WETH، يتم تقييدها ضمن العقد، مما يولد مبلغًا معادلاً من WETH.
وبالمثل، يمكن حرق WETH لسحب ETH. من الواضح أن الكمية المتداولة من WETH والكمية المقفلة من ETH ستحافظ دائمًا على نسبة 1:1.
إذا قمنا الآن بربط WETH مباشرة بالـ L2، فسنجد بعض المشكلات الغريبة:
من الواضح أن هذا ينتهك مبادئ التصميم الخاصة بـ WETH. لذلك، عند عبور سلسلة WETH المتقاطعة، سواء في الإيداع أو السحب، من الضروري فكها في ETH أولاً، ثم عبورها وإعادة لفها مرة أخرى في WETH. هذا هو المكان الذي تلعب فيه بوابة WETH دورها.
وبالمثل، بالنسبة للرموز المميزة الأخرى ذات المنطق الأكثر تعقيدًا، فإنها تتطلب بوابات أكثر تعقيدًا ومصممة بعناية لتعمل بشكل صحيح في بيئة عبر السلسلة. ترث بوابة Arbitrum المخصصة منطق الاتصال عبر السلسلة للبوابة القياسية وتسمح للمطورين بتخصيص السلوكيات عبر السلسلة المتعلقة بمنطق الرمز المميز، مما يلبي معظم المتطلبات.
نظير SequencerInbox، المعروف أيضًا باسم الصندوق السريع، هو البريد الوارد (المسمى رسميًا صندوق الوارد المؤجل). لماذا يتم التمييز بين الصناديق السريعة والمتأخرة؟ لأن الصندوق السريع مصمم خصيصًا لتلقي دفعات من معاملات L2 المنشورة بواسطة جهاز التسلسل، وأي معاملات لم تتم معالجتها مسبقًا بواسطة جهاز التسلسل داخل شبكة L2 يجب ألا تظهر في عقد الصندوق السريع.
الدور الأول للصندوق البطيء هو التعامل مع سلوك الإيداع من L1 إلى L2. يبدأ المستخدمون عمليات الإيداع من خلال الصندوق البطيء، والذي يعكسه جهاز التسلسل بعد ذلك على L2. في النهاية، سيتم تضمين سجل الإيداع هذا في تسلسل معاملات L2 بواسطة جهاز التسلسل وإرساله إلى عقد الصندوق السريع، SequencerInbox.
في هذا السيناريو، من غير المناسب للمستخدمين إرسال معاملات الإيداع مباشرة إلى الصندوق السريع لأن المعاملات المرسلة إلى SequencerInbox قد تتداخل مع تسلسل المعاملات العادي للطبقة الثانية، مما يؤثر على تشغيل جهاز التسلسل.
الدور الثاني للصندوق المؤجل هو مقاومة الرقابة. عادةً ما يتم تجميع المعاملات المقدمة مباشرة إلى عقد الصندوق المؤجل في الصندوق السريع في غضون 10 دقائق بواسطة جهاز التسلسل. ومع ذلك، إذا تجاهل جهاز التسلسل طلبك بشكل ضار، فإن المربع المؤجل يحتوي على ميزة التضمين الإجباري:
إذا تم إرسال معاملة إلى صندوق الوارد المؤجل وظلت غير مجمعة في تسلسل المعاملة بواسطة جهاز التسلسل بعد 24 ساعة، فيمكن للمستخدمين تشغيل وظيفة فرض التضمين يدويًا على الطبقة 1. يفرض هذا الإجراء تجميع طلبات المعاملات التي يتجاهلها جهاز التسلسل في المربع السريع، SequencerInbox، ثم يتم اكتشافها لاحقًا بواسطة جميع عقد Arbitrum One، وبالتالي يتم تضمينها بقوة في تسلسل معاملات الطبقة الثانية.
كما ذكرنا سابقًا، تمثل البيانات الموجودة في المربع السريع كيان البيانات التاريخية للمستوى الثاني. لذلك، في حالات الرقابة الضارة، يمكن تضمين المعاملات في نهاية المطاف في دفتر الأستاذ L2 باستخدام المربع المؤجل، الذي يغطي سيناريوهات مثل عمليات السحب القسري من الطبقة الثانية.
من هذا، يمكن ملاحظة أن جهاز التسلسل في النهاية لا يمكنه فرض رقابة دائمة على المعاملات في أي اتجاه أو طبقة.
فيما يلي العديد من الوظائف الأساسية لصندوق الوارد البطيء:
ومع ذلك، من المهم ملاحظة أن وظيفة forceInclusion() موجودة بالفعل في عقد الصندوق السريع. من أجل الوضوح، ناقشنا ذلك هنا جنبًا إلى جنب مع وظائف الصندوق البطيء.
يرتبط Outbox فقط بعمليات السحب ويمكن فهمه على أنه نظام تسجيل وإدارة لسلوكيات السحب:
أدناه، سنشرح عملية الإيداع والسحب باستخدام ETH كمثال. تتشابه عملية رموز ERC20، مع إضافة بوابة، لكننا لن نوضح ذلك هنا.
يستدعي المستخدم وظيفة drawEth() لعقد ArbSys على L2 ويحرق المبلغ المقابل من ETH على L2.
يرسل جهاز التسلسل طلب السحب إلى الصندوق السريع.
تقوم عقدة التحقق من الصحة بإنشاء كتلة تراكمية جديدة بناءً على تسلسل المعاملة في المربع السريع، والذي سيحتوي على معاملات السحب المذكورة أعلاه.
بعد مرور الكتلة المجمعة بفترة التحدي وتأكيدها، يمكن للمستخدم استدعاء وظيفة Outbox.execute Transaction() على L1 لإثبات أن المعلمات مقدمة بواسطة عقد ArbSys المذكور أعلاه.
بعد التأكد من صحة عقد Outbox، سيتم فتح المبلغ المقابل من ETH في الجسر وإرساله إلى المستخدم.
يتضمن استخدام جسر التراكمي الرسمي المتفائل انتظار فترة التحدي. لتجاوز هذه المشكلة، يمكننا استخدام جسر خاص عبر سلسلة تابعة لجهة خارجية:
يتم استخدام الدالة forceInclusion() لمواجهة الرقابة على جهاز التسلسل. ويمكن تطبيقه على أي معاملات محلية من المستوى الثاني، ومعاملات من L1 إلى L2، ومعاملات من L2 إلى L1. نظرًا لأن الرقابة الضارة لجهاز التسلسل تؤثر بشكل كبير على تجربة المعاملات، فغالبًا ما نختار الانسحاب من L2. فيما يلي مثال لاستخدام forceInclusion() لعمليات سحب القوة:
في سياق عمليات سحب ETH، تتضمن الخطوتين 1 و2 فقط رقابة على جهاز التسلسل. لذلك، نحتاج فقط إلى تعديل هاتين الخطوتين:
وأخيرًا، يمكن للمستخدمين السحب من صندوق الصادر، وتكون الخطوات المتبقية هي نفسها المتبعة في عملية السحب العادية.
بالإضافة إلى ذلك، هناك برامج تعليمية مفصلة في مستودع البرامج التعليمية Arbitrum لتوجيه المستخدمين حول كيفية إجراء معاملات L2 المحلية ومعاملات L2 إلى L1 باستخدام forceInclusion() من خلال Arb SDK.
النص الرئيسي: في المقالات السابقة، ذكرنا أن عقد Sequencer Inbox مصمم خصيصًا لتلقي دفعات من بيانات المعاملات التي ينشرها جهاز التسلسل على الطبقة الأولى. في الوقت نفسه، أشرنا إلى أن صندوق وارد التسلسل يُشار إليه أيضًا باسم "الصندوق السريع"، حيث يكون نظيره هو صندوق الوارد المؤجل (يُشار إليه باسم صندوق الوارد). بعد ذلك، سنقدم شرحًا تفصيليًا للمكونات المتعلقة بنقل الرسائل عبر السلسلة، مثل صندوق الوارد المؤجل.
يمكن تقسيم المعاملات عبر السلسلة إلى L1 إلى L2 (الإيداع) ومن L2 إلى L1 (السحب). لاحظ أن الإيداع والسحب المذكورين هنا لا يرتبطان بالضرورة بالأصول عبر السلسلة، ولكن يمكن أن يكونا عبارة عن رسائل لا تتضمن الأصول بشكل مباشر. لذا فإن هاتين الكلمتين لا تمثلان سوى اتجاهين للسلوكيات المرتبطة بالسلسلة المتقاطعة.
بالمقارنة مع معاملات L2 النقية، تتبادل المعاملات عبر السلسلة المعلومات في نظامين مختلفين، L1 وL2، وبالتالي فإن العملية أكثر تعقيدًا.
بالإضافة إلى ذلك، ما نسميه عادة السلوك عبر السلسلة هو عبر السلسلة على شبكتين غير مرتبطتين باستخدام جسر عبر السلسلة في وضع الشاهد. يعتمد أمان هذه السلسلة المتقاطعة على الجسر المتقاطع. تاريخيًا، تعرضت الجسور المتقاطعة القائمة على وضع الشاهد لحوادث سرقة بشكل متكرر.
في المقابل، يختلف السلوك عبر السلسلة بين Rollup وشبكة Ethereum الرئيسية اختلافًا جوهريًا عن العمليات عبر السلسلة المذكورة أعلاه. وذلك لأن حالة الطبقة الثانية يتم تحديدها من خلال البيانات المسجلة على الطبقة الأولى. طالما أنك تستخدم جسر Rollup عبر السلسلة الرسمي، فإن هيكله التشغيلي آمن تمامًا.
وهذا يسلط الضوء أيضًا على جوهر مجموعة التحديثات، التي تظهر، من وجهة نظر المستخدم، كسلسلة مستقلة. ومع ذلك، في الواقع، ما يسمى بـ "الطبقة 2" هو مجرد نافذة عرض سريعة يفتحها Rollup للمستخدمين، ولا يزال هيكلها الحقيقي الشبيه بالسلسلة مسجلاً في الطبقة 1. لذلك، يمكننا اعتبار L2 نصف سلسلة، أو "سلسلة تم إنشاؤها على الطبقة الأولى".
من المهم ملاحظة أن العمليات عبر السلسلة غير متزامنة وغير ذرية. على عكس سلسلة واحدة حيث تكون نتيجة المعاملة معروفة بمجرد تأكيدها، لا يمكن للمعاملات عبر السلسلة ضمان حدوث أحداث معينة على الجانب الآخر في وقت محدد. لذلك، قد تفشل المعاملات عبر السلسلة بسبب مشكلات بسيطة، ولكن باستخدام الطرق الصحيحة، مثل التذاكر القابلة لإعادة المحاولة، لن تكون هناك أي مشكلات مثل توقف الأموال.
التذاكر القابلة لإعادة المحاولة هي أدوات أساسية تُستخدم عند إيداع الأموال من خلال جسر Arbitrum الرسمي لكل من الرموز المميزة ETH وERC20. تتكون دورة حياتها من ثلاث خطوات:
إرسال التذكرة على L1: أنشئ تذكرة إيداع باستخدام طريقة createRetryableTicket() في عقد Delayed Inbox وأرسلها.
الاسترداد التلقائي على L2: في معظم الحالات، يمكن لجهاز التسلسل استرداد التذكرة تلقائيًا للمستخدم دون مزيد من التدخل اليدوي.
الاسترداد اليدوي على L2: في بعض حالات الحافة، مثل الزيادة المفاجئة في أسعار الغاز على L2 حيث يكون الغاز المدفوع مسبقًا على التذكرة غير كافٍ، قد يفشل الاسترداد التلقائي. وفي مثل هذه الحالات، يلزم التدخل اليدوي من قبل المستخدم. لاحظ أنه في حالة فشل الاسترداد التلقائي، يجب استرداد التذكرة يدويًا خلال 7 أيام؛ بخلاف ذلك، قد يتم حذف التذكرة (مما يؤدي إلى خسارة دائمة للأموال) أو المطالبة بدفع رسوم لتجديد عقد الإيجار.
علاوة على ذلك، في عملية سحب جسر Arbitrum الرسمي، على الرغم من وجود بعض التشابه المتماثل مع سلوك الإيداع من حيث العملية، إلا أنه لا يوجد مفهوم لإعادة المحاولة. يمكن فهم ذلك من منظور بروتوكول التراكمي نفسه ومن خلال فحص بعض الاختلافات:
لا يوجد استرداد تلقائي أثناء السحب لأن جهاز EVM لا يحتوي على مؤقتات أو أتمتة. بينما يمكن تنفيذ الاسترداد التلقائي على L2 بمساعدة جهاز التسلسل، يحتاج المستخدمون على L1 إلى التفاعل يدويًا مع عقد Outbox للمطالبة بأصولهم.
لا توجد أيضًا مشكلة تتعلق بانتهاء صلاحية التذكرة أثناء السحب؛ وطالما انقضت فترة التحدي، يمكن المطالبة بالأصول في أي وقت.
تعتبر المعاملات عبر السلسلة التي تتضمن أصول ERC-20 معقدة. يمكننا أن نفكر في عدة أسئلة:
لا ننوي الإجابة على كل هذه الأسئلة لأنها معقدة للغاية بحيث لا يمكن معالجتها بشكل شامل. تهدف هذه الأسئلة ببساطة إلى توضيح مدى تعقيد المعاملات عبر سلسلة ERC-20.
حاليًا، تستخدم العديد من حلول القياس حلول القائمة البيضاء + القائمة اليدوية لتجنب المشكلات المعقدة والشروط الحدودية المختلفة.
تستخدم Arbitrum نظام Gateway لمعالجة معظم نقاط الضعف في المعاملات عبر سلسلة ERC20، والتي تتميز بالخصائص التالية:
لتوضيح ضرورة البوابات المخصصة، دعونا نفكر في مثال بسيط نسبيًا لنقل WETH عبر السلسلة.
WETH هو ما يعادل ERC20 لـ ETH. نظرًا لأن الأثير بمثابة العملة الأساسية، فمن المستحيل تحقيق العديد من الوظائف المعقدة في التطبيقات اللامركزية بشكل مباشر. ومن ثم، هناك حاجة إلى معادل ERC20 مثل WETH. من خلال إيداع بعض ETH في عقد WETH، يتم تقييدها ضمن العقد، مما يولد مبلغًا معادلاً من WETH.
وبالمثل، يمكن حرق WETH لسحب ETH. من الواضح أن الكمية المتداولة من WETH والكمية المقفلة من ETH ستحافظ دائمًا على نسبة 1:1.
إذا قمنا الآن بربط WETH مباشرة بالـ L2، فسنجد بعض المشكلات الغريبة:
من الواضح أن هذا ينتهك مبادئ التصميم الخاصة بـ WETH. لذلك، عند عبور سلسلة WETH المتقاطعة، سواء في الإيداع أو السحب، من الضروري فكها في ETH أولاً، ثم عبورها وإعادة لفها مرة أخرى في WETH. هذا هو المكان الذي تلعب فيه بوابة WETH دورها.
وبالمثل، بالنسبة للرموز المميزة الأخرى ذات المنطق الأكثر تعقيدًا، فإنها تتطلب بوابات أكثر تعقيدًا ومصممة بعناية لتعمل بشكل صحيح في بيئة عبر السلسلة. ترث بوابة Arbitrum المخصصة منطق الاتصال عبر السلسلة للبوابة القياسية وتسمح للمطورين بتخصيص السلوكيات عبر السلسلة المتعلقة بمنطق الرمز المميز، مما يلبي معظم المتطلبات.
نظير SequencerInbox، المعروف أيضًا باسم الصندوق السريع، هو البريد الوارد (المسمى رسميًا صندوق الوارد المؤجل). لماذا يتم التمييز بين الصناديق السريعة والمتأخرة؟ لأن الصندوق السريع مصمم خصيصًا لتلقي دفعات من معاملات L2 المنشورة بواسطة جهاز التسلسل، وأي معاملات لم تتم معالجتها مسبقًا بواسطة جهاز التسلسل داخل شبكة L2 يجب ألا تظهر في عقد الصندوق السريع.
الدور الأول للصندوق البطيء هو التعامل مع سلوك الإيداع من L1 إلى L2. يبدأ المستخدمون عمليات الإيداع من خلال الصندوق البطيء، والذي يعكسه جهاز التسلسل بعد ذلك على L2. في النهاية، سيتم تضمين سجل الإيداع هذا في تسلسل معاملات L2 بواسطة جهاز التسلسل وإرساله إلى عقد الصندوق السريع، SequencerInbox.
في هذا السيناريو، من غير المناسب للمستخدمين إرسال معاملات الإيداع مباشرة إلى الصندوق السريع لأن المعاملات المرسلة إلى SequencerInbox قد تتداخل مع تسلسل المعاملات العادي للطبقة الثانية، مما يؤثر على تشغيل جهاز التسلسل.
الدور الثاني للصندوق المؤجل هو مقاومة الرقابة. عادةً ما يتم تجميع المعاملات المقدمة مباشرة إلى عقد الصندوق المؤجل في الصندوق السريع في غضون 10 دقائق بواسطة جهاز التسلسل. ومع ذلك، إذا تجاهل جهاز التسلسل طلبك بشكل ضار، فإن المربع المؤجل يحتوي على ميزة التضمين الإجباري:
إذا تم إرسال معاملة إلى صندوق الوارد المؤجل وظلت غير مجمعة في تسلسل المعاملة بواسطة جهاز التسلسل بعد 24 ساعة، فيمكن للمستخدمين تشغيل وظيفة فرض التضمين يدويًا على الطبقة 1. يفرض هذا الإجراء تجميع طلبات المعاملات التي يتجاهلها جهاز التسلسل في المربع السريع، SequencerInbox، ثم يتم اكتشافها لاحقًا بواسطة جميع عقد Arbitrum One، وبالتالي يتم تضمينها بقوة في تسلسل معاملات الطبقة الثانية.
كما ذكرنا سابقًا، تمثل البيانات الموجودة في المربع السريع كيان البيانات التاريخية للمستوى الثاني. لذلك، في حالات الرقابة الضارة، يمكن تضمين المعاملات في نهاية المطاف في دفتر الأستاذ L2 باستخدام المربع المؤجل، الذي يغطي سيناريوهات مثل عمليات السحب القسري من الطبقة الثانية.
من هذا، يمكن ملاحظة أن جهاز التسلسل في النهاية لا يمكنه فرض رقابة دائمة على المعاملات في أي اتجاه أو طبقة.
فيما يلي العديد من الوظائف الأساسية لصندوق الوارد البطيء:
ومع ذلك، من المهم ملاحظة أن وظيفة forceInclusion() موجودة بالفعل في عقد الصندوق السريع. من أجل الوضوح، ناقشنا ذلك هنا جنبًا إلى جنب مع وظائف الصندوق البطيء.
يرتبط Outbox فقط بعمليات السحب ويمكن فهمه على أنه نظام تسجيل وإدارة لسلوكيات السحب:
أدناه، سنشرح عملية الإيداع والسحب باستخدام ETH كمثال. تتشابه عملية رموز ERC20، مع إضافة بوابة، لكننا لن نوضح ذلك هنا.
يستدعي المستخدم وظيفة drawEth() لعقد ArbSys على L2 ويحرق المبلغ المقابل من ETH على L2.
يرسل جهاز التسلسل طلب السحب إلى الصندوق السريع.
تقوم عقدة التحقق من الصحة بإنشاء كتلة تراكمية جديدة بناءً على تسلسل المعاملة في المربع السريع، والذي سيحتوي على معاملات السحب المذكورة أعلاه.
بعد مرور الكتلة المجمعة بفترة التحدي وتأكيدها، يمكن للمستخدم استدعاء وظيفة Outbox.execute Transaction() على L1 لإثبات أن المعلمات مقدمة بواسطة عقد ArbSys المذكور أعلاه.
بعد التأكد من صحة عقد Outbox، سيتم فتح المبلغ المقابل من ETH في الجسر وإرساله إلى المستخدم.
يتضمن استخدام جسر التراكمي الرسمي المتفائل انتظار فترة التحدي. لتجاوز هذه المشكلة، يمكننا استخدام جسر خاص عبر سلسلة تابعة لجهة خارجية:
يتم استخدام الدالة forceInclusion() لمواجهة الرقابة على جهاز التسلسل. ويمكن تطبيقه على أي معاملات محلية من المستوى الثاني، ومعاملات من L1 إلى L2، ومعاملات من L2 إلى L1. نظرًا لأن الرقابة الضارة لجهاز التسلسل تؤثر بشكل كبير على تجربة المعاملات، فغالبًا ما نختار الانسحاب من L2. فيما يلي مثال لاستخدام forceInclusion() لعمليات سحب القوة:
في سياق عمليات سحب ETH، تتضمن الخطوتين 1 و2 فقط رقابة على جهاز التسلسل. لذلك، نحتاج فقط إلى تعديل هاتين الخطوتين:
وأخيرًا، يمكن للمستخدمين السحب من صندوق الصادر، وتكون الخطوات المتبقية هي نفسها المتبعة في عملية السحب العادية.
بالإضافة إلى ذلك، هناك برامج تعليمية مفصلة في مستودع البرامج التعليمية Arbitrum لتوجيه المستخدمين حول كيفية إجراء معاملات L2 المحلية ومعاملات L2 إلى L1 باستخدام forceInclusion() من خلال Arb SDK.