هل تبحث عن برنامج تعليمي لـ DAML؟ إذا قمت بذلك ، فقد أتيت إلى المكان الصحيح. في هذه المقالة ، سنقوم بعمل تعليمي مناسب لـ DAML blockchain.
سيتناول البرنامج التعليمي الفهم الأساسي لـ DAML ، وسبب الحاجة إليه ، وأمثلة على التعليمات البرمجية لجعلها أكثر منطقية. إذا كنت مبتدئًا ، فستجد البرنامج التعليمي لبدء استخدام DAML. باختصار ، هذا هو برنامج تعليمي DAML مثالي للمبتدئين. ومع ذلك ، فهو ليس برنامجًا تعليميًا كاملاً لتطوير DAML لأننا لن ننشئ أي تطبيق كامل في البرنامج التعليمي لأنه خارج نطاق المقالة.
دروس DAML: الشروع في استخدام DAML
إذن ، ما هو DAML؟ دعنا نستكشف.
هل تحتاج إلى تحديث لـ blockchain؟ تحقق من دليل Blockchain للمبتدئين للبدء! تحقق أيضًا من الدليل النهائي لـ DAML.
ما هو DAML?
DAML هي لغة برمجة مفتوحة المصدر لتطوير التطبيقات الموزعة. يتيح للمطورين إنشاء تلك التطبيقات الموزعة بإيجاز وسرعة وبشكل صحيح.
تحافظ Hyperledger على DAML وجعلها جزءًا من نظامها البيئي. هذا أيضًا يجعل DAML إحدى لغات البرمجة التي تعمل على رأس منصات blockchain الرائدة الموجودة هناك. نعم ، يتم قبوله من خلال منصات متعددة. كما أنه يسهل على المطورين تطوير تطبيقاتهم بسرعة ثم تحديد المكان الذي يريدون نشره فيه.
ما الذي يجعل DAML مميزة للغاية?
DAML هي لغة برمجة لبناء لغات موزعة. مع إدراك المزيد والمزيد من الشركات لأهمية التطبيقات الموزعة ، توفر DAML أداة لتلك الشركات ومطوريها لتحقيق أهدافهم. إنها ، في الواقع ، إحدى تلك الأدوات الرائعة التي تتيح لك التحكم في تطبيقك الموزع.
يعالج DAML مشاكل التصميم الصعبة بشكل مباشر لأنه يوفر حلاً للمشاكل المعقدة مثل مزامنة الحالة الموزعة والتشفير. لتحقيق الهدف ، أعيد تصميمه.
يتم تجريد التصميم الأساسي أو التنفيذ عندما يكتب المطور تطبيق blockchain الخاص به. يتيح للمطور التركيز على المتطلبات المجردة والسماح لـ DAML بالتعامل مع كل العمل الشاق. من خلال معرفة أن DAML خاص ، يمكنك تقدير تعلم DAML بشكل أفضل باستخدام برنامج DAML التعليمي الخاص بنا.
ميزات DAML
في هذا القسم من برنامج DAML التعليمي الخاص بنا ، سنتعرف على ميزات DAML الرئيسية.
نموذج البيانات: يتيح DAML للمطورين إنشاء مخططات بيانات معقدة لتطبيقاتهم بسهولة. هذا يجعل من السهل تصميم وتنفيذ المتطلبات المعقدة أو العمليات التجارية.
أذونات دقيقة: يتم ضبط عقود DAML لتعيين الأذونات. هذا يعني أنه يمكن للمطورين تحديد من يمكنه توقيع العقد ، ومن يمكنه رؤيته ، وفي أي شروط.
منطق الأعمال: يمكن أيضًا دمج منطق الأعمال بسهولة. يمكن للمطور كتابة الإجراءات المطلوبة في العقد وتأكيداته ومعلماته والمزيد!
الاختبار القائم على السيناريو: يمكن أيضًا إجراء الاختبار المستند إلى السيناريو باستخدام DAML. يتيح للمطور اختبار منطق الأعمال والجوانب الأخرى للتطبيقات اللامركزية ، مثل سير العمل.
ميزات وقت التشغيل
بصرف النظر عن الميزات الأساسية الأربعة المذكورة أعلاه ، لدينا أيضًا DAML Runtime. يشير وقت التشغيل إلى البيئة التي أنشأها التطبيق أثناء تنفيذه. في هذه الحالة يحتوي على ميزات رئيسية تجعل البرنامج يعمل بكفاءة وفعالية. من خلال التعرف عليها في البرنامج التعليمي لـ DAML ، ستتمكن من ترسيخ تعلم DAML الخاص بك.
دعونا نتحدث عنها أدناه.
تجريد التخزين → يوفر تجريد التخزين طبقة ثبات تضمن أن جميع برامج DAML غير محددة التخزين. بعبارات بسيطة ، لا تعتمد برامج DAML على التخزين المختار حيث يمكنها تحويل البيانات المذكورة إلى تنسيق قابل للهضم.
شيكات التفويض → يتحقق التفويض من جميع الإجراءات الواردة في العقد. إذا لم يجتاز الإجراء التفويض المناسب ، فلن يُسمح له بالتنفيذ.
سيؤدي العقد بعد ذلك إلى حدوث خطأ في وقت التشغيل وإبلاغ المشتري أو المطور.
تتبع المساءلة → وقت التشغيل مسؤول أيضًا عن تتبع المساءلة. يتأكد من أن الطرفين يدخلان طواعية في الاتفاق. لتحقيق ذلك ، كان من المطلوب توقيعات الموقعين. يتم ذلك لحماية المشتري من أي سلوك قسري من المنظم أو البائع.
التركيب الذري → يدعم DAML التصميم الذري. هذا يعني أن جميع الإجراءات يتم تنفيذها بشكل ذري وبالتالي يمكن إما ارتكابها أو عدم ارتكابها على الإطلاق. لا يوجد حل وسط عندما يتعلق الأمر بتنفيذ العقود. يتم ذلك لضمان سلامة سير العمل وإبعاد المستغلين.
لا يوجد إنفاق مزدوج → مع وقت تشغيل DAML ، تم تصميم العقود للتأكد من عدم إمكانية الإنفاق المزدوج. هذا يعني أنه لا يمكن تنفيذ نفس العقد مرتين.
بحاجة إلى معرفة الخصوصية → تقدم DAML مستوى معاملة فرعية ، مما يجعل المعلومات متاحة عند الموافقة عليها.
التنفيذ الحتمي → أخيرًا ، يدعم وقت التشغيل التنفيذ الحتمي. هذا يعني أن تأثير أي إجراء يعتمد على الحالة الحالية لدفتر الأستاذ.
الشروع في العمل مع DAML
في هذا القسم من برنامج DAML التعليمي الخاص بنا ، سننظر في دليل البدء الخاص ببرنامج DAML blockchain التعليمي. قبل أن تتمكن من استخدام DAML ، تحتاج إلى تثبيته.
لاستخدام DAML ، تحتاج إلى اتباع عملية من خطوتين.
1) تثبيت التبعيات
لاستخدام DAML ، تحتاج أولاً إلى تثبيت التبعيات. للقيام بذلك ، تحتاج إلى تنزيل SDK وتثبيته على نظام التشغيل الخاص بك.
بخلاف ذلك ، سيكون من الأفضل إذا كان لديك أيضًا ما يلي
- Visual Studio Code أو أي بيئة تطوير متكاملة متوافقة
- دينار 8 أو أكبر.
2) تثبيت SDK
إذا كنت تستخدم Windows ، فيمكنك الانتقال إلى ملف رابط وتنزيل الملف القابل للتنفيذ.
بالنسبة لنظام التشغيل Linux أو MAC ، تحتاج إلى تشغيل الأمر التالي باستخدام curl.
curl –sSL https://get.daml.com/ | ش
سيطلب منك إضافة ~ / .daml / bin إلى متغير PATH. بمجرد الانتهاء ، تكون جاهزًا لاستخدام DAML.
دليل المبتدئين التعليمي DAML
ألم تعمل أبدًا مع DAML؟ بعد ذلك ، لا تقلق ، كما في هذا القسم ، سنستعرض أساسيات DAML وأنواع بياناتها وقوالبها ووظائفها وتعبيراتها وما إلى ذلك.!
ولكن ، قبل أن نفعل ذلك ، نحتاج إلى فهم نموذج DA Ledger (الأصول الرقمية). إنه جزء مهم من برنامج DAML التعليمي الخاص بنا.
نموذج DA Ledger
نموذج DA Ledger هو جوهر DAML. يوفر مهام سير عمل متعددة الأطراف بمساعدة دفتر الأستاذ المشترك الافتراضي. للحصول على فكرة أفضل ، يمكنك التحقق من لقطة الشاشة أدناه.
المصدر: وثائق DAML
يستخدم النموذج لتحديد هيكل دفاتر الأستاذ DA (ماذا) ونموذج التكامل (من يمكنه الطلب) ونموذج الخصوصية (من يمكنه الرؤية).
للحصول على فهم أكثر تعمقًا لنموذج DA Ledger ، تحقق من الوثائق الرسمية هنا.
العقود الأساسية
في قلب DAML ، ستجد دفتر أستاذ DAML. سنمر في نموذج صغير لأنه سيساعدنا على فهم المفاهيم الأساسية ، بما في ذلك المعاملات وعقود القوالب والموقعين ووحدات DAML والملفات.
يلتزم
يحتوي DAML Ledger على قائمة “الالتزامات”. بعبارات بسيطة ، الالتزام هو معاملة مرسلة إلى دفتر الأستاذ. اعتبارًا من العقد ، يمكنك اعتبارها معاملة نشطة تحتاج إلى التنفيذ ، ويعتمد تنفيذها على سمات العقد وشروطه.
وحدات وملفات DAML
قبل أن تبدأ ، تحتاج إلى ذكر إصدار DAML. يمكن القيام بذلك في الجزء العلوي من ملف DAML. سيُعلم الإصدار المترجم بإصدار اللغة الذي يتم استخدامه.
اللعنة 1.2
لاستيراد الوحدة ، تحتاج إلى استخدام الكلمة الأساسية “وحدة”.
وحدة الرمز حيث
تعليقات
إذا كنت ترغب في إضافة تعليقات ، يمكنك القيام بذلك باستخدام الكلمة الأساسية “-“.
– هذا تعليق
القوالب
يستخدم قالب لتحديد نوع العقد. يحدد هذا الكيانات التي لديها حق الوصول لتنفيذ العقد. يمكنك التفكير في العقود على أنها نماذج للقوالب.
رمز القالب
مع
المالك: حفلة
أين
المالك الموقع
كما ترى ، قمنا بتعريف قالب رمز باستخدام الكلمة الأساسية “template”. يتطلب الأمر أيضًا مناقشة. شيء آخر يمكنك ملاحظته هو أنه موجه للمسافات البيضاء. إذا كنت قد استخدمت Python من قبل ، فسوف تفهم كيف يتم هيكلة الكود والقصد منه.
أخيرًا ، يمكنك رؤية الكلمة الأساسية الموقعة ، والتي تشير إلى الموقعين على مثيلات العقد. سلطة هذا الطرف مطلوبة لاتخاذ إجراءات بشأن العقد ، بما في ذلك أرشفته وإنشائه.
فهم السيناريوهات باستخدام القوالب
الآن بعد أن فهمنا البنية الأساسية للقالب ، سنقوم الآن بفهم السيناريوهات باستخدام نموذجين آخرين في برنامج DAML التعليمي الخاص بنا. ولكن قبل أن نفعل ذلك ، دعونا نفهم بالضبط ما هو “سيناريو.“
سيناريو
يمكن وصف السيناريو بشكل أفضل على أنه وصفة اختبار يمكن استخدامها للتحقق مما إذا كانت القوالب تتصرف كما ينبغي. يمكن استخدامه لإجراء اختبارات المعاملات. دعونا نلقي نظرة على المثال أدناه.
token_test_one = السيناريو
سام <- getParty “sam”
تقدم سام تفعل
إنشاء رمز مع المالك = sam
ما ورد أعلاه هو السيناريو الأساسي الذي يتعامل مع الرمز المميز لحزب يعرف باسم “سام”.
لتشغيل السيناريو ، تحتاج إلى استخدام استوديو DAML.
لمعرفة المزيد حول السيناريو ، نقترح عليك مراجعة صفحة توثيق السيناريو هنا.
نوع البيانات
تمامًا مثل أي لغة برمجة ، تدعم DAML أيضًا أنواع البيانات. تتيح لك أنواع البيانات تحديد متغير وتخزين البيانات هناك.
لتسهيل الأمر عليك ، دعنا نفكر في النماذج كجداول قاعدة بيانات. الآن ، يمكنك حفظ البيانات في القالب ومساعدة نفسك على إدارتها بسهولة من خلال تصميم القالب.
هناك العديد من أنواع البيانات الأصلية التي يأتي بها DAML. وهي تتضمن ما يلي.
- الطرف → لتخزين هوية الكيان. يمكن للأطراف تقديم المعاملات وتوقيع العقود.
- نص → يخزن حرف Unicode
- Int → يخزن الأعداد الصحيحة 64 بت
- Decime → يخزن أرقام النقطة الثابتة
- التاريخ → يخزن التاريخ
- الوقت ← يخزن الوقت بالتوقيت العالمي المنسق
- RelTime → يخزن فرق التوقيت
- ContractId → إشارة إلى نوع العقد
يوجد أدناه رمز لفهم بعض الأنواع الأصلية.
original_test = سيناريو تفعل
سام <- getParty “Sam”
ميستيريو <- getParty “Mysterio”
يترك
my_int = –657
my_dec = 0.001: عشري
my_text = “سام”
my_bool = خطأ
تأكيد (سام / = ميستيريو)
تأكيد (-my_int == 123)
تأكيد (1000.0 * my_dec == 1.0)
تأكيد (my_text == “Sam”)
يدعم DAML أيضًا أنواع البيانات الأخرى بما في ذلك المجموعات والقوائم والسجلات.
للتعرف على أنواع البيانات في DAML ، تحقق من صفحة التوثيق الخاصة بهم هنا.
تحويل البيانات باستخدام الاختيارات
تدعم DAML الثبات. وهذا يعني أنه كلما دعت الحاجة إلى تحديث البيانات ؛ يجب إنشاء عقد جديد مع البيانات الجديدة. ومع ذلك ، ليس هذا هو الحال دائمًا حيث يوجد دائمًا شيء صغير جدًا لتغييره وتعديله. على سبيل المثال ، قد ترغب الشركة في تغيير رقم هاتفها للقيام بذلك باستخدام اختيارات.
دعونا نلقي نظرة على مثال مأخوذ في وثائق DAML.
نموذج الاتصال
مع
المالك: حفلة
حفلة حفلة
العنوان: نص
الهاتف: نص
أين
المالك الموقع
يمكن لمالك وحدة التحكم
تحديث الهاتف
: جهة اتصال ContractId
مع
هاتف جديد: نص
فعل
إنشاء هذا باستخدام
هاتف = هاتف جديد
معظم الكود واضح بذاته أعلاه. الشيء الوحيد الذي تحتاج إلى معرفته هنا هو أننا حددنا خيارًا يُعرف باسم “UpdateTelephone”.
يمكن أيضًا استخدام الاختيارات كتفويض. أخيرًا ، يمكن أيضًا دمجها في نموذج دفتر الأستاذ.
لمعرفة المزيد حول اختيارات DAML ، يمكنك التحقق من صفحة التوثيق الرسمية هنا.
إضافة قيود على العقد
يمكنك أيضًا إضافة قيود إلى عقد DAML باستخدام كلمة “ضمان”. يمكنك أيضًا استخدام الآلية الأخرى التي تستخدم الكلمات الأساسية للتأكيد والإحباط والخطأ لإضافة قيود إلى العقد.
ولكن ، قبل القيام بذلك ، يجب أن يكون لديك شروط مسبقة مناسبة للقالب في عقدك.
لمعرفة المزيد حول القيود والقيود ، يمكنك التحقق من الوثائق هنا.
الأطراف والسلطة
DAML لديها طريقة مناسبة للتعامل مع الأطراف وتفويضهم للوصول إلى العقد. يمكنك استخدامها ليس فقط لتمرير السلطة ولكن أيضًا لكتابة خيارات متقدمة يمكنها تغيير كيفية عمل دفتر الأستاذ. هذه المرونة مهمة لأنها تمنح الأطراف أدوات كافية لتغيير الأشياء وكذلك الحفاظ على الفكرة الأساسية للعقد سليمة.
على سبيل المثال ، يمكنك منع إبطال IOU أو إجراء تفويض لمرة واحدة باستخدام اقتراح-قبول سير العمل. هناك الكثير من الخيارات التي يتم إجراؤها داخل DAML لتوفير حل لكل سيناريو تقريبًا.
اقرأ المزيد عن الأحزاب والسلطات هنا.
استنتاج
هذا يقودنا إلى نهاية برنامج DAML التعليمي الخاص بنا. في هذا البرنامج التعليمي ، تمكنا من التعرف على DAML وما يجعلها مميزة. تعلمنا أيضًا عن الأعمال الداخلية لـ DAML والجوانب الرئيسية الأخرى للغة البرمجة ، مثل أنواع البيانات والسيناريوهات وما إلى ذلك. ستساعدك هذه المفاهيم الأساسية على الانخراط في مشاريع DAML التي ستأخذها في المستقبل.
لذا ، ما رأيك في DAML؟ هل تعتقد أن لديها القدرة على أن تصبح لغة برمجة في كل مكان لإنشاء تطبيقات لامركزية؟ التعليق أدناه، واسمحوا لنا أن نعرف.