تعد قاعدة بيانات Universal NFT Vector مبادرة لتخزين نسخة متجهة من كل Ethereum NFT المستندة إلى الصور (ERC-721). يستفيد هذا المشروع من مجموعة متنوعة من التكنولوجيا لجعل ذلك ممكنًا بما في ذلك Alchemy API وبروتوكول الرسم البياني و Pinecone. يمكن العثور على البنية التحتية الكاملة للبرامج أدناه:
أدناه ، حددنا الأجزاء/الأنظمة الرئيسية كجزء من هذا المشروع وحالة استخدامها في نظامنا العام.
| نظام | استخدام الحالة |
|---|---|
| لوحة معلومات التحليلات | هذا هو الصفحة الأمامية للتطبيق الجانبي لعميلنا ، ويستخدم في المقام الأول لعرض الإحصاءات والمعلومات الأخرى المتعلقة بالبيانات في قاعدة البيانات وقائمة انتظار المهام الخاصة بنا. |
| صفحة البحث | صفحة البحث هي صفحة تفاعلية للمستخدمين للاستعلام عن قاعدة البيانات والعثور على NFTS مماثلة مع تصور NFTs الخاصة بهم بالنسبة إلى NFTS مماثلة على رسم بياني ثنائي الأبعاد. |
| تكامل بروتوكول الرسم البياني | يتم استخدام بروتوكول الرسم البياني كطبقة استعلام للحصول على جميع معلومات مجموعة NFT على blockchain. |
| تكامل API الكيميائي | يتم استخدام Alchemy API للحصول على جميع معلومات NFT الفردية لكل مجموعة NFT التي يتم تخزينها بعد ذلك في نظامنا. |
| الخادم الخلفي | يتيح لنا خادم الواجهة الخلفية التفاعل مع البيانات والحصول على معلومات من قواعد البيانات الخاصة بنا لعرضها على لوحة معلومات التحليلات الخاصة بنا. |
| regnety-080 تكامل تضمين الصور | تعمل تضمينات الصورة كوسيلة لتوحيد تمثيل الصور وتخزينها في قاعدة بيانات متجه. |
| البحث API | تتيح API للبحث للمستخدمين الاستعلام عن قاعدة بيانات المتجه لـ NFTS مماثلة استنادًا إلى صورة مصدر. يستخدم مسافة جيب التمام كمقياس للعثور على أقرب NFTs. |
| API التصور | تتيح واجهة برمجة تطبيقات التصور للمستخدمين تصور صورة المصدر الخاصة بهم بالنسبة إلى NFTS المماثلة - فهي تستخدم تحلل القيمة المفرد المقطوعة للقيام بذلك. |
| خادم عامل قائمة انتظار المهام | يمكّن خادم عمال قائمة انتظار المهام قابلية التوسع الأفقي للنظام لأنه يتيح مئات الآلاف من NFTS للجلوس في قائمة انتظار عند معالجتها في النهاية. |
نرحب دائمًا بطلبات السحب إلى هذا المستودع لتحديد قاعدة البيانات الخاصة بنا وتحسينها.
لقد قدمنا برنامجًا نصيًا لإعداد ( setup.sh ) لإعداد النظام محليًا - لم يتم اختبار هذا إلا باستخدام WSL و Ubuntu ، لذا استخدم على مسؤوليتك الخاصة. قبل تشغيل البرنامج النصي الإعداد ، يرجى التأكد من تثبيت ما يلي:
ستحتاج أيضًا إلى إضافة ملف EnviorNment لهذا المشروع. الدلائل مع ملف .env:
python_server/src/client/celery_queue/benchmarks/ لقد قدمنا .env.example لكل ملف .env. نحن نقدم أيضًا doppler.example لمعرفة متغيرات البيئة الأخرى التي لدينا لأننا نستخدم دوبلر كبرنامج إدارة سري موحد.
ثم ، لإعداد هذا المشروع:
sudo chmod +x ./setup.sh
sudo ./setup.sh
بدلاً من ذلك ، لإعداد هذا المشروع يدويًا:
client و NPM قم بتثبيت جميع التبعيات: cd client
npm install
python_server/src وإنشاء مجلد بيئة افتراضية Python. ثم قم بتثبيت جميع التبعيات: cd python_server/src
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
celery_queue/ Folder وإنشاء مجلد بيئة افتراضية Python. ثم قم بتثبيت جميع التبعيات: cd celery_queue
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
sudo chmod +x ./run.sh
sudo ./run.sh
npm start --prefix client/
cd python_server/src
source venv/bin/activate
python app.py
cd celery_queue
source venv/bin/activate
celery -A tasks worker