מדריך DAML: תחילת העבודה עם DAML

האם אתה מחפש מדריך DAML? אם כן, הגעת למקום הנכון. במאמר זה, אנו עורכים הדרכה נכונה של DAML blockchain.

ההדרכה תעבור הבנה בסיסית של DAML, מדוע יש צורך בכך, ודוגמאות קוד כדי להפיק ממנו יותר הגיון. אם אתה מתחיל, תמצא את המדריך להתחלה עם DAML. בקיצור, מדובר בהדרכה מושלמת של DAML למתחילים. עם זאת, זה לא הדרכה מלאה לפיתוח DAML מכיוון שאנחנו לא הולכים לבנות שום יישום שלם במדריך מכיוון שהוא מעבר לתחום המאמר..

מדריך DAML: תחילת העבודה עם DAML

מדריך DAML

אז מה זה DAML? בוא נחקור.

זקוק לרענון של בלוקצ’יין? עיין במדריך Blockchain למתחילים כדי להתחיל! כמו כן, עיין במדריך האולטימטיבי שלנו ל- DAML.

מה זה DAML?

DAML היא שפת תכנות קוד פתוח לפיתוח יישומים מבוזרים. זה מאפשר למפתחים ליצור את היישומים המבוזרים הללו באופן תמציתי, מהיר ונכון.

Hyperledger מתחזקת DAML והפכה אותה לחלק מהמערכת האקולוגית שלה. זה גם הופך את DAML לאחת משפות התכנות הפועלות על גבי פלטפורמות הבלוקצ’יין המובילות שם. כן, זה מקובל על ידי מספר פלטפורמות. זה גם מקל על מפתחים לפתח במהירות את היישום שלהם ואז להחליט היכן הם רוצים לפרוס אותו.

מה הופך את DAML למיוחדת כל כך?

DAML היא שפת תכנות לבניית שפות מבוזרות. כאשר יותר ויותר חברות מבינות את חשיבותן של יישומים מבוזרים, DAML מספקת כלי לחברות אלה ולמפתחים שלהן להשיג את יעדיהן. זהו, למעשה, אחד מאותם כלים מדהימים המאפשרים לך לקחת את היישום המבוזר שלך לשליטתך.

DAML מתמודדת חזיתית עם בעיות העיצוב הקשה מכיוון שהיא נותנת מענה לבעיות מורכבות כגון סינכרון מצב מבוזר וקריפטוגרפיה. כדי להשיג את המטרה, היא מעוצבת מחדש.

התכנון או היישום הבסיסי מופשט כאשר מפתח כותב את יישום הבלוקצ’יין שלו. זה מאפשר למפתח להתמקד בדרישה המופשטת ולתת ל- DAML להתמודד עם כל העבודה הקשה. על ידי ידיעתך ש- DAML מיוחד, תוכל להעריך טוב יותר את לימוד ה- DAML באמצעות הדרכת ה- DAML שלנו.

תכונות DAML

בחלק זה של ההדרכה שלנו ב- DAML, נלמד על מאפייני המפתח של DAML.

מודל נתונים: DAML מאפשר למפתחים ליצור תוכניות נתונים מורכבות ליישום שלהם בקלות. זה מקל על תכנון ויישום דרישות מורכבות או תהליכים עסקיים.

אישורים עדינים: חוזי ה- DAML מכווננים להגדרת הרשאות. המשמעות היא שמפתחים יכולים לקבוע מי יכול לחתום על החוזה, מי יכול לראות אותו ובאילו תנאים.

היגיון עסקי: ניתן לשלב בקלות גם את ההיגיון העסקי. מפתח יכול לכתוב פעולות הנדרשות על החוזה, קביעותיו, הפרמטרים שלו ועוד!

בדיקות מבוססות תרחיש: בדיקות מבוססות תרחיש אפשריות גם עם DAML. זה מאפשר למפתח לבדוק את ההיגיון העסקי והיבטים אחרים של האפליקציות המבוזרות שלך, כגון זרימות עבודה.

תכונות זמן ריצה

מלבד ארבע תכונות הליבה שלעיל, יש לנו גם את זמן הריצה של DAML. זמן ריצה מתייחס לסביבה שנוצרה על ידי האפליקציה במהלך ביצועה. במצב זה בעל תכונות מפתח הגורמות לתוכנית לפעול ביעילות וביעילות. על ידי למידה עליהם במדריך DAML, תוכל לבסס את למידת ה- DAML שלך.

בואו נדבר עליהם למטה.

הפשטת אחסון → הפשטת אחסון מציעה שכבת התמדה שמבטיחה שכל תוכניות ה- DAML הן אגנוסטיות לאחסון. במילים פשוטות, תוכניות ה- DAML אינן תלויות באחסון הנבחר מכיוון שהן יכולות להמיר את הנתונים האמורים לפורמט לעיכול.

הפשטת אחסון

בדיקות הרשאה → ההרשאה בודקת את כל הפעולות במסגרת חוזה. אם הפעולה לא תעבור הרשאה מתאימה, היא לא תהיה רשאית לבצע.

daml-tutorial- אישורי בדיקות

לאחר מכן החוזה ישליך על שגיאת זמן ריצה ויידע את הקונה או היזם.

daml-tutorial-error.

מעקב אחריות → זמן הריצה אחראי גם על מעקב אחריות. הוא מוודא כי הצדדים נכנסים מרצונם להסכם. כדי לגרום לזה לקרות נדרשו חתימות חתומות. זה נעשה כדי להגן על הקונה מפני התנהגות כוחנית מצד המארגן או המוכר.

יכולת תאימות אטומית → DAML תומך בתכנון אטומי. המשמעות היא שכל הפעולות מבוצעות באופן אטומי ולכן יכולות להתבצע או בכלל לא. אין דרך ביניים בכל הנוגע לביצוע חוזים. זה נעשה כדי להבטיח את בטיחות זרימת העבודה ולהרחיק את המנצלים.

אין הוצאות כפולות → עם זמן ריצה של DAML, החוזים נועדו לוודא שלא ניתן להוציא כפל הוצאות. המשמעות היא שלא ניתן לבצע את אותו חוזה פעמיים.

פרטיות שצריך לדעת → DAML מציעה רמת תת-עסקאות, אשר הופכת את המידע לזמין עם אישורו.

ביצוע דטרמיניסטי → לבסוף, זמן הריצה תומך בביצוע דטרמיניסטי. המשמעות היא שכל השפעה של פעולה תלויה במצב הנוכחי של הפנקס.

תחילת העבודה עם DAML

בחלק זה של ההדרכה שלנו ב- DAML, נבדוק את המדריך לתחילת העבודה עבור מדריך DAML blockchain. לפני שתוכל להשתמש ב- DAML, עליך להתקין אותו.

כדי להשתמש ב- DAML, עליך לבצע תהליך דו-שלבי.

1) התקנת תלות

כדי להשתמש ב- DAML, ראשית עליך להתקין את התלות. לשם כך, עליך להוריד את ה- SDK ולהתקין אותו במערכת ההפעלה שלך.

מלבד זאת, עדיף שיהיה לך גם את הדברים הבאים

  • קוד Visual Studio או כל סביבת פיתוח משולבת תואמת
  • JDK 8 ומעלה.

2) התקנת SDK

אם אתה משתמש ב- Windows, אתה יכול לעבור אל קישור, ולהוריד את קובץ ההפעלה.

עבור לינוקס או MAC, עליך להפעיל את הפקודה הבאה באמצעות סלסול.

תלתל –SSL https://get.daml.com/ | ש

זה יבקש ממך להוסיף ~ / .daml / bin למשתנה PATH שלך. לאחר שתסיים, אתה מוכן להשתמש ב- DAML.

מדריך למתחילים של DAML Tutorial

מעולם לא עבדת עם DAML? ואז, אל דאגה, כמו בחלק זה, אנו נעבור על יסודות ה- DAML, סוגי הנתונים, התבניות, הפונקציות, הביטויים וכן הלאה.!

אבל לפני שאנחנו עושים זאת, עלינו להבין את מודל ה- Ledger DA (Asset Digital). זהו חלק חשוב בהדרכת DAML שלנו.

מודל ספר חשבונות DA

מודל ספר החשבונות של DA הוא הליבה של DAML. הוא מציע תהליכי עבודה מרובי צדדים בעזרת ספר חשבונות משותף וירטואלי. כדי לקבל מושג טוב יותר, אתה יכול לבדוק את צילום המסך למטה.

DAML-Tutorial-Ledger-Model

מקור: תיעוד DAML

המודל משמש להגדרה, מבנה פנקסי DA (מה), מודל שלמות (מי יכול לבקש) ומודל פרטיות (מי יכול לראות).

כדי לקבל הבנה מעמיקה יותר של מודל Ledger DA, עיין בתיעוד הרשמי כאן.

חוזים בסיסיים

בבסיס ה- DAML תמצאו ספר חשבונות DAML. אנו הולכים לעבור על תבנית קטנה מכיוון שהיא תעזור לנו להבין מושגים חיוניים, כולל עסקאות, חוזי תבניות, חותמים, מודולי DAML וקבצים..

מתחייב

DAML Ledger מכיל רשימה “מתחייבת”. במילים פשוטות, התחייבות היא עסקה שהוגשה לפנקס החשבונות. נכון לחוזה, אתה יכול לחשוב על זה כעל עסקה פעילה שצריך לבצע, והביצוע שלה תלוי בתכונות והתנאים של החוזה..

מודולים וקבצים של DAML

לפני שתתחיל, עליך להזכיר את גרסת ה- DAML. ניתן לעשות זאת בראש קובץ ה- DAML. הגרסה תודיע למהדר באיזו גרסת השפה משתמשים.

לעזאזל1.2

כדי לייבא את המודול, עליך להשתמש במילת המפתח “מודול”.

moduleTokenwhere

הערות

אם ברצונך להוסיף הערות, תוכל לעשות זאת באמצעות מילת המפתח “-“.

– זו תגובה

תבניות

תבנית משמשת להגדרת סוג החוזה. זה מגדיר את הגופים שיש להם גישה לביצוע החוזה. אתה יכול לחשוב על חוזים כמופעי תבנית.

אסימון תבנית

עם

בעלים: מסיבה

איפה

בעל החתימה

כפי שאתה יכול לראות, הגדרנו תבנית אסימון באמצעות מילת המפתח “תבנית”. צריך גם ויכוח. דבר נוסף שתוכלו לשים לב אליו הוא שהוא מונחה למרחב לבן. אם השתמשת בפייתון בעבר, תבין כיצד קוד מובנה ומיועד.

לבסוף, תוכל לראות את מילת המפתח החותמת, המסמלת את החותמים על מקרי החוזה. סמכותם של צד זה נדרשת לנקוט בפעולות בנוגע לחוזה, כולל ארכיון ויצירתו.

הבנת התרחישים באמצעות תבניות

כעת לאחר שהבנו את המבנה הבסיסי של תבנית, אנו הולכים כעת להבין את התרחישים באמצעות שתי תבניות אחרות במדריך ה- DAML שלנו. אבל לפני שנעשה זאת, בואו נבין מה זה בדיוק “תַרחִישׁ.

תַרחִישׁ

ניתן לתאר תרחיש בצורה הטובה ביותר כמתכון לבדיקה שבאמצעותו ניתן לבדוק אם התבניות מתנהגות כראוי. בעזרתו ניתן לבצע בדיקות עסקאות. בואו נסתכל על הדוגמה למטה.

token_test_one = תרחיש לעשות

סם <- getParty “סם”

להגיש סם דו

צור אסימון עם הבעלים = סם

האמור לעיל הוא התרחיש הבסיסי העוסק באסימון למסיבה המכונה “סם”.

כדי להפעיל את התרחיש, עליך להשתמש באולפן DAML.

למידע נוסף על התרחיש, אנו ממליצים לך לבדוק את דף תיעוד התרחיש כאן.

סוג מידע

בדיוק כמו כל שפת תכנות, גם DAML תומך בסוגי נתונים. סוגי הנתונים מאפשרים לך להגדיר משתנה ולאחסן נתונים שם.

כדי להפוך את זה לפשוט יותר עבורך, בוא נחשוב על תבניות כטבלאות מסדי נתונים. כעת, תוכלו לשמור נתונים בתבנית ולעזור לעצמכם לנהל אותם בקלות באמצעות עיצוב תבניות.

ישנם סוגים רבים של נתונים מקוריים ש- DAML נכנס אליהם. הוא כולל את הדברים הבאים.

  • מסיבה → לאחסון זהות ישות. הצדדים יכולים להגיש עסקאות ולחתום על חוזים.
  • טקסט → מאחסן תו Unicode
  • Int → מאחסן מספרים שלמים של 64 סיביות
  • Decime → מאחסן מספרי נקודות קבועות
  • תאריך → מאחסן תאריך
  • זמן → מאחסן זמן ב- UTC
  • RelTime → מאחסן הפרשי זמן
  • ContractId → התייחסות לסוג החוזה

להלן הקוד להבנת חלק מהסוגים המקומיים.

native_test = תרחיש לעשות

סם <- getParty “סם”

מיסטריה <- getParty “Mysterio”

תן

my_int = –657

my_dec = 0.001: עשרוני

my_text = “סם”

my_bool = שקר

לטעון (Sam / = Mysterio)

לטעון (-my_int == 123)

לטעון (1000.0 * my_dec == 1.0)

לטעון (my_text == “סם”)

DAML תומך גם בסוגי נתונים אחרים, כולל Tuples, Lists ו- Records.

למידע על סוגי הנתונים ב- DAML, עיין בדף התיעוד שלהם כאן.

שינוי נתונים באמצעות אפשרויות

DAML תומך בחוסר שינוי. כלומר, בכל פעם שיש צורך לעדכן נתונים; צריך ליצור חוזה חדש עם הנתונים החדשים. עם זאת, זה לא תמיד המקרה שכן תמיד יש משהו קטן מאוד לשנות ולשנות. לדוגמה, חברה עשויה לרצות לשנות את מספר הטלפון שלה כדי לעשות זאת באמצעות אפשרויות.

בואו נסתכל על דוגמה שנלקחה בתיעוד DAML.

תבנית איש קשר

עם

בעלים: מסיבה

מסיבה מסיבה

כתובת: טקסט

טלפון: טקסט

איפה

בעל החתימה

בעל הבקר יכול

עדכן טלפון

: ContractIdContact

עם

newTelephone: טקסט

לַעֲשׂוֹת

ליצור את זה עם

טלפון = חדש טלפון

רוב הקוד מסביר את עצמו לעיל. הדבר היחיד שאתה צריך לדעת הוא שהגדרנו בחירה המכונה “UpdateTelephone”.

אפשרויות יכולות לשמש גם כמשלחת. לבסוף, הם יכולים להיות משולבים גם במודל Ledger.

למידע נוסף על אפשרויות DAML, תוכל לעיין בדף התיעוד הרשמי כאן.

הוספת אילוצים לחוזה

ניתן גם להוסיף אילוצים לחוזה DAML באמצעות מילת המפתח “להבטיח”. אתה יכול גם להשתמש במנגנון האחר המשתמש במילת המפתח לטעון, להפסיק ולהטעות כדי להוסיף אילוצים לחוזה.

אך לפני שתעשה זאת, עליך לקבוע בחוזה שלך תנאים מוקדמים לתבנית המתאימה.

למידע נוסף על האילוצים והמגבלות, תוכלו לבדוק את התיעוד כאן.

צדדים וסמכות

ל- DAML יש דרך ראויה להתמודד עם צדדים ולאשר להם גישה לחוזה. אתה יכול להשתמש בהם כדי לא רק להעביר סמכות אלא גם לכתוב אפשרויות מתקדמות שיכולות לשנות את אופן פעולתו של ספר החשבונות. גמישות זו חשובה מכיוון שהיא נותנת לצדדים מספיק כלים לשנות דברים וגם לשמור על רעיון הליבה של החוזה על כנו.

לדוגמה, תוכל למנוע ביטול IOU או לבצע הרשאות חד פעמיות בצורה טובה יותר באמצעות זרימות עבודה מציעים לקבל. ישנן אפשרויות רבות הנעשות במסגרת ה- DAML לספק פתרון כמעט לכל תרחיש שם.

קרא עוד על צדדים ורשויות כאן.

סיכום

זה מוביל אותנו לסוף ההדרכה שלנו ב- DAML. במדריך זה הצלחנו ללמוד על DAML ומה הופך אותו למיוחד. למדנו גם על הפעולות הפנימיות של ה- DAML ועל היבטים מרכזיים אחרים בשפת התכנות, כגון סוגי נתונים, תרחישים וכו ‘. מושגי מפתח אלה יעזרו לך לעסוק בעצמך בפרויקטים של DAML שאתה הולך לקחת בעתיד.

אז מה אתה חושב על DAML? האם אתה חושב שיש לו פוטנציאל להפוך לשפת תכנות בכל מקום ליצור יישומים מבוזרים? הגיבו למטה והודיעו לנו.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map