Tutorial DAML: Introdução ao DAML

Você está procurando um tutorial DAML? Se você fizer isso, você veio ao lugar certo. Neste artigo, faremos um tutorial de blockchain DAML adequado.

O tutorial apresentará uma compreensão básica do DAML, por que ele é necessário e exemplos de código para entendê-lo melhor. Se você for um iniciante, encontrará o tutorial para começar a usar o DAML. Resumindo, este é um tutorial de DAML perfeito para iniciantes. No entanto, não é um tutorial de desenvolvimento DAML completo, pois não vamos construir nenhum aplicativo completo no tutorial, pois está além do escopo do artigo.

Tutorial DAML: Introdução ao DAML

Tutorial DAML

Então, o que é DAML? Vamos explorar.

Precisa de uma atualização do blockchain? Confira o guia Blockchain para iniciantes para começar! Além disso, verifique nosso Guia definitivo para DAML.

O que é DAML?

DAML é uma linguagem de programação de código aberto para o desenvolvimento de aplicativos distribuídos. Ele permite que os desenvolvedores criem esses aplicativos distribuídos de forma concisa, rápida e correta.

O Hyperledger mantém o DAML e o tornou parte de seu ecossistema. Isso também torna o DAML uma das linguagens de programação que rodam no topo das principais plataformas de blockchain. Sim, é aceito por várias plataformas. Também torna mais fácil para os desenvolvedores desenvolverem rapidamente seus aplicativos e, em seguida, decidirem onde desejam implementá-los.

O que torna DAML tão especial?

DAML é uma linguagem de programação para construir linguagens distribuídas. Com mais e mais empresas entendendo a importância dos aplicativos distribuídos, o DAML fornece uma ferramenta para que essas empresas e seus desenvolvedores atinjam seus objetivos. É, na verdade, uma daquelas ferramentas incríveis que permitem que você controle seu aplicativo distribuído.

O DAML aborda os problemas de design rígido de frente, pois fornece uma solução para problemas complexos, como sincronização de estado distribuído e criptografia. Para atingir o objetivo, é redesenhado.

O design ou implementação subjacente é abstraído quando um desenvolvedor escreve seu aplicativo blockchain. Ele permite que o desenvolvedor se concentre no requisito abstrato e deixe o DAML lidar com todo o trabalho árduo. Sabendo que DAML é especial, você pode apreciar melhor aprender DAML usando nosso tutorial DAML.

Recursos DAML

Nesta seção de nosso tutorial DAML, aprenderemos sobre os principais recursos do DAML.

Modelo de dados: O DAML permite que os desenvolvedores criem esquemas de dados complexos para seus aplicativos com facilidade. Isso torna mais fácil projetar e implementar requisitos complexos ou processos de negócios.

Permissões refinadas: Os contratos DAML são ajustados para definir permissões. Isso significa que os desenvolvedores podem definir quem pode assinar o contrato, quem pode vê-lo e em que condições.

Logíca de negócios: A lógica de negócios também pode ser integrada com facilidade. Um desenvolvedor pode escrever ações que são necessárias no contrato, suas afirmações, parâmetros e muito mais!

Teste baseado em cenário: O teste baseado em cenário também é possível com DAML. Ele permite que o desenvolvedor teste a lógica de negócios e outros aspectos de seus aplicativos descentralizados, como fluxos de trabalho.

Recursos de tempo de execução

Além dos quatro recursos principais acima, também temos o DAML Runtime. O tempo de execução se refere ao ambiente criado pelo aplicativo durante sua execução. Neste estado ele possui características fundamentais que fazem com que o programa seja executado de forma eficiente e eficaz. Ao aprender sobre eles no tutorial DAML, você será capaz de solidificar seu aprendizado DAML.

Vamos falar sobre eles abaixo.

Abstração de armazenamento → A abstração de armazenamento oferece uma camada de persistência que garante que todos os programas DAML sejam independentes de armazenamento. Em termos simples, os programas DAML não dependem do armazenamento escolhido, pois podem converter os referidos dados em um formato digerível.

abstração de armazenamento

Verificações de autorização → A autorização verifica todas as ações em um contrato. Se a ação não passar na autorização adequada, ela não terá permissão para ser executada.

daml-tutorial-authorisation-checks

O contrato lançará um erro de tempo de execução e informará o comprador ou o desenvolvedor.

daml-tutorial-error.

Rastreamento de responsabilidade → O tempo de execução também é responsável pelo rastreamento de responsabilidade. Assegura que as partes entrem voluntariamente no acordo. Para que isso acontecesse, as assinaturas dos signatários foram necessárias. Isso é feito para proteger o comprador de qualquer comportamento forçado do organizador ou vendedor.

Composibilidade atômica → DAML suporta design atômico. Isso significa que todas as ações são executadas atomicamente e, portanto, podem ser confirmadas ou não podem ser confirmadas. Não existe meio termo quando se trata de execução de contratos. Isso é feito para garantir a segurança do fluxo de trabalho e manter os exploradores afastados.

Sem gastos em dobro → Com o tempo de execução DAML, os contratos são projetados para garantir que nenhum gasto duplo seja possível. Isso significa que o mesmo contrato não pode ser executado duas vezes.

Privacidade que você precisa saber → DAML oferece um nível de subtransação, que torna as informações disponíveis quando aprovadas.

Execução Determinística → Por último, o tempo de execução suporta execução determinística. Isso significa que o efeito de qualquer ação depende do estado atual do razão.

Introdução ao DAML

Nesta seção de nosso tutorial de DAML, examinaremos o guia de introdução para o tutorial de blockchain de DAML. Antes de usar o DAML, você precisa instalá-lo.

Para usar DAML, você precisa seguir um processo de duas etapas.

1) Instalação de dependências

Para usar o DAML, primeiro você precisa instalar as dependências. Para fazer isso, você precisa baixar o SDK e instalá-lo em seu sistema operacional.

Fora isso, seria melhor se você também tivesse o seguinte

  • Visual Studio Code ou qualquer ambiente de desenvolvimento integrado compatível
  • JDK 8 ou superior.

2) Instalação do SDK

Se você estiver usando o Windows, você pode ir para o ligação, e baixe o arquivo executável.

Para Linux ou MAC, você precisa executar o seguinte comando usando curl.

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

Ele solicitará que você adicione ~ / .daml / bin à sua variável PATH. Uma vez feito isso, você está pronto para usar DAML.

Guia do iniciante do Tutorial DAML

Você nunca trabalhou com DAML? Então, não se preocupe, como nesta seção, vamos abordar os conceitos básicos de DAML, seus tipos de dados, modelos, funções, expressões e assim por diante!

Mas, antes de fazermos isso, precisamos entender o Modelo de Razão DA (Ativo Digital). É uma parte importante do nosso tutorial DAML.

Modelo DA Ledger

O modelo DA Ledger está no cerne da DAML. Ele oferece fluxos de trabalho de várias partes com a ajuda de um razão virtual compartilhado. Para ter uma ideia melhor, você pode verificar a captura de tela abaixo.

DAML-Tutorial-Ledger-Model

Fonte: documentação DAML

O modelo é usado para definir a estrutura do razão DA (o quê), o modelo de integridade (quem pode solicitar) e o modelo de privacidade (quem pode ver).

Para obter uma compreensão mais aprofundada do modelo DA Ledger, verifique a documentação oficial aqui.

Contratos Básicos

No núcleo do DAML, você encontrará um livro razão DAML. Vamos analisar um pequeno modelo, pois ele nos ajudará a entender os conceitos essenciais, incluindo transações, modelos de contratos, signatários, módulos DAML e arquivos.

Compromissos

O DAML Ledger contém uma lista de “commits”. Em termos simples, um commit é uma transação enviada ao razão. No contrato, você pode pensar nisso como uma transação ativa que precisa ser executada, e sua execução depende dos atributos e condições do contrato.

Módulos e arquivos DAML

Antes de começar, você precisa mencionar a versão DAML. Isso pode ser feito na parte superior do arquivo DAML. A versão irá notificar o compilador qual versão da linguagem está sendo usada.

daml1,2

Para importar o módulo, você precisa usar a palavra-chave “módulo”.

moduleTokenwhere

Comentários

Se você deseja adicionar comentários, pode fazê-lo usando a palavra-chave “-”.

– Este é um comentário

Modelos

Um modelo é usado para definir o tipo de contrato. Isso define as entidades que têm acesso para executar o contrato. Você pode pensar em contratos como instâncias de modelo.

modelo de token

com

dono: Festa

Onde

dono signatário

Como você pode ver, definimos um modelo de token usando a palavra-chave “modelo”. Também requer um argumento. Mais uma coisa que você pode observar é que ele é orientado a espaços em branco. Se você já usou Python antes, entenderá como o código é estruturado e pretendido.

Por fim, você pode ver a palavra-chave do signatário, que significa os signatários das instâncias do contrato. A autoridade dessas partes é obrigada a tomar medidas sobre o contrato, incluindo arquivamento e criação.

Compreender os cenários usando modelos

Agora que entendemos a estrutura básica de um modelo, vamos agora entender os cenários usando dois outros modelos em nosso tutorial DAML. Mas, antes de fazermos isso, vamos entender o que exatamente é um “cenário.

Cenário

Um cenário pode ser melhor descrito como uma receita de teste que pode ser usada para verificar se os modelos estão se comportando como deveriam. Ele pode ser usado para realizar testes de transação. Vamos dar uma olhada no exemplo abaixo.

token_test_one = cenário fazer

sam <- getParty “sam”

enviar sam fazer

criar token com owner = sam

O cenário acima é o cenário básico que lida com o Token para um grupo conhecido como “sam”.

Para executar o cenário, você precisa usar o DAML Studio.

Para saber mais sobre o cenário, sugerimos que você verifique o página de documentação do cenário aqui.

Tipo de dados

Assim como qualquer linguagem de programação, DAML também oferece suporte a tipos de dados. Os tipos de dados permitem definir uma variável e armazenar dados lá.

Para tornar mais simples para você, vamos pensar em modelos como tabelas de banco de dados. Agora, você pode salvar dados no modelo e ajudar a gerenciá-los facilmente por meio do design do modelo.

Existem muitos tipos de dados nativos em que DAML vem. Inclui o seguinte.

  • Parte → Para armazenar a identidade da entidade. As partes podem enviar transações e assinar contratos.
  • Texto → Armazena o caractere Unicode
  • Int → armazena inteiros de 64 bits
  • Decime → armazena números de ponto fixo
  • Data → armazena uma data
  • Hora → armazena a hora em UTC
  • RelTime → Armazena a diferença horária
  • ContractId → referência ao tipo de contrato

Abaixo está o código para entender alguns dos tipos nativos.

native_test = scenery fazer

Sam <- getParty “Sam”

Mysterio <- getParty “Mysterio”

deixei

my_int = –657

my_dec = 0,001: decimal

meu_texto = “Sam”

my_bool = False

afirmar (Sam / = Mysterio)

afirmar (-my_int == 123)

afirmar (1000.0 * my_dec == 1.0)

afirmar (meu_texto == “Sam”)

DAML também suporta outros tipos de dados, incluindo tuplas, listas e registros.

Para aprender sobre os tipos de dados em DAML, verifique sua página de documentação aqui.

Transformando dados usando escolhas

DAML suporta imutabilidade. Isso significa que sempre que houver necessidade de atualizar os dados; um novo contrato precisa ser criado com os novos dados. No entanto, nem sempre é o caso, pois sempre há algo muito pequeno para mudar e modificar. Por exemplo, uma empresa pode querer alterar seu número de telefone para fazer isso usando escolhas.

Vamos dar uma olhada em um exemplo obtido na documentação DAML.

contato modelo

com

dono: Festa

festa festa

endereço: Texto

telefone: Texto

Onde

dono signatário

dono do controlador pode

UpdateTelephone

: ContractIdContact

com

novoTelefone: Texto

Faz

crie isso com

telefone = novoTelefone

A maior parte do código acima é autoexplicativa. A única coisa que você precisa saber é que definimos uma opção conhecida como “UpdateTelephone”.

As escolhas também podem ser usadas como delegação. Por último, eles também podem ser integrados ao modelo de razão.

Para saber mais sobre as opções de DAML, você pode verificar a página de documentação oficial aqui.

Adicionando restrições a um contrato

Você também pode adicionar restrições ao contrato DAML usando a palavra-chave “garantir”. Você também pode usar o outro mecanismo que utiliza as palavras-chave assert, abort e error para adicionar restrições ao contrato.

Mas, antes de fazer isso, você precisa ter as pré-condições do modelo adequadas definidas em seu contrato.

Para saber mais sobre as restrições e restrições, você pode verificar a documentação aqui.

Partes e autoridade

A DAML tem uma maneira adequada de lidar com as partes e autorizá-las a acessar um contrato. Você pode usá-los não apenas para passar autoridade, mas também para escrever opções avançadas que podem alterar o funcionamento do razão. Essa flexibilidade é importante porque dá às partes ferramentas suficientes para mudar as coisas e também manter a ideia central do contrato intacta.

Por exemplo, você pode evitar a revogação de IOU ou, melhor, fazer uma autorização única usando fluxos de trabalho propor-aceitar. Existem muitas opções que são feitas dentro do DAML para fornecer uma solução para quase todos os cenários lá fora.

Leia mais sobre partidos e autoridades aqui.

Conclusão

Isso nos leva ao final do nosso tutorial DAML. Neste tutorial, aprendemos sobre DAML e o que o torna especial. Também aprendemos sobre o funcionamento interno do DAML e outros aspectos-chave da linguagem de programação, como tipos de dados, cenários e assim por diante. Esses conceitos-chave irão ajudá-lo a se envolver com os projetos DAML que você vai assumir no futuro.

Então, o que você acha do DAML? Você acha que ele tem potencial para se tornar uma linguagem de programação onipresente para criar aplicativos descentralizados? Comente abaixo e deixe-nos saber.