عن المشروع

Chainlink هو مشروع مفتوح المصدر يوسع قدرات العقود الذكية من خلال توفير الوصول إلى بيانات العالم الحقيقي والحوسبة خارج السلسلة مع الحفاظ على ضمانات أمان وموثوقية سلسلة الكتل. يحتوي هذا المستودع على عقدة Chainlink الأساسية والعقود. العقدة الأساسية هي الثنائي المجمع الذي يشغله مشغلو العقد المشاركون في شبكة أوراكل لامركزية. القدرات الرئيسية الموصوفة في ملف README: - ثنائي العقدة الأساسية مع واجهة ويب (المنفذ الافتراضي 6688) وعميل واجهة سطر أوامر عن بُعد للإدارة وتسجيل الدخول وإدارة الوظائف. - إدارة الوظائف عبر أوامر واجهة سطر الأوامر مثل `chainlink jobs list`، مع توثيق حول إنشاء الوظائف. - التكوين من خلال مزيج من متغيرات البيئة والإعدادات المباشرة عبر API أو واجهة المستخدم أو واجهة سطر الأوامر. - محولات خارجية تجعل النظام قابلاً للتوسع، مما يسمح بدمج الحسابات المخصصة وواجهات برمجة التطبيقات المتخصصة عبر واجهة REST بسيطة. - دعم الإضافات المحددة في ملفات YAML تحت دليل `plugins/`، المثبتة باستخدام loopinstall؛ بعض الإضافات تشير إلى مستودعات خاصة. - صور Docker مبنية مسبقًا لإصدارات الإصدار الرئيسية، بالإضافة إلى سير عمل لبناء صور للاختبار فقط من الفروع أو طلبات السحب. - التحقق من الإصدار باستخدام cosign مع توقيع OIDC بدون مفاتيح. ملاحظات البناء والتطوير: - يتطلب Go وNodeJS وpnpm وPostgreSQL (>= 15.x)؛ صورة Docker الرسمية تدعم حتى Postgres 18.x بسبب العميل المضمن. - البناء باستخدام `make install`، ثم تشغيل `chainlink help` أو `chainlink node start`. - تشغيل العقدة يتطلب الوصول إلى عميل تنفيذ إيثريوم مع اتصال WebSocket مفتوح. العملاء المدعومون رسميًا المدرجون هم Parity/Openethereum (مهمل)، Geth وBesu؛ Nethermind وErigon موصوفان كمدعومين لكنهما معطلان بسبب مشكلات معروفة. - الاختبار يمكن استخدام `make test` مع قاعدة بيانات اختبار مؤقتة، أو تدفق يدوي يتضمن إعداد قاعدة بيانات الاختبار، الترحيلات و`go test ./...`. كشف السباق واختبار fuzz مدعومان. - يحتوي المستودع على ثلاث وحدات Go (الجذر، integration-tests، core/scripts) مع استبدالات نسبية، و`make gomodtidy` يرتب الثلاثة. - توليد الكود يستخدم mockery للـ mocks؛ يتم توفير Nix shell/flake لبيئة تطوير قابلة للتكرار. - تُستخدم changesets للإصدار، ويتبع المشروع Semantic Versioning واتفاقيات Keep a Changelog. المجتمع والمساهمة: Discord هي قناة الاتصال الأساسية؛ يتم الإشارة إلى إرشادات المساهمة ومتعقب المشكلات، والتوثيق الرسمي متاح على docs.chain.link.