عن المشروع
Sierpe هو خادم ذاتي الاستضافة يراقب شبكة Stellar للعقود التي يسجلها المستخدم ويحتفظ بتاريخها الكامل في قاعدة بيانات Postgres الخاصة بالمشغل، ويتم عرضها من خلال REST API وواجهة إدارة مدمجة. يصنف المشروع نفسه بالإصدار v1.5.2، مع تصميم موصوف بأنه مستقر في docs/DESIGN.md، ويذكر أن الأحداث، وحالة العقود، وتحويلات الرموز، وخطوط الثقة (trustlines)، وتحركات الرموز قد اكتملت ميزاتها وتعمل على شبكة الاختبار (testnet).
ما الذي يقوم بفهرسته
- الأحداث الصادرة عن العقود المسجلة، والتي يتم اكتشافها من المواصفات الموجودة على السلسلة لكل عقد ويتم استرجاعها في مجموعات، ثم تتبعها عند طرف السلسلة.
- حالة العقد: سجل تغييرات إدخالات التخزين بالإضافة إلى لقطة حالية.
- تحويلات الرموز التي تم فك تشفيرها (فك تشفير SEP-41، و CAP-67 muxed) وخطوط الثقة الكلاسيكية لأصول SAC.
- تحركات الرموز من أو إلى عقد ما، بغض النظر عن العقد الذي أصدر التحويل، مع تقارير تغطية لكل نوع.
- السجل الذي يسبق نافذة الاحتفاظ بـ RPC: تحتفظ Stellar RPCs بحوالي سبعة أيام من الأحداث، لذا يقوم Sierpe باسترجاع البيانات من نقطة البداية (genesis) حيثما تسمح المصادر، وهو مصمم لإعادة تشغيل أرشيفات السجل العامة (History Archives) للنطاقات التي لا تخدمها RPC؛ تتوفر إعادة تشغيل الأرشيف عبر صورة `-full`.
كيفية الاستخدام
يتم النشر كحاوية (container) بجانب قاعدة بيانات Postgres فارغة. يتم تسجيل العقود أثناء التشغيل كبيانات وليس ككود، من خلال استدعاء موثق مثل POST /v1/contracts مع معرف العقد و `from: genesis`؛ ثم يقوم الخادم بتصنيف العقد، واسترجاع تاريخه ومواصلة تتبعه. يمكن للمستخدمين الاستعلام عن الأحداث باستخدام فلاتر بنمط getEvents-v2 (على سبيل المثال topic0 والمؤشرات/cursors)، ولقطة التخزين الحالية لمفتاح ما، وتاريخ أي إدخال تخزين. تدرج الوثائق Railway و Docker Compose وعمليات نشر الحاويات العامة، ويقترح ملف README أن الملف الثنائي نفسه يعمل على Railway أو AWS أو GCP أو VPS صغير، بتكلفة مستهدفة أقل من 10 دولارات شهرياً للمشروع النموذجي. المتطلبات هي Docker أو Go 1.25+، مع التكوين عبر DATABASE_URL و NETWORK و ADMIN_TOKEN.
سلوك API وضمانات المصداقية
يؤكد ملف README أن التغطية والفجوات هي بيانات أساسية: كل استجابة تعلن عن `coverage` و `scanStatus` بقيم HAS_MORE أو WAITING_FOR_LEDGERS أو OLDEST_REACHED أو COMPLETE، لذا فإن الصفحة الفارغة تشير إما إلى عدم وجود شيء أو أن الفهرسة لم تصل إلى ذلك النطاق. تعتمد عملية تقسيم الصفحات (Pagination) على مؤشرات غير شفافة تشفر الاستعلام بالكامل لمنع الانزياح. يتم تحديد سطح API الكامل في docs/openapi.yaml وتوثيق المقاييس في docs/METRICS.md؛ كما يتم إدراج لوحة تحكم Grafana وصفحة حالة ضمن تسليمات الجهاز.
الواجهة والتحكم في الوصول
توجد واجهة إدارة مدمجة في `/` وهناك نقطة نهاية لسرد العقود. يتوفر وضع Basic Auth اختياري لكامل السطح لعمليات النشر على النطاقات العامة.
الأهداف غير المقصودة صراحة
يذكر ملف README أن المشروع ليس خدمة استضافة، وليس منصة تحليلات (لا توجد تجميعات أو لوحات تحكم فوق بيانات المستخدم)، وليس مفهرساً شاملاً للسلسلة (يتم فهرسة العقود المسجلة فقط)، وليس إطار عمل — حيث إن الحاجة إلى كتابة كود لاستخدامه ستعتبر خطأً (bug).
خارطة الطريق
تغطي المعالم المكتملة الهيكل الأساسي (التكوين، الصحة، الترحيلات، حلقة المؤشر مع فحوصات الاستمرارية)، والأحداث من البداية للنهاية، وحالة العقد، وإصدار الجهاز v1.0.0، وتحويلات الرموز وخطوط ثقة SAC (v1.1)، وإعادة تشغيل الأرشيف (v1.2)، والواجهة المدمجة وسرد العقود (v1.3)، و Basic Auth الاختياري (v1.4)، وتحركات الرموز مع تغطية لكل نوع (v1.5). يتضمن العمل المخطط له اكتشاف فئة العقود في v1.6، حيث يؤدي تسجيل wasm hash إلى فهرسة كل عقد تم نشره منه، وفي v2 تسليم الدفع (push delivery) مع webhooks موقعة ومصبات وسيطة (broker sinks)، مع وصف خادم MCP بأنه قيد الاستكشاف.
مواد المشروع
تتضمن الوثائق docs/DESIGN.md (البنية، نموذج البيانات، سطح API، التكوين، المعالم)، و docs/DEPLOY.md، و docs/KNOWLEDGE.md (29 مبدأ مستخلص من مفهرسات الإنتاج، كل منها مع مصدره)، و CONTRIBUTING.md و SECURITY.md. المشروع مرخص بموجب Apache-2.0 ويدعو لتقديم المشكلات والملاحظات.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.