cryptofoundry

الاتصال بـ cryptofoundry

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

البريد الإلكتروني
[email protected]
ADAMANT Messenger
فتح في ADAMANT
مقال

Currencyinfo 4.2.0: أسعار مرجعية مستضافة ذاتياً للعملات الرقمية والتقليدية

ADAMANT Messengerمن المسبك ↗
Currencyinfo 4.2.0: أسعار مرجعية مستضافة ذاتياً للعملات الرقمية والتقليدية

تطرح كل محفظة، ومستكشف بلوكشين، وخدمة دفع، وأداة محاسبية، وتطبيق محفظة استثمارية السؤال نفسه في نهاية المطاف: ما هي قيمة هذا الأصل حالياً؟ الجزء الصعب لا يكمن في إجراء استدعاء لواجهة برمجة تطبيقات (API) واحدة، بل في تحديد المصدر الموثوق، وتوحيد الأسواق المتباينة، والتعامل مع حصص الاستخدام والانقطاعات، واستبعاد البيانات الخاطئة، والحفاظ على السجلات التاريخية، وتفسير أسباب تغير الأرقام. صُممت Currencyinfo للقيام بهذه المهمة، ومع إصدار 4.2.0، لم تعد تُقدم كمكون داخلي في ADAMANT، بل أصبحت خدمة أسعار مرجعية عالمية ومفتوحة المصدر ومستضافة ذاتياً لأي شخص يبني تطبيقات تعتمد على بيانات العملات الرقمية والتقليدية.

لا ينبغي أن يكون السعر المرجعي رقماً غامضاً مستمداً من مزود واحد، بل يجب أن يكون نتيجة قابلة للملاحظة ناتجة عن قواعد تتحكم أنت فيها.

تجميع البيانات من مصادر متعددة

تعتبر التسعير من مصدر واحد أمراً مريحاً حتى يبدأ ذلك المصدر في تقييد الطلبات، أو إسقاط سوق معينة، أو تغيير تنسيق بياناته، أو يصبح غير متاح في منطقتك، أو يقدم بيانات شاذة. يمكن لـ Currencyinfo 4.2.0 التحقق من ما يصل إلى عشرة مزودين مستقلين وتحويل أسعارهم إلى سعر مرجعي واحد قابل للتهيئة.

يضيف هذا الإصدار أربعة موصلات لا تتطلب مفاتيح وصول: CoinPaprika وCoinLore وBinance وExchangeRate-API. وبالإضافة إلى Currency API، أصبح التكوين الافتراضي يتضمن الآن خمسة مصادر تعمل دون الحاجة إلى بيانات اعتماد. يظل CoinGecko متاحاً باستخدام مفتاح تجريبي (Demo key)، بينما يدعم كل من CoinMarketCap وExchangeRate.host الإعدادات الموثقة، ويوفر MOEX خياراً متخصصاً آخر. تم الاحتفاظ بـ CryptoCompare للتوافق، لكنه أصبح الآن مهجوراً ومعطلاً افتراضياً لأن الوصول الجديد إليه يتطلب اشتراكاً.

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

من الأسعار الفردية إلى سعر مرجعي موثوق

تمر عملية المعالجة عبر خمس مراحل. يتم استطلاع المصادر وفق جداولها الزمنية الخاصة. تعمل مرحلة التحقق على توحيد أزواج العملات ورفض الأسعار الصفرية أو غير المحددة. تكتشف مرحلة التجميع التباينات، وتطبق المجموعات والأوزان، وتستخدم minSources لتقرير ما إذا كان الزوج يحظى بدعم كافٍ للنشر. تخزن مرحلة السجلات التاريخية لقطات في قاعدة بيانات MongoDB الخاصة بالمشغل. وأخيراً، تعرض واجهة REST API الأسعار الحالية والتاريخية من خلال نقاط نهاية مركزة.

Currencyinfo 4.2.0: أسعار مرجعية موثوقة، مصممة الآن للجميع

يخفي هذا الوصف المختصر العديد من أدوات التحكم المفيدة. يمكن فصل مجموعات المصادر الموثوقة عن مجموعات الاحتياط. يمكن للأوزان واستراتيجيات الدمج التعبير عن كيفية دمج المزودين. يمكن لعملية تثليث العملة الأساسية الحتمية اشتقاق زوج عندما يكون السعر المباشر غير متاح. كما تمنع ميزة التعامل مع حداثة البيانات عبر rateLifetime الملاحظات القديمة من الظهور كأنها حديثة.

والأهم من ذلك، أصبحت minSources الآن تدرك حداثة البيانات. فالمزود الذي تم تكوينه وتوقف عن تقديم بيانات قابلة للاستخدام لم يعد يُحتسب لمجرد وجوده في التكوين. تنشر الخدمة البيانات عندما تتوفر أدلة حالية كافية، وتتدهور جودة الخدمة بشكل متوقع عندما لا تتوفر. المرونة لا تعني التظاهر بأن كل مزود سليم دائماً، بل تعني معرفة أي الأدلة محدثة، وأيها مفقود، وما الذي يجب أن يفعله نظامك بعد ذلك.

تحسينات تركز على المشغل

تعزز Currencyinfo 4.2.0 أيضاً الأجزاء التي تقع خلف نقطة النهاية. تجعل فهارس التكرار الثلاثة المرتبة حسب التاريخ استعلامات السجل التاريخي أكثر عملية على نطاق واسع. في مجموعة بيانات التحقق من الإصدار التي تبلغ حوالي 238 مليون وثيقة، تحسن أداء استعلام نموذجي للزوج والنطاق من 22.8 ثانية إلى 8 مللي ثانية. تعتمد النتائج الحقيقية على الأجهزة، وتوزيع البيانات، وحالة التخزين المؤقت، وشكل الاستعلام، ولكن الاتجاه واضح: أصبح السجل التاريخي المتراكم الآن أسهل بكثير في الاستخدام تشغيلياً.

انتقلت الخدمة إلى Node.js 22.12 أو أحدث، وقامت بتحديث منصتها إلى NestJS 12 وMongoose 9 وZod 4 وTypeScript 6 وJest 30. تغطي مجموعة الاختبارات المكتملة 28 حزمة و266 اختباراً.

أصبح توزيع الحاويات الآن سطح إصدار من الدرجة الأولى. يتم نشر الصور لـ linux/amd64 وlinux/arm64 مع بيانات OCI الوصفية، وSBOM، ومصدر البناء. بيئة التشغيل ليست بصلاحيات الجذر (non-root)، وتمت إزالة مديري الحزم من صورة الإنتاج، وتستخدم السجلات أذونات مقيدة، ويتم حجب القيم التي تشبه الأسرار، وتتضمن خط أنابيب CI فحص الثغرات الأمنية.

بالنسبة لعملية نشر جديدة، فإن أقصر طريق هو الصورة العامة:

docker pull ghcr.io/adamant-im/currencyinfo:4.2.0

Currencyinfo 4.2.0: أسعار مرجعية موثوقة، مصممة الآن للجميع

حدود واضحة

تنتج Currencyinfo أسعاراً مرجعية. إنها ليست موجز تنفيذ تبادل، أو محطة بيانات سوق عالية التردد، أو واجهة برمجة تطبيقات مستضافة مع اتفاقية مستوى خدمة (SLA) مضمونة. تمنحك الاستضافة الذاتية التحكم في التكوين، والسجل التاريخي، والخصوصية، والتوافر؛ كما تجعلك مسؤولاً عن مراقبة نشرك واحترام شروط كل مزود، وحدوده، وقواعد إعادة التوزيع الخاصة به.

يتطلب الترقية من 4.1.2 تخطيطاً. قد تُمكّن التكوينات القديمة مزودين يتطلبون الآن بيانات اعتماد، لذا يجب على المشغلين تعطيل تلك المصادر، أو إضافة مفاتيح، أو اعتماد الإعدادات الافتراضية الجديدة الخالية من المفاتيح قبل بدء 4.2.0. يجب على قواعد البيانات التاريخية الكبيرة أيضاً بناء الفهارس الثلاثة الجديدة خارج النطاق: استغرقت قياسات الإصدار حوالي 17 دقيقة على وحدات تخزين NVMe و50 دقيقة على SATA. تظل تنسيقات المستندات المخزنة متوافقة، مما يجعل التراجع عن التحديث أمراً مباشراً.

تصحيح سلوكي واحد يجب ملاحظته: تستخدم فلاتر السجل التاريخي الآن ترتيب أزواج BASE/QUOTE الموثق. يجب على العملاء الذين قاموا سابقاً بالتعويض عن طريق عكس الأزواج إزالة هذا الحل البديل. كما يتم رفض معاملات الاستعلام غير المعروفة بـ HTTP 400 بدلاً من تجاهلها بصمت.

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