أهلا بك في دروس النسيج Hyperledger.
في هذا البرنامج التعليمي ، سوف نتعلم كيفية إنشاء تطبيق Hyperledger الأول الخاص بك وأشياء أخرى مهمة إذا كنت أحد المطورين الذين استثمروا بعمق في blockchain وترغب في البدء في Hyperledger Fabric.
يتطلب أي إطار عمل على مستوى المؤسسة خبرة للعمل. إذا كنت مبتدئًا ، فستجد نفسك تكافح كثيرًا لإصلاح الأشياء الصغيرة. لهذا السبب من المهم أن تبدأ مبكرًا وتتدرب على طريقتك الخاصة.
لكن لماذا نسيج هايبرليدجر وليس أي إطار عمل blockchain آخر للمؤسسة?
والسبب هو أن Hyperledger Fabric هو إطار عمل blockchain من الدرجة الأولى يوفر تقنية دفتر الأستاذ الموزع (DLT). يحتوي على بعض الميزات الرائعة التي تجعله خيارًا مثاليًا للمؤسسة.
يمكنك قياس شعبيتها من خلال التحقق من أعضائها ، والتي تتكون من CISCO و IBM و Intel و SAP و Accenture وغيرها.
ما هو نسيج هايبرليدجر?
Hyperledger Fabric هو إطار عمل مفتوح المصدر على مستوى المؤسسات. يعتمد على تقنية دفتر الأستاذ الموزع المصرح به لتوفير التطبيقات والحلول التي تشتد الحاجة إليها. تعمل مؤسسة Linux Foundation على عدد متنوع من المشاريع ، ومن بينها Hyperledger Fabric.
نظرًا لأنه مفتوح المصدر ، يمكن لأي شخص الانضمام إلى المشروع والمساهمة فيه. في الوقت الحالي ، تعمل 35 منظمة معًا لجعل Hyperledger Fabric أفضل إطار عمل مؤسسي.
في جوهرها ، نسيج Hyperledger قابل للتكوين ووحدات معيارية. هذا يعني أنه يمكن للمؤسسات العمل بسلاسة باستخدام إطار العمل. كل هذه الميزات المرغوبة تجعل Hyperledger Fabric خيارًا رائعًا! في وقت كتابة هذا التقرير ، يمكنك تجربة Hyperledger Fabric v1.4 ، والذي يأتي بميزات ووظائف جديدة.
وظائف نسيج هايبرليدجر
يأتي Hyperledger Fabric بخمس ميزات رئيسية. وهم على النحو التالي
- إدارة الهوية: إدارة الهوية أمر بالغ الأهمية لأي شبكة مرخص لها. هذا هو السبب في أن إدارة الهوية هي إحدى الميزات الحاسمة في نسيج Hyperledger. من خلال منح المسؤول تعيين إدارة الهوية المناسبة ، يمكن للمؤسسات التأكد من أنها تستخدم طبقات متعددة من الأذونات.
- معالجة فعالة: نسيج Hyperledger فعال. هذا بسبب تعيين أدوار الشبكة كنوع عقدة. يتم توفير الكفاءة أيضًا من خلال السماح بتنفيذ المعاملة بشكل منفصل عن الالتزام والطلب.
- تصميم وحدات: يستخدم Hyperledger Fabric تصميمًا معياريًا ، مما يعني أنه من السهل دمج الخدمات أو الأنظمة الأخرى فيه. هذا يعني أيضًا أنه يمكنك تحديد خوارزمية الإجماع والهوية وما إلى ذلك.
- الخصوصية والسرية: يوفر Hyperledger Fabric أيضًا السرية والخصوصية المناسبتين ، وهو أمر مهم جدًا للمؤسسات. إنها توفر قنوات بيانات مناسبة حتى لا تتسرب المعلومات ، ويمكن الحفاظ على السرية بأي ثمن.
- وظيفة Chaincode: يوفر Hyperledger Fabric وظيفة chaincode ، والتي تتيح استدعاء المنطق فقط عند استدعاء نوع معين من المعاملات.
تشمل الميزات الرئيسية الأخرى لنسيج Hyperledger رمز الجودة ، والمصدر المفتوح ، وقابلية التوسع الكبيرة والكفاءة ، والاستخدام على مستوى الصناعة.
دروس النسيج Hyperledger
قبل البدء في تطوير أحد التطبيقات ، من الأفضل فهم بنية نظام Hyperledger Fabric. من خلال القيام بذلك ، يمكننا فهم كيفية عملها داخليًا. يمكن بعد ذلك استخدام هذه المعرفة لتطوير أول تطبيق Hyperledger Fabric لك.
بنية النظام
في الجوهر ، لدينا عقد. تتواصل العقد مع بعضها البعض وتشكل شبكة. ومع ذلك ، هناك برامج يتم تشغيلها بواسطة blockchain نفسها. هم chaincode. يعتبر رمز السلسلة مسؤولاً عن الاحتفاظ ببيانات دفتر الأستاذ والحالة ، كما يتولى تنفيذ المعاملات.
في Hyperledger Fabric ، يأخذ chaincode أكبر قدر من التركيز حيث يتم تنفيذ المعاملات عليه كعمليات. من ناحية أخرى ، تحتاج المعاملات إلى المصادقة عليها بالتأييد. يمكن فقط الالتزام بالمعاملات المعتمدة.
المعاملات
يمكن أن تكون المعاملات على Hyperledger Fabric من نوعين:
- نشر المعاملات: هذا النوع من المعاملات مسؤول عن إنشاء رمز سلسلة جديد مع معلمة كبرنامج. بمجرد الانتهاء من ذلك ، يُقال إن chaincode “مثبت” على blockchain.
- استدعاء المعاملات: معاملات الاستدعاء هي المعاملات التي يتم تنفيذها في سياق عمليات نشر رمز السلسلة السابقة.
هياكل بيانات Blockchain
بنية البيانات الأساسية المستخدمة في blockchain هي مخزن القيمة الرئيسية (KVS). المفاتيح هي في الغالب أسماء ، والقيمة هي النقط. يمكن للرموز التسلسلية معالجة بنية البيانات بمساعدة عمليتي KVS التاليتين.
- وضع
- احصل على
يُنظر إلى بنية البيانات بأكملها على أنها دولة.
موازنة
دفتر الأستاذ هو تسلسل التغييرات الناجحة في الحالة والمحاولات الفاشلة أيضًا. يتم ترتيبها بحيث يمكن الرجوع إليها لاحقًا. أيضًا ، يتم طلب كتل hashchain من المعاملات. يحتوي دفتر الأستاذ على كتل بالترتيب ، والتي بدورها تحتوي على صفيف معاملات مرتب.
العقد
يمكن أن تكون العقد أي كيان اتصال داخل الشبكة.
عميل
العميل هو شخص يمكنه التصرف نيابة عن المستخدمين النهائيين.
الأقران
يعالج Peer حالة دفتر الأستاذ ويضمن عمل الشبكة على النحو الأمثل. يمكن للأقران أن يؤيدوا الأقران ، مما يساعد على المصادقة على المعاملة.
كتابة أول تطبيق Hyperledger Fabric الخاص بك
الآن وقد فهمنا الهيكل المعماري لـ Hyperledger Fabric ، فقد حان الوقت الآن لإنشاء تطبيقك الأول. من خلال استعراض التطبيق ، ستتمكن من فهم كيفية عمل تطبيقات Fabric. في هذا البرنامج التعليمي ، ستتعلم كيفية استخدام العقود البسيطة والذكية والتطبيقات الأخرى في إطار العمل.
لتسهيل تطويرنا ، سنستخدم تطبيق SDK لسهولة الرجوع إلى المفتاح
الوظائف ، بما في ذلك استدعاء العقود الذكية والاستفسارات الأخرى.
تتضمن الخطوات الثلاث الأساسية التي يجب عليك اتباعها أثناء تطوير تطبيق Hyperledger fabric الخاص بك ما يلي:
- قم بإعداد بيئة التطوير. تمنح بيئة التطوير تطبيقك الشبكة اللازمة للعمل معها. سوف يمنحك القدرة على جعل عقدك الذكي يعمل أيضًا.
- التعرف على نماذج العقود الذكية. هنا ، عليك مراجعة العقد الذكي وفهم معاملاته. سنقوم بتشغيل الاستعلامات كما تم محاكاتها بواسطة التطبيقات ونقوم أيضًا بتحديث دفتر الأستاذ باستخدامه.
- تطوير نموذج تطبيق: في الخطوة الأخيرة ، ستقوم بإنشاء نموذج تطبيق باستخدام العقد الذكي.
بناء الشبكة الأولى
قبل أن نبدأ بالتطبيق ، فلنقم ببناء شبكتنا الأولى. للبدء ، نحتاج إلى تثبيت بعض المتطلبات الأساسية. ستضمن هذه المتطلبات الأساسية أن كل شيء يعمل على النحو المنشود.
تحقق من دليل التثبيت الخاص بهم هنا.
تحقق أيضًا من Hyperledger Composer: أنشئ مؤسستك Blockchain
قد ترغب في تثبيت الثنائيات والعينات وصور عامل الإرساء. تحقق من دليل التثبيت هنا.
بمجرد تثبيت العينات ، ستجد عينات النسيج المضمنة فيها. يجب أن يتم تضمينها في مستودع “عينات النسيج”. يوجد في المستودع عينة الشبكة الأولى.
للانتقال إلى هذا الدليل ، انتقل إلى المجلد باستخدام الأمر cd على النحو التالي.
عينات نسيج القرص المضغوط / الشبكة الأولى
لتشغيل نموذج الشبكة الأولى ، تحتاج إلى استخدام البرنامج النصي byfn.sh. تم تصميم البرنامج النصي لبدء المشروع بسرعة مع أربعة أقران. يمثل الأقران الأربعة منظمتين مختلفتين. ستطلق أيضًا الحاوية ورمز السلسلة والمعاملات. ستمكن الحاوية المزيد من الأقران من الانضمام إلى الشبكة.
توليد عناصر الشبكة
يمكنك الآن إنشاء الشهادات والمفاتيح لكيانات الشبكة. للقيام بذلك ، تحتاج إلى تشغيل الأمر التالي.
.byfn.sh توليد
سيُطلب منك التأكيد قبل بدء العملية. اضغط على Y لبدء تعبئة الشبكة بالمعلومات الضرورية ، بما في ذلك تشغيل خدمات الطلب والتكوين وما إلى ذلك.
تشغيل الشبكة
بعد ذلك ، نحتاج إلى تشغيل الشبكة. يمكن تشغيل الشبكة باستخدام الأمر البسيط أدناه.
./byfn.sh يصل
بمجرد تشغيل الأمر ، سوف يقوم الإطار بتجميع صور Golang chaincode. بالإضافة إلى ذلك ، سيتم إطلاق الحاويات المرتبطة أيضًا لتزويد أقران جدد بطريقة للانضمام إلى الشبكة.
بشكل افتراضي ، سترى انطلق في العمل. ذلك لأن Go هي اللغة الافتراضية لرمز السلسلة. لكن هذا لا يعني أنه لا يمكنك استخدام لغات البرمجة الأخرى. يدعم Chaincode أيضًا Node.js و Java. للتغيير إلى عقدة ، يمكنك استخدام الأمر التالي.
.بواسطة fn.sh up -l node
وبالمثل ، يمكنك ذلك التغيير إلى Java إذا كنت بحاجة إلى.
.عن طريق fn.sh up -l java
إذا كنت ترغب في استخدام لغات متعددة للرمز التسلسلي ، فأنت بحاجة إلى استخدام خدمة الطلب بما في ذلك Raft أو Kafka.
./byfn.sh up -o etcdraft
./byfn.sh up -o kafka
في كل مرة تستخدم فيها الأمر ، ستطلب التأكيد مرة أخرى قبل تنفيذ الأمر.
لفهم كيفية إنشاء شبكتك الأولى وصيانتها بشكل أكبر ، راجع البرنامج التعليمي لبناء الشبكة هنا.
إطلاق الشبكة
الآن ، بعد أن قمت بتثبيت عينات وقمت بالاطلاع على صفحة المتطلبات الأساسية ، فقد حان الوقت الآن لبدء تشغيل الشبكة.
من أجل البساطة ، لن نستخدم JavaScript. أيضا ، أنت بحاجة إلى دليل فرعي fabcar. اصنع نسخة محلية من الريبو من القماش أيضًا.
لبدء الشبكة ، تحتاج إلى استخدام البرنامج النصي shell الخاص بـ startFabric.sh. بمجرد إطلاقها ، ستحصل على شبكة blockchain بها مراجع مصدقة وطلبات شراء وأقران وما إلى ذلك. أثناء استخدام دليل فرعي fabcar ، سيتم تلقائيًا تثبيت عقد FabCar الذكي وبدء تشغيله.
أمر بدء الشبكة كالتالي:
./startFabric.sh جافا سكريبت
تثبيت التطبيق
الآن ، حان الوقت لتثبيت التطبيق. لكن قبل أن نفعل ذلك ، نحتاج إلى تثبيت التبعيات.
تثبيت npm
سيبدأ الأمر أعلاه في تثبيت التبعيات المهمة المحددة في ملف package.json
في الحزمة ، تشمل الفئات المهمة التي سيتم بدؤها
- فئة شبكة النسيج → تتيح المعاملات والهويات والمحافظ
- fabric-ca-client → تسجيل المستخدمين في سلطات إصدار الشهادات الخاصة بهم
بمجرد الانتهاء ، سننتقل إلى دليل fabcar / javascript. دعنا نلقي نظرة على ملفات الدليل أدناه:
- encrollAdmin.js
- node_modules
- package.json
- registerUser.js
- استدعاء js
- package-lock.json
- query.js
- محفظة جيب
التواصل مع المرجع المصدق
الآن ، بعد أن أصبح لدينا شبكة قيد التشغيل ، فلنتعلم كيفية التواصل مع مرجع مصدق.
طلب توقيع الشهادة (CSR)
مهمتنا الأولى هي الخوض في عملية المسؤولية الاجتماعية للشركات. في هذه العملية ، مسؤل يتصل بالمرجع المصدق لإنشاء الشهادة العامة والخاصة وشهادة X.509. البرنامج المعتاد القيام به هو register.js
لتسجيل المسؤول ، استخدم الأمر التالي.
تسجيل العقدةAdmin.js
يتم الآن تخزين جميع المعلومات في ملف محفظة جيب الدليل.
يجب اتباع نفس العملية إذا كنت تريد تسجيل مستخدم آخر. دعونا نحاول تسجيل مستخدم آخر – مستخدم
العقدة reisterUser.js
سيؤدي هذا إلى تسجيل المستخدم الجديد وتخزين بيانات الاعتماد الخاصة به في المحفظة إلى جانب المسؤول.
الاستعلام عن دفتر الأستاذ
نظرًا لأن شبكة blockchain لديها نسخة من دفتر الأستاذ ، يمكنك الاستعلام عنها للعثور على المعلومات. دفاتر الأستاذ للقراءة فقط ولهذا السبب يمكن تنفيذ استعلامات القراءة فقط. للحصول على فهم أفضل ، دعنا نلقي نظرة على الصورة أدناه.
المصدر: مستندات Hyperledger Fabric
القيم الموجودة في دفتر الأستاذ تبقى أيضًا في ملف دولة عالمية. هذه هي قيمة زوج المفاتيح التي تمت مناقشتها مسبقًا في البرنامج التعليمي. لذلك ، يمكن أن يكشف الاستعلام عن البيانات من المفاتيح. الخبر السار هو أنه يمكنك استخدام قواعد البيانات مثل CouchDB. يمكن تكوين دول العالم لاستخدام قواعد البيانات العلائقية.
للحصول على قائمة بجميع السيارات في دفتر الأستاذ ، قم بتشغيل الأمر التالي,
استعلام العقدة. js
لفهم كيفية عمل الاستعلام بشكل أفضل ، قد ترغب في الانفتاح query.js ملف وتصفحه. دعنا نراجعها أدناه.
const {FileSystemWallet، Gateway} = تتطلب (“شبكة النسيج”) ؛
في السطر أعلاه ، يتم إجراء اتصال بالشبكة
بعد ذلك ، يتم إنشاء بوابة للتطبيق للاتصال. يتم ذلك باستخدام الأسطر أدناه.
بوابة const = بوابة جديدة () ؛
await gateway.connect (ccp، {wallet، Identity: ‘user1’}) ؛
ال ccp يستخدم لتحديد هوية المستخدم ومعلومات المحفظة ذات الصلة.
نظرًا لأن شبكة Hyperledger Fabric تدير قنوات متعددة ، فمن المهم الاتصال بقناة معينة للتطبيق.
عقد const = network.getContract (“fabcar”) ؛
فهم العقد الذكي
لفهم العقد الذكي بشكل أفضل ، دعنا ننتقل إليه. كما ستعرض المعاملات التي تمت من خلالها.
للوصول إليه ، عليك الذهاب إلى الدليل الفرعي chaincode / fabcar / javascript / lib. بمجرد الوصول إلى هناك ، افتح fabcar.js في محرر.
هناك سترى استخدام فئة العقد لتحديد العقد الذكي. علاوة على ذلك ، ستكون هناك معاملات واضحة محددة في العقد الذكي ، بما في ذلك الاستعلام عن السيارات ، والاستعلام عن السيارات ، و initLedger ، و changeCarOwner ، و createCar.
ستبدو المعاملات كما يلي:
استعلام غير متزامن سيارة (ctx ، carNumber) {…}
دعونا نلقي نظرة على معاملة الاستعلام.
استعلام غير متزامن AllCars (ctx) {
const startKey = “CAR0” ؛
const endKey = “CAR999” ؛
const iterator = await ctx.stub.getStateByRange (startKey، endKey) ؛
المصدر: مستندات Hyperledger Fabric
تحديث دفتر الأستاذ: شراء سيارة جديدة
الخطوة الأخيرة هي تحديث دفتر الأستاذ بمعلومات جديدة. في هذه الحالة ، لنقم بإنشاء سيارة جديدة باستخدام الاستدعاء. تحتاج إلى فتح الملف وإضافة الأمر التالي إليه.
في انتظار العقد. تقديم المعاملة (“createCar” ، “CAR12” ، “CarBrand” ، “Model” ، “Color” ، “Owner”) ؛
في الكود أعلاه ، يستدعي التطبيق معاملات العقد الذكي createCar. ستقوم ، في المقابل ، بإنشاء السيارة بخصائصها ، بما في ذلك CarBrand واللون والطراز والمالك.
الآن ، قم بتشغيل الكود التالي لدفعه إلى دفتر الأستاذ
استدعاء العقدة. js
سيؤدي هذا إلى تحديث دفتر الأستاذ ، وستحصل على مخرجات ناجحة.
استنتاج
هذا يقودنا إلى نهاية برنامجنا التعليمي. في البرنامج التعليمي ، كان هدفنا تغطية السطح فقط. إذا كنت تريد الغوص بعمق ، يمكنك التحقق من مستندات Hyperledger Fabric الرسمية الخاصة بهم ، والتي تناقش كل شيء بالتفصيل.
لذا ، هل ستستخدم Hyperledger Fabric لبناء blockchain للمؤسسات؟ التعليق أدناه، واسمحوا لنا أن نعرف.