كيفية قراءة مستكشفي الكتل وفهم المعاملات والتتبعات والسجلات على إثيريوم (EVM)

متقدمSep 13, 2024
تعلم قراءة المستكشفين مثل Etherscan و naviGate البيانات عبر هذه الهياكل البيانات الثلاثة الرئيسية، وكيفية العثور على الجداول التي ستحتاج إلى استعلامها.
كيفية قراءة مستكشفي الكتل وفهم المعاملات والتتبعات والسجلات على إثيريوم (EVM)

ماذا في عملية تحويل؟

إذا قمت بأي وقت مضى بإجراء معاملة على إثيريوم (أو أي سلسلة تكوين ذكية ممكّنة للعقود الذكية)، فربما قمت بالبحث عنها في مستكشف كتلة مثل etherscan.io ورأيت هذا التجمع من المعلومات:

علامة تبويب نظرة عامة على المعاملات

وإذا حاولت النظر إلى السجلات أو الأثار (المعاملات الداخلية)، ربما رأيت هذه الصفحات الخلابة:

علامة التبويب سجلات (أنت محظوظ إذا كانت مفكوكة بشكل جيد مثل هذا)

علامة تبويب الآثار (نعم، يبدو وكأنه مجموعة من الهراء)

تعلم قراءة تفاصيل عملية على مستكشفات الكتل سيكون الأساس لجميع تحليلات البيانات والمعرفة الخاصة بك في إثيريوم، لذا دعونا نغطي جميع القطع وكيفية العمل معها في SQL.

أنا فقط سأشرح كيفية فهم هذه المفاهيم على مستوى عالٍ؛ إذا كنت ترغب في تعلم فك شفرات هذه يدويًا، فسيتعين عليك التعرف على كيفية ذلك.تم ترميز البيانات (نفس الأمر بالنسبة للمعاملات / الأثار / السجلات) وكيفية استخدامها وظائف bytearray/hex لـ Duneللانتقال بين أنواع مختلفة.

بحلول نهاية هذا الدليل ، ستكون قادرًا على فهم وتصفح جداول البيانات لأي عقد باستخدام استعلام البحث عن جدول المعاملات هذا:

رابط الاستعلام(قم بتوصيل أي عنوان tx ، سلسلة ، ورقم كتلة)

بعد أن تتعلمت المفاهيم في هذا الدليل، يجب أيضا أن تتعلم كيفية استخدام بوابتيلوحة تحكم بدء التشغيل السريع لـ EVMللبدء في تحليل أي عقد.

كيفية تحليل أي بروتوكول أو منتج Ethereum في خمس دقائق

أندرو هونغ

·

30 ديسمبر 2022

قراءة القصة الكاملة

المعاملات

المعاملات هي فقط النصف الأول من جبل البيانات، حيث يتم استدعاء جميع الآثار والسجلات بعد أن يبدأ بيانات الإدخال الأولية في تشغيل وظيفة المستوى العلوي. دعونا نسمي جميع الحقول التي ستراها في صفحة المعاملة في مستكشف الكتل أولاً:

هذه هي نفس الحقول التي ستراها عند الاستعلام عن "ethereum.transactions" على Dune. العنصر الرئيسي الذي يجب تعلم تحديده هنا هو ما إذا كان "إلى" عقدا أم لا. عادة ، سيتم تمييز العقود بوضوح. إذا كان عقدا ، فيجب أن يكون هناك "بيانات إدخال" تحتوي على استدعاء وظيفة.

رابط المعاملة

من بين كل هذه المفاهيم ، يجب أن يكون التعلم الجيد لأول واحد هو EOA مقابل عنوان العقد. يتم نشر العقود بواسطة EOAs ، ويمكن استدعاؤها في حقل "to" للمعاملة. إذا قمت بالنقر على عنوان ، فسوف يوضح المستكشفون في الجزء الأعلى الأيسر ما إذا كانت عقدة أم حسابًا. على dune يمكنك الانضمام إلى جدول ethereum.creation_traces للتحقق مما إذا كانت عقدة. تذكر أن EOAs فقط يمكن أن يكون الموقِّع من المعاملة.

من المهم تعلم ما هي البيانات التي تأتي مباشرة من سلسلة الكتل مقابل البيانات التي أضافها المستكشف/الواجهات الأمامية. كل شيء في سلسلة الكتل ممثل بصيغة سداسية (تسمى أحيانًا ثنائية أو بايت)، لذا فإن استدعاء تبادل 1inch سيحتوي على سلسلة بيانات الإدخال هذه:

عملية مثالية

أول 4 بايتات (8 أحرف) هي "توقيع الوظيفة"، والتي هيتجزئة كيكاسم الوظيفة وأنواع الإدخال. يحتوي Etherscan على زر "فك تشفير" لبعض العقود، مما يمنحك هذا الشكل القابل للقراءة:

مثال على عملية تحويل

كما يمكنك أن ترى، هناك العديد من المتغيرات المعبأة معًا في تلك السلسلة الطويلة الست عشرية من السابق. يتم ترميز طريقة ترميزها وفقًا لواجهة التطبيق الثنائية (ABI) للعقود الذكية.

ABI’s هي مثل وثائق واجهة برمجة التطبيقات للعقود الذكية (مثل مواصفات OpenAPI)، يمكنك قراءة المزيد حول ذلك على التفاصيل الفنية هنا. سيقوم معظم المطورين بالتحقق من تطابق ABI الخاصة بهم مع العقد ورفع ABI للجميع الآخرين للإشارة إليها في الفك. قد تكون العديد من العقود ذات صلة بالتداول/MEV، حيث يرغب المطور في الإبقاء على الأمور مغلقة المصدر وخاصة - لذا لا نحصل على أي فك التشفير منها.

في ديون، لدينا جداول مشفرةبناءً على ABI العقد المقدمةإلى جدول العقود (أي ethereum.contracts)، يتم تحويل الوظائف والأحداث إلى توقيعات بايت (ethereum.signatures) ثم يتم مطابقتها مع الأثر والسجلات لتعطيك جداول مفككة مثل uniswap_v2_ethereum.Pair_evt_Swap التي تخزن جميع التبادلات لجميع عقود الأزواج التي تم إنشاؤها بواسطة مصنع أزواج Uniswap v2. يمكنك تصفية التبادلات على زوج محدد عن طريق النظر في جدول contract_address للأحداث.

على Dune ، ترغب في الاستعلام عن هذا الجدول لاستدعاء هذه الوظيفة oneinch_ethereum.AggregationRouterV6_call_swap. سترى أن اسم هذا الجدول في أعلى نتائج الاستعلام في مكتشف الجدول في بداية الدليل.

بالنسبة للأقسام التالية حول الآثار والسجلات، سنستخدم نفس عملية تبادل المجمع 1inch. هذا مثال جيد لأن جهاز التوجيه سيتبادل الرموز المميزة عبر العديد من عقود DEX ، لذلك سنحصل على تنوع جيد من الآثار والسجلات ل investiGate.

سجلات

دعونا نتحدث عن سجلات الأحداث التالية. يمكن أن يتم إصدار السجلات في أي نقطة في استدعاء الوظيفة. عادةً ما يقوم المطورون بإصدار سجل في نهاية الوظيفة، بعد إكمال جميع التحويلات/المنطق دون أخطاء. دعونا نلقي نظرة على حدث تبادل uniswap v3 الذي تم إصداره من المعاملة السابقة:

مثال على عملية

سترى أن هناك topic0 وtopic1 وtopic2 وحقل بيانات. Topic0 يشبه توقيع الوظيفة ، باستثناء أنه 32 بايت بدلا من 4 بايت فقط (لا يزال مجزأ بنفس الطريقة). يمكن أن تحتوي الأحداث على حقول "مفهرسة" لتصفية البيانات بشكل أسرع، والتي يمكن أن تظهر في topic1 أو topic2 أو topic3. يتم ترميز جميع الحقول الأخرى معا في كائن "البيانات". مرة أخرى ، يتبعون نفس قواعد الترميز مثل المعاملات والتتبعات. "28" هو مؤشر الحدث في الكتلة بأكملها. قد يكون من المفيد في بعض الأحيان الانضمام عندما تريد المبادلة أو التحويل الأول في tx.

للعثور على المنطق وراء مكان وكيف تم بث هذا الحدث، سأحتاج إلى الغوص في كود الصلادة. سأنقر فوق العنوان المرتبط بالحدث، ثم أذهب إلى علامة العقد، وأبحث عن "بث تبادل" لأنني أعلم أن جميع الأحداث تحتوي على "بث" مباشرة قبل استدعائها في الكود.

هذا هو عقد uniswapv3pool التي تم إنشاؤها في المصنع لكل زوج.

أستطيع رؤية أن هذا يتم إصداره في السطر 786 من العقد، كجزء من وظيفة "التبادل".

القدرة على الاستكشاف والتنقل في وظائف Gate وتتبع أحداث lineage عبر العقود ستكون مهارة أساسية ستحتاج إليها لفهم تسلسل البيانات التي تستعلم عنها. لا يلزمك تعلم صلابة بعمق للتنقل في هذه الملفات ، فقط تعرف على كيفية الفهمواجهات العقودوعند استدعاء الوظائف / الأحداث (الوظيفة والإرسال هما الكلمات الرئيسية).

للحصول على مثال متعمق للتجسس على رمز الوظائف والأحداث ،تحقق من هذا الكشف عن عقود وبيانات Sudoswap.

باستخدام جدول البحث السابق ، يمكنني رؤية أن الجدول الذي يجب أن أستعلم عنه لهذا التبادل هو uniswap_v3_ethereum.Pair_evt_Swap وأنه يتم إصداره بعد استدعاء وظيفة swap().

التتبعات (إثيريوم.التتبعات)

يمكن أن تصبح الآثار بسرعة صعبة للغاية في التنقل، بسبب كيفية تداخل المكالمات المتداخلة بين عقود مختلفة. دعونا نفهم أولا أنواع الآثار:

  • إنشاء: هذه هي الأثر الذي يتم إصداره عند نشر عقد جديد. يمكنك نشر عقد مباشرةً في أعلى عملية، وهذا يعني عدم وجود عنوان "to" في بيانات العملية. يمكنك أيضًا نشر عقد ضمن استدعاء وظيفة، وبالتالي توجد مصانع العقود. تحقق من جدول ethereum.creation_traces للحصول على رؤية أبسط لهذه العملية.
  • DELEGateCALL: هذا يذهب في قائمة "تجاهل" العقلية الخاصة بك عند النظر في عملية. فكر في ذلك كإعادة توجيه طلب من خادم إلى آخر دون تغيير أي منطق. يتعلق هذا بالوكلاء والتخزين ، يمكنك@bansaltushar014/deleGatecall-in-solidity-4138b121cbe">تحقق من التفاصيل الأخرى هنا.
  • الاتصال: هذا هو الأكثر شيوعًا والأكثر تعميمًا في التعقب. يمكن أن يكون الاتصال مجرد تحويل لقيمة ETH دون أي عقود مشاركة. كما يمكن أن يكون أي استدعاء وظيفة على أي عقد.
  • الاستدعاء الثابت: هذا هو استدعاء الوظيفة الذي لا يعدل أي حالة، ويستخدم بشكل خالص للحسابات. أشياء مثل تغذية أسعار البوابة، حسابات أسعار AMM، فحوص نسبة التصفية، فحوص الرصيد، إلخ تحدث في الاستدعاء الثابت. يُرى عادة في solidity كأنواع الوظائف "عرض" أو "نقي".

سيتعين عليك أيضًا فهم عمود / فهرس trace_address. هذا هو نمط [0،1،1،1،1] الذي تراه في كثير من الأحيان. تخيل أنها مثل نقاط الرصاص ، حيث يشير عدد الأرقام في المصفوفة إلى عمق وترتيب استدعاءات الوظائف.

A (خالية) - يحتوي الإدخال الأول للمعاملة على trace_address []

CALLs B (0)

CALLs C (0,0)

CALLs D (1)

المكالمات E (1,0) المكالمات F (1,0,0)المكالمات G (1,1)

مكالمات H (2)

كما يمكن ملاحظته من لقطة الشاشة للمعاملات الداخلية السابقة (الأثر) ، فإن etherscan ليست مكانًا ودودًا لعرض المسارات. أفضل استخدام phalcon blocksec بدلاً من ذلك ، والذي يفك تشفير المعاملة مثل هذا:

رابط للمستكشف

قد يبدو هذا أمرًا مُرهقًا، ولكنه في الواقع طريقة سهلة لاستكشاف جميع الوظائف والأحداث والمُعاملات في تدفق المعاملة. بمجرد أن تكون قادرًا على فهم هذا، يمكنك القول بأمان أنك تفهم جميع البيانات في المعاملة. لاحظ أن استعلام البحث عن الجدولهو نسخة تقريبية تمامًا من هذا التخطيط ، وقد ألهمتني إلى حد كبير!

لاحظ أنه على دون، نقوم تلقائيًا بفك تشفير كل من مكالمات المعاملات وأثار نفس اسم الوظيفة إلى نفس الجدول. قد تتساءل عما إذا كنت تستطيع بسهولة الانضمام إلى الأحداث والأثار/المعاملات بالترتيب الجيد الذي يظهر في فالكون. على دون، يمكنك الانضمام إلى تجميعة المعاملة لربط البيانات بشكل عام، ولكن لا يمكنك الانضمام إلى أي فهرس لإعادة ترتيب التفاعلات بالترتيب الدقيق. إنها قيد مؤسفة في الوقت الراهن تتطلب مؤشرًا مخصصًا.

إلى الأمام، عميقًا في غابة العملات المشفرة المظلمة

إذا كنت تفهم المفاهيم التي طرحتها في هذا الدليل ، فأنت مستعد للتعمق أكثر وكتابة استفسارات أكثر تعقيدًا. ستكون قدرتك على التنقل في البيانات عبر المعاملات باستخدام أدوات متعددة مختلفة واحدة من أهم المهارات التي ستحتاجها للتفوق في هذا المجال.

ربما هناك 10 مستكشفين مختلفين أجد نفسي استخدامهم كل أسبوع، وعدد الأدوات هو 10 مرات تلك الكمية. أكتب دليلًا سنويًا يغطي كيفية استمرار تطور مجموعة أدوات البيانات، وما يجب أن تستخدم كل أداة ل:

رابط الدليل

تنويه:

  1. تم نقل هذه المقالة من [ كريبتودابايت], جميع حقوق الطبع والنشر تنتمي إلى الكاتب الأصلي [Andrew Hong]. إذا كانت هناك اعتراضات على إعادة الطبع هذه ، فيرجى الاتصال ب تعلم غيتالفريق ، وسيتعاملون معه بسرعة.
  2. تنصل المسؤولية: الآراء والآراء المعبر عنها في هذه المقالة هي فقط تلك المؤلف ولا تشكل أي نصيحة استثمارية.
  3. تتم الترجمة من اللغة الإنجليزية إلى لغات أخرى من قبل فريق Gate Learn. ما لم يذكر ذلك، فإن نسخ أو توزيع أو سرقة المقالات المترجمة محظورة.

كيفية قراءة مستكشفي الكتل وفهم المعاملات والتتبعات والسجلات على إثيريوم (EVM)

متقدمSep 13, 2024
تعلم قراءة المستكشفين مثل Etherscan و naviGate البيانات عبر هذه الهياكل البيانات الثلاثة الرئيسية، وكيفية العثور على الجداول التي ستحتاج إلى استعلامها.
كيفية قراءة مستكشفي الكتل وفهم المعاملات والتتبعات والسجلات على إثيريوم (EVM)

ماذا في عملية تحويل؟

إذا قمت بأي وقت مضى بإجراء معاملة على إثيريوم (أو أي سلسلة تكوين ذكية ممكّنة للعقود الذكية)، فربما قمت بالبحث عنها في مستكشف كتلة مثل etherscan.io ورأيت هذا التجمع من المعلومات:

علامة تبويب نظرة عامة على المعاملات

وإذا حاولت النظر إلى السجلات أو الأثار (المعاملات الداخلية)، ربما رأيت هذه الصفحات الخلابة:

علامة التبويب سجلات (أنت محظوظ إذا كانت مفكوكة بشكل جيد مثل هذا)

علامة تبويب الآثار (نعم، يبدو وكأنه مجموعة من الهراء)

تعلم قراءة تفاصيل عملية على مستكشفات الكتل سيكون الأساس لجميع تحليلات البيانات والمعرفة الخاصة بك في إثيريوم، لذا دعونا نغطي جميع القطع وكيفية العمل معها في SQL.

أنا فقط سأشرح كيفية فهم هذه المفاهيم على مستوى عالٍ؛ إذا كنت ترغب في تعلم فك شفرات هذه يدويًا، فسيتعين عليك التعرف على كيفية ذلك.تم ترميز البيانات (نفس الأمر بالنسبة للمعاملات / الأثار / السجلات) وكيفية استخدامها وظائف bytearray/hex لـ Duneللانتقال بين أنواع مختلفة.

بحلول نهاية هذا الدليل ، ستكون قادرًا على فهم وتصفح جداول البيانات لأي عقد باستخدام استعلام البحث عن جدول المعاملات هذا:

رابط الاستعلام(قم بتوصيل أي عنوان tx ، سلسلة ، ورقم كتلة)

بعد أن تتعلمت المفاهيم في هذا الدليل، يجب أيضا أن تتعلم كيفية استخدام بوابتيلوحة تحكم بدء التشغيل السريع لـ EVMللبدء في تحليل أي عقد.

كيفية تحليل أي بروتوكول أو منتج Ethereum في خمس دقائق

أندرو هونغ

·

30 ديسمبر 2022

قراءة القصة الكاملة

المعاملات

المعاملات هي فقط النصف الأول من جبل البيانات، حيث يتم استدعاء جميع الآثار والسجلات بعد أن يبدأ بيانات الإدخال الأولية في تشغيل وظيفة المستوى العلوي. دعونا نسمي جميع الحقول التي ستراها في صفحة المعاملة في مستكشف الكتل أولاً:

هذه هي نفس الحقول التي ستراها عند الاستعلام عن "ethereum.transactions" على Dune. العنصر الرئيسي الذي يجب تعلم تحديده هنا هو ما إذا كان "إلى" عقدا أم لا. عادة ، سيتم تمييز العقود بوضوح. إذا كان عقدا ، فيجب أن يكون هناك "بيانات إدخال" تحتوي على استدعاء وظيفة.

رابط المعاملة

من بين كل هذه المفاهيم ، يجب أن يكون التعلم الجيد لأول واحد هو EOA مقابل عنوان العقد. يتم نشر العقود بواسطة EOAs ، ويمكن استدعاؤها في حقل "to" للمعاملة. إذا قمت بالنقر على عنوان ، فسوف يوضح المستكشفون في الجزء الأعلى الأيسر ما إذا كانت عقدة أم حسابًا. على dune يمكنك الانضمام إلى جدول ethereum.creation_traces للتحقق مما إذا كانت عقدة. تذكر أن EOAs فقط يمكن أن يكون الموقِّع من المعاملة.

من المهم تعلم ما هي البيانات التي تأتي مباشرة من سلسلة الكتل مقابل البيانات التي أضافها المستكشف/الواجهات الأمامية. كل شيء في سلسلة الكتل ممثل بصيغة سداسية (تسمى أحيانًا ثنائية أو بايت)، لذا فإن استدعاء تبادل 1inch سيحتوي على سلسلة بيانات الإدخال هذه:

عملية مثالية

أول 4 بايتات (8 أحرف) هي "توقيع الوظيفة"، والتي هيتجزئة كيكاسم الوظيفة وأنواع الإدخال. يحتوي Etherscan على زر "فك تشفير" لبعض العقود، مما يمنحك هذا الشكل القابل للقراءة:

مثال على عملية تحويل

كما يمكنك أن ترى، هناك العديد من المتغيرات المعبأة معًا في تلك السلسلة الطويلة الست عشرية من السابق. يتم ترميز طريقة ترميزها وفقًا لواجهة التطبيق الثنائية (ABI) للعقود الذكية.

ABI’s هي مثل وثائق واجهة برمجة التطبيقات للعقود الذكية (مثل مواصفات OpenAPI)، يمكنك قراءة المزيد حول ذلك على التفاصيل الفنية هنا. سيقوم معظم المطورين بالتحقق من تطابق ABI الخاصة بهم مع العقد ورفع ABI للجميع الآخرين للإشارة إليها في الفك. قد تكون العديد من العقود ذات صلة بالتداول/MEV، حيث يرغب المطور في الإبقاء على الأمور مغلقة المصدر وخاصة - لذا لا نحصل على أي فك التشفير منها.

في ديون، لدينا جداول مشفرةبناءً على ABI العقد المقدمةإلى جدول العقود (أي ethereum.contracts)، يتم تحويل الوظائف والأحداث إلى توقيعات بايت (ethereum.signatures) ثم يتم مطابقتها مع الأثر والسجلات لتعطيك جداول مفككة مثل uniswap_v2_ethereum.Pair_evt_Swap التي تخزن جميع التبادلات لجميع عقود الأزواج التي تم إنشاؤها بواسطة مصنع أزواج Uniswap v2. يمكنك تصفية التبادلات على زوج محدد عن طريق النظر في جدول contract_address للأحداث.

على Dune ، ترغب في الاستعلام عن هذا الجدول لاستدعاء هذه الوظيفة oneinch_ethereum.AggregationRouterV6_call_swap. سترى أن اسم هذا الجدول في أعلى نتائج الاستعلام في مكتشف الجدول في بداية الدليل.

بالنسبة للأقسام التالية حول الآثار والسجلات، سنستخدم نفس عملية تبادل المجمع 1inch. هذا مثال جيد لأن جهاز التوجيه سيتبادل الرموز المميزة عبر العديد من عقود DEX ، لذلك سنحصل على تنوع جيد من الآثار والسجلات ل investiGate.

سجلات

دعونا نتحدث عن سجلات الأحداث التالية. يمكن أن يتم إصدار السجلات في أي نقطة في استدعاء الوظيفة. عادةً ما يقوم المطورون بإصدار سجل في نهاية الوظيفة، بعد إكمال جميع التحويلات/المنطق دون أخطاء. دعونا نلقي نظرة على حدث تبادل uniswap v3 الذي تم إصداره من المعاملة السابقة:

مثال على عملية

سترى أن هناك topic0 وtopic1 وtopic2 وحقل بيانات. Topic0 يشبه توقيع الوظيفة ، باستثناء أنه 32 بايت بدلا من 4 بايت فقط (لا يزال مجزأ بنفس الطريقة). يمكن أن تحتوي الأحداث على حقول "مفهرسة" لتصفية البيانات بشكل أسرع، والتي يمكن أن تظهر في topic1 أو topic2 أو topic3. يتم ترميز جميع الحقول الأخرى معا في كائن "البيانات". مرة أخرى ، يتبعون نفس قواعد الترميز مثل المعاملات والتتبعات. "28" هو مؤشر الحدث في الكتلة بأكملها. قد يكون من المفيد في بعض الأحيان الانضمام عندما تريد المبادلة أو التحويل الأول في tx.

للعثور على المنطق وراء مكان وكيف تم بث هذا الحدث، سأحتاج إلى الغوص في كود الصلادة. سأنقر فوق العنوان المرتبط بالحدث، ثم أذهب إلى علامة العقد، وأبحث عن "بث تبادل" لأنني أعلم أن جميع الأحداث تحتوي على "بث" مباشرة قبل استدعائها في الكود.

هذا هو عقد uniswapv3pool التي تم إنشاؤها في المصنع لكل زوج.

أستطيع رؤية أن هذا يتم إصداره في السطر 786 من العقد، كجزء من وظيفة "التبادل".

القدرة على الاستكشاف والتنقل في وظائف Gate وتتبع أحداث lineage عبر العقود ستكون مهارة أساسية ستحتاج إليها لفهم تسلسل البيانات التي تستعلم عنها. لا يلزمك تعلم صلابة بعمق للتنقل في هذه الملفات ، فقط تعرف على كيفية الفهمواجهات العقودوعند استدعاء الوظائف / الأحداث (الوظيفة والإرسال هما الكلمات الرئيسية).

للحصول على مثال متعمق للتجسس على رمز الوظائف والأحداث ،تحقق من هذا الكشف عن عقود وبيانات Sudoswap.

باستخدام جدول البحث السابق ، يمكنني رؤية أن الجدول الذي يجب أن أستعلم عنه لهذا التبادل هو uniswap_v3_ethereum.Pair_evt_Swap وأنه يتم إصداره بعد استدعاء وظيفة swap().

التتبعات (إثيريوم.التتبعات)

يمكن أن تصبح الآثار بسرعة صعبة للغاية في التنقل، بسبب كيفية تداخل المكالمات المتداخلة بين عقود مختلفة. دعونا نفهم أولا أنواع الآثار:

  • إنشاء: هذه هي الأثر الذي يتم إصداره عند نشر عقد جديد. يمكنك نشر عقد مباشرةً في أعلى عملية، وهذا يعني عدم وجود عنوان "to" في بيانات العملية. يمكنك أيضًا نشر عقد ضمن استدعاء وظيفة، وبالتالي توجد مصانع العقود. تحقق من جدول ethereum.creation_traces للحصول على رؤية أبسط لهذه العملية.
  • DELEGateCALL: هذا يذهب في قائمة "تجاهل" العقلية الخاصة بك عند النظر في عملية. فكر في ذلك كإعادة توجيه طلب من خادم إلى آخر دون تغيير أي منطق. يتعلق هذا بالوكلاء والتخزين ، يمكنك@bansaltushar014/deleGatecall-in-solidity-4138b121cbe">تحقق من التفاصيل الأخرى هنا.
  • الاتصال: هذا هو الأكثر شيوعًا والأكثر تعميمًا في التعقب. يمكن أن يكون الاتصال مجرد تحويل لقيمة ETH دون أي عقود مشاركة. كما يمكن أن يكون أي استدعاء وظيفة على أي عقد.
  • الاستدعاء الثابت: هذا هو استدعاء الوظيفة الذي لا يعدل أي حالة، ويستخدم بشكل خالص للحسابات. أشياء مثل تغذية أسعار البوابة، حسابات أسعار AMM، فحوص نسبة التصفية، فحوص الرصيد، إلخ تحدث في الاستدعاء الثابت. يُرى عادة في solidity كأنواع الوظائف "عرض" أو "نقي".

سيتعين عليك أيضًا فهم عمود / فهرس trace_address. هذا هو نمط [0،1،1،1،1] الذي تراه في كثير من الأحيان. تخيل أنها مثل نقاط الرصاص ، حيث يشير عدد الأرقام في المصفوفة إلى عمق وترتيب استدعاءات الوظائف.

A (خالية) - يحتوي الإدخال الأول للمعاملة على trace_address []

CALLs B (0)

CALLs C (0,0)

CALLs D (1)

المكالمات E (1,0) المكالمات F (1,0,0)المكالمات G (1,1)

مكالمات H (2)

كما يمكن ملاحظته من لقطة الشاشة للمعاملات الداخلية السابقة (الأثر) ، فإن etherscan ليست مكانًا ودودًا لعرض المسارات. أفضل استخدام phalcon blocksec بدلاً من ذلك ، والذي يفك تشفير المعاملة مثل هذا:

رابط للمستكشف

قد يبدو هذا أمرًا مُرهقًا، ولكنه في الواقع طريقة سهلة لاستكشاف جميع الوظائف والأحداث والمُعاملات في تدفق المعاملة. بمجرد أن تكون قادرًا على فهم هذا، يمكنك القول بأمان أنك تفهم جميع البيانات في المعاملة. لاحظ أن استعلام البحث عن الجدولهو نسخة تقريبية تمامًا من هذا التخطيط ، وقد ألهمتني إلى حد كبير!

لاحظ أنه على دون، نقوم تلقائيًا بفك تشفير كل من مكالمات المعاملات وأثار نفس اسم الوظيفة إلى نفس الجدول. قد تتساءل عما إذا كنت تستطيع بسهولة الانضمام إلى الأحداث والأثار/المعاملات بالترتيب الجيد الذي يظهر في فالكون. على دون، يمكنك الانضمام إلى تجميعة المعاملة لربط البيانات بشكل عام، ولكن لا يمكنك الانضمام إلى أي فهرس لإعادة ترتيب التفاعلات بالترتيب الدقيق. إنها قيد مؤسفة في الوقت الراهن تتطلب مؤشرًا مخصصًا.

إلى الأمام، عميقًا في غابة العملات المشفرة المظلمة

إذا كنت تفهم المفاهيم التي طرحتها في هذا الدليل ، فأنت مستعد للتعمق أكثر وكتابة استفسارات أكثر تعقيدًا. ستكون قدرتك على التنقل في البيانات عبر المعاملات باستخدام أدوات متعددة مختلفة واحدة من أهم المهارات التي ستحتاجها للتفوق في هذا المجال.

ربما هناك 10 مستكشفين مختلفين أجد نفسي استخدامهم كل أسبوع، وعدد الأدوات هو 10 مرات تلك الكمية. أكتب دليلًا سنويًا يغطي كيفية استمرار تطور مجموعة أدوات البيانات، وما يجب أن تستخدم كل أداة ل:

رابط الدليل

تنويه:

  1. تم نقل هذه المقالة من [ كريبتودابايت], جميع حقوق الطبع والنشر تنتمي إلى الكاتب الأصلي [Andrew Hong]. إذا كانت هناك اعتراضات على إعادة الطبع هذه ، فيرجى الاتصال ب تعلم غيتالفريق ، وسيتعاملون معه بسرعة.
  2. تنصل المسؤولية: الآراء والآراء المعبر عنها في هذه المقالة هي فقط تلك المؤلف ولا تشكل أي نصيحة استثمارية.
  3. تتم الترجمة من اللغة الإنجليزية إلى لغات أخرى من قبل فريق Gate Learn. ما لم يذكر ذلك، فإن نسخ أو توزيع أو سرقة المقالات المترجمة محظورة.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!