من الدفعات إلى الرموز
مثّلت الدفعات باستخدام ERC-1155 وواجهات API للنقل والتقسيم والدمج.
في رسالة الماجستير، بنيت نموذجًا أوليًا لتتبّع تاريخ دفعة. أردت أن أتمكّن، بعد تقسيمها أو نقلها أو دمجها، من تتبّعها وصولًا إلى أصولها ووثائقها الداعمة.
مثّلت الدفعات باستخدام ERC-1155 وواجهات API للنقل والتقسيم والدمج.
البيانات الوصفية العامة موجودة على IPFS. وتخزّن MongoDB البيانات المجمّعة للاستعلام عنها. أدرجتُ فحوصًا للاتساق بين سلسلة الكتل وIPFS وMongoDB لتحديد الاختلافات بين التمثيلات المختلفة للدفعة نفسها.
في النموذج الأوّلي، تُجري الواجهة الخلفية التوقيع باستخدام مفاتيح اختبار. ولا تزال إدارة المفاتيح والتوقيعات المزدوجة بين المشاركين بحاجة إلى مزيد من العمل قبل الاستخدام الفعلي.
تنزيل رسالة الماجستير حول التتبّع (PDF) IT · 3.0 MB
واجهات API ومنطق الدُفعات. مواد أصلية من المستودع مع مصادر قابلة للتتبع.
router.get('/batches/:batchId', supplyChainController.getBatchById); router.get('/batches/:batchId/parents', supplyChainController.getBatchParents); router.get('/batches/:batchId/trace-history', supplyChainController.traceBatchHistory); router.get('/batches/:batchId/descendants', supplyChainController.getBatchDescendants); router.post('/batches/:batchId/split', upload.array('attachments'), supplyChainController.splitBatch); router.post('/batches/:batchId/transfer', supplyChainController.transferBatch); router.delete('/batches/:batchId', supplyChainController.burnBatch); router.get('/batches/:batchId/status', supplyChainController.getBatchStatus); router.put('/batches/:batchId/contamination', supplyChainController.setContaminationStatus); router.post('/batches/:batchId/contaminate', supplyChainController.contaminateBatch);علّمتني نمذجة تقسيم دفعات المنتجات وتحويلاتها أن أحدّد العلاقات قبل اختيار طريقة تخزينها. كما يساعدني التمييز بين السجلات الأصلية والبيانات المستخدمة للاستعلام عنها على تكامل الأنظمة.
نموذج أولي لرسالة الماجستير، اختُبر على شبكة Ethereum محلية باستخدام Ganache ومفاتيح اختبار.
أخبرني بما تريد بناءه أو تحسينه، ومن سيستخدمه، وما القيود التي تواجهك. سأتواصل معك لنحدّد معًا نقطة البداية.