Căutați un tutorial DAML? Dacă o faci, atunci ai ajuns la locul potrivit. În acest articol, vom face un tutorial de blockchain DAML adecvat.

Tutorialul va trece printr-o înțelegere de bază a DAML, de ce este necesar, și exemple de coduri pentru a avea mai mult sens din el. Dacă sunteți începător, veți găsi tutorialul pentru a începe cu DAML. Pe scurt, acesta este un tutorial DAML perfect pentru începători. Cu toate acestea, nu este un tutorial complet de dezvoltare DAML, deoarece nu vom construi nicio aplicație completă în tutorial, deoarece depășește domeniul de aplicare al articolului.

Tutorial DAML: Noțiuni introductive despre DAML

Deci, ce este DAML? Să explorăm.

Aveți nevoie de o actualizare blockchain? Consultați ghidul Blockchain pentru începători pentru a începe! De asemenea, consultați Ghidul nostru final la DAML.

Ce este DAML?

DAML este un limbaj de programare open-source pentru dezvoltarea de aplicații distribuite. Permite dezvoltatorilor să creeze acele aplicații distribuite concis, rapid și corect.

Hyperledger menține DAML și l-a făcut parte din ecosistemul său. Acest lucru face din DAML unul dintre limbajele de programare care rulează pe platformele blockchain de top. Da, este acceptat de mai multe platforme. De asemenea, este ușor pentru dezvoltatori să își dezvolte rapid aplicația și apoi să decidă unde vor să o implementeze.

Ceea ce face DAML atât de special?

DAML este un limbaj de programare pentru a construi limbaje distribuite. Cu tot mai multe companii care înțeleg importanța aplicațiilor distribuite, DAML oferă un instrument pentru acele companii și dezvoltatorii lor pentru a-și atinge obiectivele. Este, de fapt, unul dintre acele instrumente uimitoare care vă permit să luați aplicația distribuită sub control.

DAML abordează direct problemele de proiectare, deoarece oferă o soluție la probleme complexe, cum ar fi sincronizarea stării distribuite și criptografia. Pentru a atinge obiectivul, acesta este reproiectat. 

Proiectarea sau implementarea de bază este abstractizată atunci când un dezvoltator își scrie aplicația blockchain. Permite dezvoltatorului să se concentreze asupra cerinței abstracte și să permită DAML să se ocupe de toată munca grea. Știind că DAML este special, puteți aprecia mai bine să învățați DAML folosind tutorialul nostru DAML.

Caracteristici DAML

În această secțiune a tutorialului nostru DAML, vom afla despre caracteristicile cheie DAML.

Model de date: DAML permite dezvoltatorilor să creeze cu ușurință scheme complexe de date pentru aplicația lor. Acest lucru facilitează proiectarea și implementarea cerințelor complexe sau a proceselor de afaceri.

Permisiuni cu granulație fină: Contractele DAML sunt ajustate pentru a seta permisiunile. Aceasta înseamnă că dezvoltatorii pot stabili cine ar putea semna contractul, cine îl poate vedea și în ce condiții.

Lociga afacerii: Logica de afaceri poate fi, de asemenea, integrată cu ușurință. Un dezvoltator poate scrie acțiunile necesare contractului, afirmațiile acestuia, parametrii și multe altele!

Testare bazată pe scenariu: Testarea bazată pe scenariu este posibilă și cu DAML. Permite dezvoltatorului să testeze logica de afaceri și alte aspecte ale aplicațiilor dvs. descentralizate, cum ar fi fluxurile de lucru.

Caracteristici Runtime

În afară de cele patru caracteristici principale de mai sus, avem și DAML Runtime. Runtime se referă la mediul creat de aplicație în timpul executării acesteia. În această stare, care are caracteristici cheie care fac ca programul să ruleze eficient și eficient. Aflând despre ele în tutorialul DAML, veți putea să vă solidificați învățarea DAML.

Să vorbim despre ele mai jos.

Abstracție de stocare → Abstracția de stocare oferă un strat de persistență care asigură că toate programele DAML sunt agnostice de stocare. În termeni simpli, programele DAML nu depind de stocarea aleasă, deoarece pot converti datele menționate într-un format digerabil.

Verificări de autorizare → Autorizația verifică toate acțiunile din cadrul unui contract. Dacă acțiunea nu trece autorizația corespunzătoare, atunci nu va fi permisă executarea.

Contractul va genera atunci o eroare de execuție și va informa cumpărătorul sau dezvoltatorul.

Urmărirea responsabilității → Runtime este, de asemenea, responsabil pentru urmărirea responsabilității. Se asigură că părțile intră voluntar în acord. Pentru ca aceasta să se întâmple, au fost necesare semnături ale semnatarilor. Acest lucru se face pentru a proteja cumpărătorul de orice comportament puternic din partea organizatorului sau a vânzătorului. 

Compozibilitate atomică → DAML acceptă proiectarea atomică. Aceasta înseamnă că toate acțiunile sunt efectuate atomic și, prin urmare, pot fi fie săvârșite, fie deloc. Nu există o cale de mijloc când vine vorba de executarea contractelor. Acest lucru se face pentru a asigura siguranța fluxului de lucru și pentru a menține exploatatorii la distanță.

Fără cheltuieli duble → Cu durata de rulare DAML, contractele sunt concepute pentru a se asigura că nu este posibilă cheltuirea dublă. Aceasta înseamnă că același contract nu poate fi executat de două ori. 

Confidențialitate necesară cunoașterii → DAML oferă un nivel de sub-tranzacție, care face ca informațiile să fie disponibile atunci când sunt aprobate.

Execuție deterministă → În cele din urmă, timpul de execuție acceptă execuția deterministă. Aceasta înseamnă că efectul oricărei acțiuni depinde de starea actuală a registrului.

Noțiuni introductive despre DAML

În această secțiune a tutorialului nostru DAML, vom analiza ghidul de începere pentru tutorialul blockchain DAML. Înainte de a putea folosi DAML, trebuie să îl instalați.

Pentru a utiliza DAML, trebuie să urmați un proces în doi pași.

1) Instalarea dependențelor

Pentru a utiliza DAML, trebuie mai întâi să instalați dependențele. Pentru a face acest lucru, trebuie să descărcați SDK-ul și să îl instalați pe sistemul dvs. de operare.

În afară de asta, cel mai bine ar fi dacă ai avea și următoarele

  • Visual Studio Code sau orice mediu de dezvoltare integrat compatibil
  • JDK 8 sau mai mare.

2) Instalare SDK

Dacă utilizați Windows, puteți merge la link și descărcați fișierul executabil.

Pentru Linux sau MAC, trebuie să rulați următoarea comandă folosind curl.

curl –sSL https://get.daml.com/ | SH

Vă va cere să adăugați ~ / .daml / bin la variabila PATH. După ce ați terminat, sunteți gata să utilizați DAML.

Ghid pentru începători DAML Tutorial

Nu ați lucrat niciodată cu DAML? Apoi, nu vă faceți griji, ca în această secțiune, vom trece prin elementele de bază ale DAML, tipurile sale de date, șabloanele, funcțiile, expresiile și așa mai departe!

Dar, înainte de a face acest lucru, trebuie să înțelegem modelul DA Ledger (Digital Asset). Este o parte importantă a tutorialului DAML.

Modelul DA Ledger

Modelul DA Ledger se află în centrul DAML. Oferă fluxuri de lucru multi-party cu ajutorul unui registru virtual partajat. Pentru a vă face o idee mai bună, puteți verifica captura de ecran de mai jos.

Sursă: documentație DAML

Modelul este utilizat pentru a defini, structura registrelor DA (ce), modelul de integritate (cine poate solicita) și modelul de confidențialitate (cine poate vedea).

Pentru a obține o înțelegere mai aprofundată a modelului DA Ledger, consultați documentația oficială Aici.

Contracte de bază

În centrul DAML, veți găsi un registru DAML. Vom trece printr-un șablon mic, deoarece ne va ajuta să înțelegem concepte esențiale, inclusiv tranzacții, șabloane de contracte, semnatari, module DAML și fișiere.

Angajamente

DAML Ledger conține o listă „comitere”. În termeni simpli, o confirmare este o tranzacție trimisă în registru. Începând cu contractul, îl puteți gândi ca pe o tranzacție activă care trebuie executată, iar executarea acestuia depinde de atributele și condițiile contractului.

Module și fișiere DAML

Înainte de a începe, trebuie să menționați versiunea DAML. Se poate face în partea de sus a fișierului DAML. Versiunea va notifica compilatorul care versiune a limbii este utilizată.

naibii 1.2

Pentru a importa modulul, trebuie să utilizați cuvântul cheie „modul”.

jeton modul unde

Comentarii

Dacă doriți să adăugați comentarii, puteți face acest lucru folosind cuvântul cheie „-”.

– Acesta este un comentariu

Șabloane

Un șablon este utilizat pentru a defini tipul de contract. Aceasta definește entitățile care au acces la executarea contractului. Vă puteți gândi la contracte ca instanțe șablon.

Jeton șablon

    cu

        proprietar: petrecere

    Unde 

        proprietar semnatar

După cum puteți vedea, am definit un șablon Token folosind cuvântul cheie „șablon”. Este nevoie și de o ceartă. Încă un lucru pe care îl poți observa este că este orientat spre spațiu. Dacă ați folosit Python înainte, veți înțelege modul în care este structurat și intenționat codul.

În cele din urmă, puteți vedea cuvântul cheie semnatar, care semnifică semnatarii instanțelor contractului. Autoritatea acestor părți este obligată să ia măsuri în ceea ce privește contractul, inclusiv arhivarea și crearea acestuia. 

Înțelegerea scenariilor folosind șabloane

Acum că am înțeles structura de bază a unui șablon, vom înțelege acum scenariile folosind alte două șabloane în tutorialul nostru DAML. Dar, înainte să o facem, să înțelegem ce este exact un „scenariu.

Scenariu

Un scenariu poate fi cel mai bine descris ca o rețetă de testare care poate fi utilizată pentru a verifica dacă șabloanele se comportă așa cum ar trebui. Poate fi folosit pentru a efectua teste de tranzacție. Să aruncăm o privire la exemplul de mai jos.

token_test_one = scenariu do

    sam <- getParty „sam”

    trimite sam do

        creați token cu proprietar = sam

Cele de mai sus sunt scenariul de bază care se ocupă cu indicativul pentru o petrecere cunoscută sub numele de „sam”.

Pentru a rula scenariul, trebuie să utilizați studioul DAML. 

Pentru a afla mai multe despre scenariu, vă sugerăm să verificați pagina documentației scenariului aici.

Tipul de date

La fel ca orice limbaj de programare, DAML acceptă și tipuri de date. Tipurile de date vă permit să definiți o variabilă și să stocați datele acolo.

Pentru a vă face mai simplu, să considerăm șabloanele ca tabele de baze de date. Acum, puteți salva date în șablon și vă puteți ajuta să le gestionați cu ușurință prin proiectarea șablonului.

Există multe tipuri de date native pe care le primește DAML. Include următoarele.

  • Petrecere → Pentru a stoca identitatea entității. Părțile pot depune tranzacții și pot semna contracte.
  • Text → Stochează caracterul Unicode
  • Int → stochează numere întregi pe 64 de biți
  • Decime → stochează numere cu punct fix
  • Data → stochează o dată
  • Ora → stochează ora în UTC
  • RelTime → Stochează diferența de timp
  • ContractId → referință la tipul de contract

Mai jos este codul pentru a înțelege unele dintre tipurile native.

native_test = scenariu do

  Sam <- getParty „Sam”

  Mysterio <- getParty „Mysterio”

  lăsa

    my_int = –657

    my_dec = 0,001: Zecimal

    my_text = „Sam”

    my_bool = False

 

  afirma (Sam / = Mysterio)

  afirmă (-my_int == 123)

  afirmă (1000.0 * my_dec == 1.0)

  afirma (textul_meu == „Sam”)

DAML acceptă, de asemenea, alte tipuri de date, inclusiv Tuples, Liste și Înregistrări. 

Pentru a afla despre tipurile de date din DAML, consultați pagina lor de documentare Aici.

Transformarea datelor folosind opțiuni

DAML acceptă imuabilitatea. Asta înseamnă ori de câte ori este nevoie să se actualizeze datele; trebuie creat un nou contract cu noile date. Cu toate acestea, nu este întotdeauna cazul, deoarece există întotdeauna ceva foarte mic de modificat și de modificat. De exemplu, o companie ar putea dori să-și schimbe numărul de telefon pentru a o utiliza alegeri.

Să aruncăm o privire la un exemplu luat în documentația DAML.

șablon de contact

  cu

    proprietar: petrecere

    petrecere petrecere

    adresa: Text

    telefon: Text

  Unde

    proprietar semnatar

 

    proprietarul controlorului poate

      UpdateTelephone

        : ContractId Contact

        cu

          nou Telefon: Text

        do

          creați acest lucru cu

            telephone = newTelephone

Majoritatea codului se explică de la sine mai sus. Singurul lucru pe care trebuie să-l știți aici este că am definit o alegere cunoscută sub numele de „UpdateTelephone”.

Alegerile pot fi folosite și ca delegație. În cele din urmă, ele pot fi, de asemenea, integrate în modelul Ledger. 

Pentru a afla mai multe despre opțiunile DAML, puteți consulta pagina oficială a documentației Aici.

Adăugarea de constrângeri la un contract

De asemenea, puteți adăuga constrângeri la contractul DAML folosind cuvântul cheie „asigura”. De asemenea, puteți utiliza celălalt mecanism care utilizează cuvântul cheie asert, avort și eroare pentru a adăuga constrângeri contractului.

Dar, înainte de a face acest lucru, trebuie să aveți stabilite condițiile prealabile corespunzătoare ale șablonului în contract. 

Pentru a afla mai multe despre constrângeri și restricții, puteți verifica documentația Aici.

Părțile și autoritatea

DAML are un mod adecvat de a gestiona părțile și de a le autoriza să acceseze un contract. Puteți să le utilizați nu numai pentru a trece autoritatea, ci și pentru a scrie opțiuni avansate care pot schimba modul în care funcționează registrul. Această flexibilitate este importantă, deoarece oferă părților suficiente instrumente pentru a schimba lucrurile și, de asemenea, pentru a păstra intactă ideea de bază a contractului. 

De exemplu, puteți preveni revocarea IOU sau mai bine faceți o autorizare unică folosind fluxuri de lucru propune-accept. Există o mulțime de opțiuni care sunt făcute în cadrul DAML pentru a oferi o soluție pentru aproape fiecare scenariu.

Citiți mai multe despre petreceri și autorități Aici.

Concluzie

Acest lucru ne conduce la sfârșitul tutorialului DAML. În acest tutorial, am reușit să aflăm despre DAML și ceea ce îl face special. Am aflat, de asemenea, despre funcționarea internă a DAML și alte aspecte cheie ale limbajului de programare, cum ar fi tipurile de date, scenarii și așa mai departe. Aceste concepte cheie vă vor ajuta să vă implicați în proiectele DAML pe care le veți lua în viitor.

Deci, ce crezi despre DAML? Credeți că are potențialul de a deveni un limbaj de programare omniprezent pentru a crea aplicații descentralizate? Comentează mai jos și anunță-ne.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me