simple-blockchain · 05
المحافظ والتخزين بـ ranidb
بعد البلوكات والتعدين، الجزء الممتع كان المعاملات. احتجت محفظة تطلع عنوان، وتوقّع المعاملة، وبعدها أحفظ السلسلة عشان ما تبدأ من الصفر كل مرة.
المحفظة والتوقيع
الفكرة أن المحفظة تملك مفتاح خاص ومفتاح عام. أوقّع المعاملة بالمفتاح الخاص، وأقدر أتحقق منها بالمفتاح العام. كذا يصير عندي معنى أبسط للملكية والثقة داخل المشروع.
const transaction = {
sender: wallet.getAddress(),
recipient: otherWallet.getAddress(),
amount: 100,
timestamp: Date.now()
};
const signature = wallet.sign(transaction);
وين يدخل ranidb؟
استخدمت ranidb كتخزين خفيف للسلسلة. بدل ما كل تشغيل يبدأ من genesis block
فقط، أقدر أحفظ chain في ملف JSON وأرجع أكمل عليها. هذا الشيء بسيط، لكنه يقرّب المشروع
من فكرة تطبيق فعلي.
وش ممكن أطور بعدين؟
- تحسين التحقق من التوقيعات داخل كل بلوك.
- فصل الكود إلى وحدات أوضح وأسهل للاختبار.
- إضافة واجهة صغيرة تعرض البلوكات والمعاملات.
- كتابة اختبارات توضّح متى السلسلة تكون صحيحة ومتى تنكسر.
هذه السلسلة بالنسبة لي توثيق للتعلم. المشروع بسيط، لكن كل جزء فيه يفتح باب: التشفير، التحقق، التخزين، والتصميم. وهذا بالضبط السبب اللي خلاني أبنيه.