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.
Contents
- 1 Tutorial DAML: Noțiuni introductive despre DAML
- 1.1 Ce este DAML?
- 1.2 Ceea ce face DAML atât de special?
- 1.3 Caracteristici DAML
- 1.4 Caracteristici Runtime
- 1.5 Noțiuni introductive despre DAML
- 1.6 Ghid pentru începători DAML Tutorial
- 1.7 Înțelegerea scenariilor folosind șabloane
- 1.8 Tipul de date
- 1.9 Transformarea datelor folosind opțiuni
- 1.10 Adăugarea de constrângeri la un contract
- 1.11 Părțile și autoritatea
- 1.12 Concluzie
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ă frontal 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ă consolidaț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ă faptul 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-ul 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 de necesitate → 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 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 legătură, ș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 sa 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ă.
naibii1.2
Pentru a importa modulul, trebuie să utilizați cuvântul cheie „modul”.
moduleTokenwhere
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 cu privire la contract, inclusiv arhivarea și crearea acestuia.
Înțelegerea scenariilor folosind șabloane
Acum că am înțeles structura de bază a unui șablon, acum vom înțelege 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 datele î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ă și 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
: ContractIdContact
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 utilizând 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 alegeri 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.