تخزّن عقدة البلوكتشين البيانات بصيغة مُحسّنة للتوافق والتحقق، وليس للاستعلام. إذا أردت معرفة الرصيد الحالي لعنوان Ethereum، يمكن للعقدة أن تخبرك. لكن إذا أردت معرفة جميع المعاملات التي أجراها ذلك العنوان على الإطلاق، أو جميع الرموز التي يحتفظ بها، أو سجل تفاعله مع عقد ذكي محدد، فأنت بحاجة إلى مُفهرِس.
تعمل المُفهرِسات عن طريق قراءة كل كتلة من البلوكتشين، وفك ترميز المعاملات والأحداث، وتخزين البيانات المُعالَجة في قاعدة بيانات مُحسّنة لأنواع الاستعلامات التي يريد المستخدمون فعليًا تشغيلها. يُشبه هذا مفاهيميًا كيفية زحف محرك البحث عبر الويب وبناء فهرس. فكود HTML الخام لكل صفحة ويب موجود، لكن محركات البحث تجعله مفيدًا عبر فهرسته وتنظيمه.
The Graph هو أشهر بروتوكول فهرسة لامركزي. فهو يسمح للمطورين بتحديد رسوم بيانية فرعية تحدد بدقة البيانات المراد استخراجها من البلوكتشين وكيفية تخزينها. وعند وقوع حدث ذي صلة على السلسلة، تعالج وظائف تعيين الرسم البياني الفرعي الحدث وتُحدّث البيانات المخزّنة. ثم تستعلم التطبيقات عن الرسم البياني الفرعي باستخدام GraphQL بدلًا من التفاعل مع البلوكتشين مباشرة.
عملية الفهرسة مُكلفة حسابيًا. بالنسبة لـ Ethereum، يحتاج المُفهرِس إلى معالجة كل معاملة في كل كتلة منذ نشأة السلسلة، وفك ترميز بيانات الإدخال وسجلات الأحداث، والحفاظ على حالة جارية لجميع البيانات ذات الصلة. تُخزّن عقدة أرشيف Ethereum الكاملة أكثر من 15 تيرابايت من البيانات. وتتطلب معالجة هذه البيانات إلى صيغ مُفهرَسة مفيدة موارد حوسبة كبيرة وقد تستغرق أيامًا أو أسابيع لإجراء مزامنة تاريخية كاملة.
سجلات الأحداث هي المصدر الأساسي للبيانات لمعظم المُفهرِسات. عندما يُطلق عقد ذكي حدثًا، مثل حدث Transfer لرموز ERC-20، فإنه يُنشئ إدخال سجل يمكن للمُفهرِسات تصفيته ومعالجته بكفاءة. العقود المُصمّمة جيدًا تُطلق أحداثًا لكل تغيير حالة مهم، مما يجعل الفهرسة واضحة. أما العقود التي تُعدّل الحالة دون إطلاق أحداث فيصعب فهرستها لأن المُفهرِس يحتاج إلى تتبع تنفيذ المعاملة لاكتشاف التغييرات.
تُحسّن خدمات الفهرسة المختلفة لحالات استخدام مختلفة. يُوفر Dune Analytics واجهة SQL لبيانات البلوكتشين المُفهرَسة، مما يجعلها في متناول المحللين الذين يعرفون SQL لكن ليس Solidity. ويجمع Nansen بين الفهرسة على السلسلة ووسم المحافظ، مما يربط العناوين بكيانات معروفة. ويُوفر Flipside مجموعات بيانات منسقة لبروتوكولات محددة. ويتخذ كل منها خيارات مختلفة بشأن ما يجب فهرسته وكيفية تقديمه.
تُمثّل الفهرسة الفورية تحديات إضافية. يحدث إنتاج الكتل على Ethereum كل 12 ثانية، ويحتاج المُفهرِس إلى معالجة بيانات كل كتلة جديدة وتحديث قاعدة بياناته قبل وصول الكتلة التالية. وخلال فترات النشاط المرتفع، قد تحتوي كتلة واحدة على آلاف الأحداث ذات الصلة. ويحتاج المُفهرِس إلى التعامل مع هذا الحمل مع خدمة حركة الاستعلامات من التطبيقات في الوقت نفسه.
التعامل مع إعادة التنظيم جانب دقيق لكنه بالغ الأهمية من الفهرسة. تُعيد البلوكتشينات تنظيمها أحيانًا، بمعنى أن كتلة تمت معالجتها مسبقًا تُستبدل بكتلة مختلفة عند الارتفاع نفسه. يحتاج المُفهرِس إلى كشف عمليات إعادة التنظيم هذه والتراجع عن أي تغييرات بيانات من الكتلة المستبدلة. والفشل في التعامل مع عمليات إعادة التنظيم بشكل صحيح قد يؤدي إلى بيانات غير متسقة تُظهر معاملات أو تغييرات حالة لم تحدث فعليًا قط.
بالنسبة للمتداولين والمحللين، المُفهرِسات هي ما يجعل تحليل السلسلة عمليًا. فبدونها، ستتطلب مراقبة محافظ الحيتان وتتبع تدفقات الرموز وتحليل استخدام بروتوكولات التمويل اللامركزي أو بناء إشارات تداول من بيانات السلسلة تشغيل بنيتك التحتية الخاصة بتكلفة كبيرة. وتؤثر جودة وتغطية المُفهرِس الذي تعتمد عليه تأثيرًا مباشرًا على جودة تحليلك.