DAML-handledning: Komma igång med DAML

Letar du efter en DAML-handledning? Om du gör det, har du kommit till rätt ställe. I den här artikeln kommer vi att göra en ordentlig DAML blockchain-handledning.

Självstudien kommer att gå igenom en grundläggande förståelse för DAML, varför det behövs och kodexempel för att göra det mer meningsfullt. Om du är nybörjare hittar du guiden för att komma igång med DAML. Kort sagt, detta är en perfekt DAML-handledning för nybörjare. Det är dock inte en fullständig DAML-utvecklingshandledning eftersom vi inte kommer att bygga någon fullständig applikation i handledningen eftersom den ligger utanför artikelns räckvidd..

DAML-handledning: Komma igång med DAML

DAML Handledning

Så, vad är DAML? Låt oss utforska.

Behöver du uppdatera blockchain? Kolla in Blockchain for Beginners-guiden för att komma igång! Kolla också in vår Ultimate Guide to DAML.

Vad är DAML?

DAML är ett programmeringsspråk med öppen källkod för att utveckla distribuerade applikationer. Det låter utvecklare skapa de distribuerade applikationerna kortfattat, snabbt och korrekt.

Hyperledger underhåller DAML och har gjort det till en del av sitt ekosystem. Detta gör DAML också till ett av programmeringsspråken som körs ovanpå de ledande blockchain-plattformarna där ute. Ja, det accepteras av flera plattformar. Det gör det också enkelt för utvecklare att snabbt utveckla sin applikation och sedan bestämma var de vill distribuera den.

Vad gör DAML så speciellt?

DAML är ett programmeringsspråk för att bygga distribuerade språk. Med fler och fler företag som förstår vikten av distribuerade applikationer ger DAML ett verktyg för dessa företag och deras utvecklare för att uppnå sina mål. Det är faktiskt ett av de fantastiska verktygen som låter dig ta din distribuerade applikation i din kontroll.

DAML hanterar de hårda designproblemen direkt eftersom det ger en lösning på komplexa problem som distribuerad tillståndssynkronisering och kryptografi. För att uppnå målet omformas det.

Den underliggande designen eller implementeringen abstraheras när en utvecklare skriver sin blockchain-applikation. Det låter utvecklaren fokusera på det abstrakta kravet och låta DAML hantera allt hårt arbete. Genom att veta att DAML är speciellt kan du bättre uppskatta att lära dig DAML med vår DAML-handledning.

DAML-funktioner

I det här avsnittet i vår DAML-handledning lär vi oss om DAML-nyckelfunktioner.

Datamodell: DAML låter utvecklare enkelt skapa komplexa dataskeman för deras applikation. Detta gör det enkelt att designa och implementera komplexa krav eller affärsprocesser.

Finkorniga behörigheter: DAML-kontrakten är finjusterade för att ställa in behörigheter. Detta innebär att utvecklare kan ställa in vem som kan underteckna kontraktet, vem som kan se det och på vilka villkor.

Företagslogik: Affärslogik kan också enkelt integreras. En utvecklare kan skriva åtgärder som krävs för kontraktet, dess påståenden, parametrar och mer!

Scenariobaserad testning: Scenariobaserad testning är också möjlig med DAML. Det låter utvecklaren testa affärslogiken och andra aspekter av dina decentraliserade appar, till exempel arbetsflöden.

Runtime-funktioner

Förutom ovanstående fyra kärnfunktioner har vi också DAML Runtime. Runtime refererar till den miljö som skapas av applikationen under dess körning. I detta tillstånd som har viktiga funktioner som gör att programmet körs effektivt och effektivt. Genom att lära dig mer om dem i DAML-självstudien kommer du att kunna stärka ditt DAML-lärande.

Låt oss prata om dem nedan.

Lagringsabstraktion → Lagringsabstraktion erbjuder ett uthållighetsskikt som säkerställer att alla DAML-program är lagringsagnostiska. Enkelt uttryckt beror DAML-programmen inte på vald lagring eftersom de kan konvertera nämnda data till ett smältbart format.

lagring-abstraktion

Auktoriseringskontroller → Auktorisationen kontrollerar alla åtgärder inom ett kontrakt. Om åtgärden inte klarar korrekt auktorisering kommer den inte att kunna genomföras.

daml-tutorial-behörighetskontroller

Kontraktet kommer då att kasta ett runtime-fel och informera köparen eller utvecklaren.

daml-tutorial-error.

Ansvarighetsspårning → Runtiden är också ansvarig för spårning av ansvarsskyldighet. Det ser till att parterna frivilligt ingår avtalet. För att det ska hända krävdes signaturer. Detta görs för att skydda köparen från ett kraftfullt beteende från arrangören eller säljaren.

Atomic Composability → DAML stöder atomdesign. Detta innebär att alla åtgärder utförs atomiskt och därmed kan antingen begås eller inte alls. Det finns ingen mellanväg när det gäller att genomföra kontrakt. Detta görs för att säkerställa säkerheten i arbetsflödet och hålla exploatörer borta.

Inga dubbla utgifter → Med DAML-körning är kontrakten utformade för att säkerställa att inga dubbla utgifter är möjliga. Detta innebär att samma kontrakt inte kan genomföras två gånger.

Behöver du veta integritet → DAML erbjuder en deltransaktionsnivå som gör informationen tillgänglig när den godkänns.

Deterministisk utförande → Slutligen stöder körtiden deterministisk körning. Detta innebär att varje åtgärds effekt beror på huvudbokens nuvarande tillstånd.

Komma igång med DAML

I det här avsnittet i vår DAML-handledning kommer vi att titta på startguiden för DAML-blockchain-handboken. Innan du kan använda DAML måste du installera det.

För att använda DAML måste du följa en tvåstegsprocess.

1) Installera beroenden

För att använda DAML måste du först installera beroenden. För att göra det måste du ladda ner SDK och installera det på ditt operativsystem.

Annat än det skulle det vara bäst om du också hade följande

  • Visual Studio Code eller någon kompatibel integrerad utvecklingsmiljö
  • JDK 8 eller högre.

2) SDK-installation

Om du använder Windows kan du gå till länk, och ladda ner den körbara filen.

För Linux eller MAC måste du köra följande kommando med curl.

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

Det kommer att be dig att lägga till ~ / .daml / bin till din PATH-variabel. När du är klar är du redo att använda DAML.

DAML Tutorial Nybörjarguide

Har du aldrig arbetat med DAML? Oroa dig inte, som i det här avsnittet kommer vi att gå igenom grunderna i DAML, dess datatyper, mallar, funktioner, uttryck och så vidare!

Men innan vi gör det måste vi förstå (Digital Asset) DA Ledger Model. Det är en viktig del av vår DAML-handledning.

DA Ledger Model

DA Ledger Model är kärnan i DAML. Det erbjuder arbetsflöden med flera parter med hjälp av en virtuell delad huvudbok. För att få en bättre uppfattning kan du kolla skärmdumpen nedan.

DAML-Tutorial-Ledger-Model

Källa: DAML-dokumentation

Modellen används för att definiera, DA ledgers struktur (vad), integritetsmodell (vem kan begära) och integritetsmodell (vem kan se).

För att få en djupare förståelse av DA Ledger-modellen, kolla in den officiella dokumentationen här.

Grundläggande kontrakt

Kärnan i DAML hittar du en DAML-huvudbok. Vi kommer att gå igenom en liten mall eftersom det hjälper oss att förstå viktiga begrepp, inklusive transaktioner, mallavtal, signatärer, DAML-moduler och filer.

Begår

DAML Ledger innehåller en ”commits” -lista. Enkelt uttryckt är ett åtagande en inlämnad transaktion till huvudboken. Från och med kontraktet kan du tänka på det som en aktiv transaktion som måste utföras och dess genomförande beror på kontraktets attribut och villkor.

DAML-moduler och filer

Innan du börjar måste du nämna DAML-versionen. Det kan göras högst upp i DAML-filen. Versionen meddelar kompilatorn vilken version av språket som används.

jävla1.2

För att importera modulen måste du använda nyckelordet ”modul”.

moduleTokenwhere

Kommentarer

Om du vill lägga till kommentarer kan du göra det med nyckelordet “-”.

– Det här är en kommentar

Mallar

En mall används för att definiera kontraktstypen. Detta definierar de enheter som har tillgång till att genomföra kontraktet. Du kan tänka på kontrakt som mallinstanser.

malltoken

med

ägare: Party

var

undertecknande ägare

Som du kan se definierade vi en tokenmall med nyckelordet “mall”. Det kräver också ett argument. En sak till som du kan lägga märke till är att den är inriktad på blanksteg. Om du har använt Python tidigare förstår du hur koden är strukturerad och avsedd.

Slutligen kan du se nyckelordet som har undertecknat, vilket betyder att de undertecknade kontraktstillfällena. Denna parts myndighet krävs för att vidta åtgärder på kontraktet, inklusive arkivering och skapande av det.

Förstå scenarierna med hjälp av mallar

Nu när vi har förstått den grundläggande strukturen för en mall kommer vi nu att förstå scenarierna med två andra mallar i vår DAML-handledning. Men innan vi gör det, låt oss förstå vad exakt är en “scenario.

Scenario

Ett scenario kan bäst beskrivas som ett testrecept som kan användas för att kontrollera om mallarna beter sig som de ska. Den kan användas för att utföra transaktionstester. Låt oss ta en titt på exemplet nedan.

token_test_one = scenario gör

sam <- getParty “sam”

skicka in sam do

skapa Token med ägare = sam

Ovanstående är det grundläggande scenariot som handlar om token för en fest som kallas “sam.”

För att köra scenariot måste du använda DAML-studion.

För att lära dig mer om scenariot föreslår vi att du tittar på sidan för scenariodokumentation här.

Data typ

Precis som alla programmeringsspråk stöder DAML också datatyper. Med datatyperna kan du definiera en variabel och lagra data där.

För att göra det enklare för dig, låt oss tänka mallar som databastabeller. Nu kan du spara data i mallen och hjälpa dig själv att hantera dem enkelt genom malldesign.

Det finns många inbyggda datatyper som DAML kommer in i. Det innehåller följande.

  • Party → För att lagra enhetens identitet. Parterna kan skicka transaktioner och underteckna kontrakt.
  • Text → Lagrar Unicode-tecken
  • Int → lagrar 64-bitars heltal
  • Decime → lagrar fasta punktnummer
  • Datum → lagrar ett datum
  • Tid → lagrar tid i UTC
  • RelTime → Lagrar tidsskillnad
  • ContractId → referens till kontraktstyp

Nedan är koden för att förstå några av de inhemska typerna.

native_test = scenario gör

Sam <- getParty “Sam”

Mysterio <- getParty “Mysterio”

låta

min_int = –657

min_dec = 0,001: decimal

my_text = “Sam”

my_bool = Falskt

påstå (Sam / = Mysterio)

hävda (-my_int == 123)

hävda (1000.0 * my_dec == 1.0)

hävda (my_text == “Sam”)

DAML stöder också andra datatyper, inklusive Tuples, Lists och Records.

För att lära dig mer om datatyperna i DAML, kolla in deras dokumentationssida här.

Omvandla data med hjälp av val

DAML stöder oföränderlighet. Det betyder närhelst det finns ett behov av att uppdatera data; ett nytt kontrakt måste skapas med de nya uppgifterna. Det är dock inte alltid fallet eftersom det alltid finns något mycket litet att ändra och modifiera. Till exempel kanske ett företag vill ändra sitt telefonnummer för att göra det med val.

Låt oss ta en titt på ett exempel som tagits i DAML-dokumentationen.

mallkontakt

med

ägare: Party

party: Party

adress: Text

telefon: text

var

undertecknande ägare

kontrollantens ägare kan

Uppdatera telefon

: ContractIdContact

med

newTelephone: Text

do

skapa detta med

telefon = ny telefon

Det mesta av koden är självförklarande ovan. Det enda du behöver veta här är att vi definierade ett val som kallas “UpdateTelephone.”

Val kan också användas som en delegation. Slutligen kan de också integreras i Ledger-modellen.

Om du vill veta mer om DAML-valen kan du kolla in den officiella dokumentationssidan här.

Lägga till begränsningar i ett kontrakt

Du kan också lägga till begränsningar i DAML-avtalet med hjälp av nyckelordet “försäkra”. Du kan också använda den andra mekanismen som använder nyckelordet assert, abort and error för att lägga till begränsningar i kontraktet.

Men innan du gör det måste du ha rätt mallförutsättningar i ditt kontrakt.

Om du vill lära dig mer om begränsningarna och begränsningarna kan du läsa dokumentationen här.

Parter och myndighet

DAML har ett korrekt sätt att hantera parter och ge dem åtkomst till ett kontrakt. Du kan använda dem för att inte bara skicka myndighet utan också skriva avancerade val som kan ändra hur storbok fungerar. Denna flexibilitet är viktig eftersom den ger parterna tillräckligt med verktyg för att förändra saker och även håller kärnidén i kontraktet intakt.

Du kan till exempel förhindra återkallande av IOU eller bättre göra engångsbehörighet med föreslå-acceptera arbetsflöden. Det finns många alternativ som görs inom DAML för att ge en lösning för nästan varje scenario där ute.

Läs mer om parter och myndigheter här.

Slutsats

Detta leder oss till slutet av vår DAML-handledning. I den här handledningen lyckades vi lära oss mer om DAML och vad som gör det speciellt. Vi lärde oss också om DAML: s interna funktion och andra viktiga aspekter av programmeringsspråket, såsom datatyper, scenarier och så vidare. Dessa nyckelbegrepp hjälper dig att engagera dig i de DAML-projekt som du ska ta i framtiden.

Så, vad tycker du om DAML? Tror du att det har potential att bli ett allmänt förekommande programmeringsspråk för att skapa decentraliserade applikationer? Kommentera nedan och låt oss veta.

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