Esteu cercant un tutorial DAML? Si ho feu, heu arribat al lloc correcte. En aquest article, farem un tutorial de blockchain DAML adequat.
El tutorial passarà per una comprensió bàsica de DAML, per què és necessari, i exemples de codi per donar-li més sentit. Si sou principiant, trobareu el tutorial per començar a utilitzar DAML. En resum, aquest és un tutorial DAML perfecte per a principiants. Tot i això, no és un tutorial de desenvolupament DAML complet, ja que no crearem cap aplicació completa al tutorial, ja que està fora de l’abast de l’article..
Tutorial DAML: Introducció a DAML
Llavors, què és DAML? Explorem.
Necessiteu una actualització de blockchain? Consulteu la guia Blockchain per a principiants per començar. Consulteu també la nostra última guia sobre DAML.
Què és DAML?
DAML és un llenguatge de programació de codi obert per al desenvolupament d’aplicacions distribuïdes. Permet als desenvolupadors crear aquestes aplicacions distribuïdes de manera concisa, ràpida i correcta.
Hyperledger manté DAML i l’ha convertit en part del seu ecosistema. Això també converteix DAML en un dels llenguatges de programació que s’executen a la part superior de les principals plataformes blockchain. Sí, és acceptat per diverses plataformes. També facilita als desenvolupadors desenvolupar ràpidament la seva aplicació i decidir on volen desplegar-la.
El que fa que DAML sigui tan especial?
DAML és un llenguatge de programació per construir llenguatges distribuïts. Amb cada vegada més empreses que entenen la importància de les aplicacions distribuïdes, DAML proporciona una eina perquè aquestes empreses i els seus desenvolupadors puguin assolir els seus objectius. De fet, és una d’aquestes eines sorprenents que us permeten controlar la vostra aplicació distribuïda.
DAML aborda frontalment els problemes de disseny dur ja que proporciona una solució a problemes complexos com la sincronització d’estats distribuïts i la criptografia. Per assolir l’objectiu, es redissenya.
El disseny o implementació subjacent s’abstreu quan un desenvolupador escriu la seva aplicació blockchain. Permet al desenvolupador centrar-se en el requisit abstracte i permetre a DAML gestionar tot el treball dur. Sabent que DAML és especial, podeu apreciar millor l’aprenentatge de DAML mitjançant el nostre tutorial DAML.
Funcions DAML
En aquesta secció del nostre tutorial DAML, coneixerem les característiques clau de DAML.
Model de dades: DAML permet als desenvolupadors crear esquemes de dades complexos per a la seva aplicació amb facilitat. Això fa que sigui fàcil dissenyar i implementar requisits complexos o processos empresarials.
Permisos de gra fi: Els contractes DAML estan ajustats per establir permisos. Això vol dir que els desenvolupadors poden definir qui pot signar el contracte, qui el pot veure i en quines condicions.
Lògica empresarial: La lògica empresarial també es pot integrar amb facilitat. Un desenvolupador pot escriure les accions necessàries al contracte, les seves afirmacions, paràmetres i molt més!
Proves basades en escenaris: Les proves basades en escenaris també són possibles amb DAML. Permet al desenvolupador provar la lògica empresarial i altres aspectes de les vostres aplicacions descentralitzades, com ara els fluxos de treball.
Funcions de temps d’execució
A part de les quatre funcions bàsiques anteriors, també tenim el Runtime de DAML. El temps d’execució fa referència a l’entorn creat per l’aplicació durant la seva execució. En aquest estat que té funcions clau que fan que el programa funcioni de manera eficient i eficaç. En conèixer-los al tutorial DAML, podreu consolidar el vostre aprenentatge DAML.
En parlem a continuació.
Abstracció d’emmagatzematge → L’abstracció d’emmagatzematge ofereix una capa de persistència que garanteix que tots els programes DAML siguin agnòstics d’emmagatzematge. En termes senzills, els programes DAML no depenen de l’emmagatzematge escollit, ja que poden convertir les dades esmentades en un format digestible.
Comprovacions d’autorització → L’autorització comprova totes les accions d’un contracte. Si l’acció no supera l’autorització adequada, no es podrà executar.
El contracte generarà un error en temps d’execució i informarà el comprador o el desenvolupador.
Seguiment de la rendició de comptes → El temps d’execució també és responsable del seguiment de la rendició de comptes. Assegura que les parts subscriuen voluntàriament l’acord. Per fer-ho realitat, calia la signatura dels signants. Això es fa per protegir el comprador de qualsevol comportament contundent de l’organitzador o el venedor.
Composabilitat atòmica → DAML admet el disseny atòmic. Això significa que totes les accions es realitzen de forma atòmica i, per tant, es poden cometre o no. No hi ha cap punt intermedi a l’hora d’executar contractes. Això es fa per garantir la seguretat del flux de treball i mantenir allunyats els explotadors.
Sense despeses dobles → Amb el temps d’execució de DAML, els contractes estan dissenyats per assegurar-se que no sigui possible la despesa doble. Això significa que el mateix contracte no es pot executar dues vegades.
Privacitat que cal saber → DAML ofereix un nivell de subtransacció, que fa que la informació estigui disponible quan s’aprovi.
Execució determinista → Finalment, el temps d’execució admet l’execució determinista. Això significa que l’efecte de qualsevol acció depèn de l’estat actual del llibre major.
Introducció a DAML
En aquesta secció del nostre tutorial DAML, examinarem la guia d’inici del tutorial de blockchain DAML. Abans d’utilitzar DAML, cal instal·lar-lo.
Per utilitzar DAML, heu de seguir un procés de dos passos.
1) Instal·lació de dependències
Per utilitzar DAML, primer heu d’instal·lar les dependències. Per fer-ho, heu de descarregar l’SDK i instal·lar-lo al vostre sistema operatiu.
A part d’això, el millor seria que també tinguéssiu el següent
- Visual Studio Code o qualsevol entorn de desenvolupament integrat compatible
- JDK 8 o superior.
2) Instal·lació de l’SDK
Si utilitzeu Windows, podeu anar a enllaç, i descarregueu el fitxer executable.
Per a Linux o MAC, heu d’executar l’ordre següent mitjançant curl.
rínxol –sSL https://get.daml.com/ | sh
Us demanarà que afegiu ~ / .daml / bin a la vostra variable PATH. Un cop fet, ja podeu utilitzar DAML.
DAML Tutorial Beginner’s Guide
No heu treballat mai amb DAML? Aleshores, no us preocupeu, ja que en aquesta secció anirem repassant els conceptes bàsics de DAML, els seus tipus de dades, plantilles, funcions, expressions, etc.!
Abans de fer-ho, hem d’entendre el model de Ledger DA (Digital Asset). És una part important del nostre tutorial DAML.
Model DA Ledger
El model DA Ledger és el nucli de DAML. Ofereix fluxos de treball multipartits amb l’ajut d’un llibre principal virtual compartit. Per fer-vos una millor idea, podeu consultar la captura de pantalla següent.
Font: documentació DAML
El model s’utilitza per definir, l’estructura dels llibres DA (què), el model d’integritat (qui pot sol·licitar-ho) i el model de privadesa (qui ho pot veure).
Per obtenir una comprensió més profunda del model DA Ledger, consulteu la documentació oficial aquí.
Contractes bàsics
Al nucli de DAML, trobareu un llibre llibre DAML. Anem a passar per una petita plantilla, ja que ens ajudarà a entendre conceptes essencials, incloses les transaccions, les plantilles de contractes, els signants, els mòduls DAML i els fitxers..
Compromisos
DAML Ledger conté una llista de “commits”. En termes senzills, una confirmació és una transacció enviada al llibre major. A partir del contracte, el podeu pensar com una transacció activa que cal executar i la seva execució depèn dels atributs i les condicions del contracte..
Mòduls i fitxers DAML
Abans de començar, heu d’esmentar la versió DAML. Es pot fer a la part superior del fitxer DAML. La versió notificarà al compilador quina versió de l’idioma s’està utilitzant.
maleït1.2
Per importar el mòdul, heu d’utilitzar la paraula clau “mòdul”.
moduleTokenwhere
Comentaris
Si voleu afegir comentaris, podeu fer-ho amb la paraula clau “-“.
– Aquest és un comentari
Plantilles
S’utilitza una plantilla per definir el tipus de contracte. Això defineix les entitats que tenen accés per executar el contracte. Podeu pensar en els contractes com a instàncies de plantilla.
Token de plantilla
amb
propietari: Party
on
propietari signant
Com podeu veure, hem definit una plantilla de testimoni amb la paraula clau “plantilla”. També cal un argument. Una cosa més que podeu notar és que està orientada a l’espai en blanc. Si ja heu utilitzat Python, entendreu com s’estructura i es proposa el codi.
Per últim, podeu veure la paraula clau signatària, que significa els signants de les instàncies del contracte. L’autoritat d’aquestes parts ha de dur a terme accions sobre el contracte, inclòs l’arxiu i la creació d’aquest.
Comprensió dels escenaris mitjançant plantilles
Ara que hem entès l’estructura bàsica d’una plantilla, ara comprendreem els escenaris utilitzant altres dues plantilles al nostre tutorial DAML. Però, abans de fer-ho, entenem què és exactament un “escenari.”
Escenari
Un escenari es pot descriure millor com una recepta de prova que es pot utilitzar per comprovar si les plantilles es comporten com haurien de fer-ho. Es pot utilitzar per realitzar proves de transaccions. Vegem l’exemple següent.
token_test_one = escenari fer
sam <- getParty “sam”
enviar sam do
crear token amb propietari = sam
L’anterior és l’escenari bàsic que tracta del testimoni d’una festa coneguda com a “sam”.
Per executar l’escenari, heu d’utilitzar l’estudi DAML.
Per obtenir més informació sobre l’escenari, us suggerim que consulteu el document pàgina de documentació d’escenaris aquí.
Tipus de dades
Igual que qualsevol llenguatge de programació, DAML també admet tipus de dades. Els tipus de dades us permeten definir una variable i emmagatzemar-hi dades.
Per simplificar-lo, penseu en plantilles com a taules de bases de dades. Ara podeu desar les dades a la plantilla i ajudar-vos a gestionar-les fàcilment mitjançant el disseny de plantilles.
Hi ha molts tipus de dades natives que inclou DAML. Inclou el següent.
- Festa → Per emmagatzemar la identitat de l’entitat. Les parts poden presentar transaccions i signar contractes.
- Text → Emmagatzema el caràcter Unicode
- Int → emmagatzema enters de 64 bits
- Decime → emmagatzema els números de punt fix
- Data → emmagatzema una data
- Hora → emmagatzema l’hora en UTC
- RelTime → Emmagatzema la diferència horària
- ContractId → referència al tipus de contracte
A continuació es mostra el codi per entendre alguns dels tipus natius.
prova_nativa = escenari fer
Sam <- getParty “Sam”
Mysterio <- getParty “Mysterio”
deixar
my_int = –657
my_dec = 0,001: decimal
my_text = “Sam”
my_bool = Fals
afirmar (Sam / = Mysterio)
afirmar (-my_int == 123)
afirmar (1000.0 * my_dec == 1.0)
afirmar (my_text == “Sam”)
DAML també admet altres tipus de dades, incloses tuples, llistes i registres.
Per obtenir informació sobre els tipus de dades a DAML, consulteu la seva pàgina de documentació aquí.
Transformació de dades mitjançant opcions
DAML admet la immutabilitat. Això significa que sempre que cal actualitzar les dades; cal crear un nou contracte amb les noves dades. Tanmateix, no sempre és així, ja que sempre hi ha alguna cosa molt petita per canviar i modificar. Per exemple, és possible que una empresa vulgui canviar el seu número de telèfon per fer-ho mitjançant opcions.
Vegem un exemple de la documentació DAML.
plantilla Contacte
amb
propietari: Party
festa: Festa
adreça: text
telèfon: text
on
propietari signant
el propietari del controlador pot
UpdateTelephone
: ContractIdContact
amb
Telèfon nou: text
fer
crea això amb
telèfon = nouTelèfon
La major part del codi s’explica per si mateix anteriorment. L’únic que heu de saber aquí és que hem definit una opció coneguda com a “UpdateTelephone”.
Les opcions també es poden utilitzar com a delegació. Per últim, també es poden integrar al model Ledger.
Per obtenir més informació sobre les opcions de DAML, podeu consultar la pàgina de documentació oficial aquí.
Afegir restriccions a un contracte
També podeu afegir restriccions al contracte DAML mitjançant la paraula clau “assegurar”. També podeu utilitzar l’altre mecanisme que utilitza la paraula clau assert, abort i error per afegir restriccions al contracte.
Abans de fer-ho, heu de tenir establertes les condicions prèvies de la plantilla adequades al contracte.
Per obtenir més informació sobre les restriccions i restriccions, podeu consultar la documentació aquí.
Parts i autoritat
DAML té una manera adequada de gestionar les parts i autoritzar-les a accedir a un contracte. Els podeu utilitzar no només per aprovar l’autoritat, sinó també per escriure opcions avançades que poden canviar el funcionament del llibre major. Aquesta flexibilitat és important, ja que proporciona a les parts prou eines per canviar les coses i també mantenir intacta la idea bàsica del contracte.
Per exemple, podeu evitar la revocació del IOU o, millor, fer una autorització puntual mitjançant els fluxos de treball proposar-acceptar. Hi ha moltes opcions que es fan dins del DAML per proporcionar una solució a gairebé tots els escenaris que hi ha.
Llegiu més sobre festes i autoritats aquí.
Conclusió
Això ens condueix al final del nostre tutorial DAML. En aquest tutorial hem aconseguit conèixer DAML i què el fa especial. També vam conèixer el funcionament intern del DAML i altres aspectes clau del llenguatge de programació, com ara tipus de dades, escenaris, etc. Aquests conceptes clau us ajudaran a implicar-vos en els projectes DAML que assumireu en el futur.
Llavors, què en penseu de DAML? Creieu que té el potencial de convertir-se en un llenguatge de programació omnipresent per crear aplicacions descentralitzades? Comenta a continuació i fes-nos-ho saber.