cryptofoundry

الاتصال بـ cryptofoundry

أخبرنا بما تريد بناءه أو أتمتته.

البريد الإلكتروني
[email protected]
ADAMANT Messenger
فتح في ADAMANT
ETH-transactions-storage

تخزين معاملات ETH الإصدار 2.5.0

يحول الإصدار 2.5.0 من ETH Transactions Storage المشروع إلى مفهرس معاملات Ethereum موثق وقابل للتوزيع، مع واجهة برمجة تطبيقات REST خلفية للمحافظ، ومستكشفات الكتل، وأدوات المحاسبة والخزينة، وخدمات المراقبة، والتطبيقات المخصصة. يحافظ هذا الإصدار على عقد واجهة برمجة تطبيقات PostgREST الحالي المستخدم في بيئات الإنتاج بواسطة عملاء ADAMANT.

يضيف هذا الإصدار معاملات موثوقة لكل كتلة ونقاط فحص، واستعادة عند بدء التشغيل، وسلوك التراجع وإعادة المحاولة لقاعدة البيانات، والتقدم عبر الكتل الفارغة أو المفلترة. تتوفر الآن ميزة الفهرسة الاختيارية القائمة على العنوان مع التحقق من الصحة، ومطابقة المرسل، والمستلم الأصلي، ومستلم الرمز المميز، وإعادة تحميل القوائم الحية، وسلوك الإغلاق عند الفشل. تم تقليل مجموعة فهارس قاعدة البيانات الموصى بها إلى خمسة فهارس، مع توفر الفهارس الثلاثة السابقة بشكل منفصل لأشكال الاستعلام المخصصة؛ حيث توفر المجموعة الأصغر ما يقدر بـ 90-110 جيجابايت من المساحة لما يقرب من 490 مليون صف. تمت إضافة مخطط sync_state إضافي، ووصول للقراءة فقط عبر web_anon، وسقف استجابة PostgREST يبلغ 10,000 صف، وتوجيهات لحماية عمليات نشر واجهة برمجة التطبيقات العامة. يتضمن الإصدار دعمًا لمعرف الموارد الموحد (URI) لاتصال PostgreSQL مع إخفاء بيانات الاعتماد، وتحميل ملفات .env، وتبعيات Python مقيدة، وتشخيصات محدثة، ووحدة systemd منقحة. كما تمت إضافة حاوية Python 3.11، وإعداد Compose لصورة منشورة، وتجاوز للبناء المحلي المنفصل، وبيانات OCI الوصفية، ونشر GHCR متعدد البنى مدفوع بالإصدار. يتوفر موقع توثيق VitePress على الرابط https://eth-indexer.docs.adamant.im، مع أدوات Node قابلة للتكرار، وتوثيق CI، ونشر عبر Pages، وتوجيهات للمساهمين. تم إعادة تموضع المشروع ليكون متاحًا لأي مستهلك متوافق مع الحفاظ على ملكية ADAMANT، ومصدره، وأدلة التوافق مع بيئة الإنتاج.

متطلبات الترقية

أوقف المفهرس الحالي وقم بتحديث النسخة الكاملة قبل الترقية. طبق المخطط الجديد كمسؤول لقاعدة بيانات PostgreSQL قبل بدء الإصدار 2.5.0:

sudo -u postgres psql -v ON_ERROR_STOP=1 -d index < create_tables.sql

ثم قم بتثبيت تبعيات Python المعلنة لعمليات النشر اليدوية أو عبر systemd:

pip3 install -r requirements.txt

احتفظ بجميع قيم بيئة الإنتاج وبيانات الاعتماد؛ يتطلب قالب systemd الخاص بالمستودع الآن ملف .env صالحًا. قم بتعيين POSTGRES_PASSWORD قبل استخدام Docker Compose. قم بترحيل بيانات PostgreSQL 12 الحالية بشكل صحيح قبل اعتماد صورة PostgreSQL 14 الخاصة بـ Compose؛ فمجرد تغيير وسم الصورة لا يعد ترقية. قم بإنشاء والتحقق من مجموعة الفهارس الموصى بها قبل إزالة الفهارس القديمة؛ استخدم عمليات الفهرسة المتزامنة على قاعدة بيانات حية. طبق create_tables.sql قبل تغيير PostgREST إلى web_anon، وإلا ستفشل طلبات واجهة برمجة التطبيقات المجهولة. خطط للسجل المفلتر بشكل صريح: تفعيل مرشح العنوان أو إضافة عنوان لا يقوم بملء الكتل السابقة.

راجع دليل الترقية الكامل على الرابط https://eth-indexer.docs.adamant.im/guide/upgrading قبل نشر هذا الإصدار.

التوافق والنطاق الحالي

تظل نقاط النهاية /ethtxs و /max_block و /aval وأعمدة قاعدة البيانات ومعالجة العناوين غير الحساسة لحالة الأحرف وترميزات القيم وأشكال استعلام العميل المعتمدة متوافقة. يعكس /max_block.max الآن أيضًا الكتل المعالجة التي لم تخزن أي صفوف معاملات.

يستمر المفهرس في تخزين تحويلات ETH الأصلية واستدعاءات ERC-20 المباشرة من المستوى الأعلى transfer(address,uint256). وهو لا يقوم بفهرسة التحويلات الداخلية لـ ETH، أو transferFrom، أو التوقيعات المتعددة (multisig)، أو الموجهات (router)، أو تدفقات الدفعات، أو معايير الرموز الأخرى، أو تصحيحات إعادة التنظيم العميقة التلقائية.

التوزيع

يؤدي نشر هذا الإصدار المستقر إلى إطلاق صور للبنى linux/amd64 و linux/arm64:

ghcr.io/adamant-im/eth-transactions-storage:2.5.0
ghcr.io/adamant-im/eth-transactions-storage:latest

وسوم صور الإصدار غير قابلة للتغيير. قم بتثبيت الإصدار 2.5.0 بدلاً من latest في بيئة الإنتاج.

التحقق

اجتازت جميع اختبارات وحدة Python الـ 12. كما تم اجتياز اختبارات بناء جملة Python، والتنسيق، وMarkdown linting، وبناء VitePress. اجتازت اختبارات بناء الحاوية، واستبعاد حالة المشغل، وبيانات OCI الوصفية، وتكوينات Compose، وتقدم واجهة برمجة التطبيقات، واختبارات إعادة تشغيل نقطة الفحص عند دمج الإصدار. تم اجتياز نشر التوثيق ويتم تقديم الموقع عبر بروتوكول HTTPS الإلزامي. تم نشر خدمة الإنتاج وتأكيد سلامتها من قبل المشغل.

الأعمال المضمنة: #27، #28، #29، #31، و #33. تتبع الإصدار: #32. سجل التغييرات الكامل: https://github.com/Adamant-im/ETH-transactions-storage/compare/v2.4.1…v2.5.0.

تغييرات جذرية

يجب تطبيق مخطط sync_state الجديد عبر create_tables.sql قبل بدء الإصدار 2.5.0، ويجب تطبيقه قبل تحويل PostgREST إلى web_anon وإلا ستفشل طلبات واجهة برمجة التطبيقات المجهولة. يتطلب قالب systemd الآن ملف .env صالحًا، لذا لن تبدأ عمليات النشر الحالية التي لا تحتوي على ملف .env حتى يتم إنشاؤه. تفعيل مرشح العنوان أو إضافة عنوان لا يقوم بملء الكتل السابقة، مما يعني أن السجل الذي لم تتم فهرسته مسبقًا لن يتم التقاطه بأثر رجعي دون إجراء صريح من المشغل.