WEB3DEV

Cover image for Introduzindo a nova ferramenta de interface de linha de comando para Marlowe
Fatima Lima
Fatima Lima

Posted on • Atualizado em

Introduzindo a nova ferramenta de interface de linha de comando para Marlowe

Aprenda como enviar transações e interagir com contratos Marlowe da CLI

Image description

Marlowe é uma linguagem específica de domínio (DSL) de código aberto com um pacote de produtos para a comunidade que vai catalisar a adoção da Cardano nas finanças. Ela está constantemente sendo aperfeiçoada e atualizada e uma interface de linha de comando (CLI) é apenas algo de que você não pode prescindir. Então, nós criamos uma forma mais conveniente de interagir com Marlowe usando a nova ferramenta CLI. Essa ferramenta nova suporta um fluxo de trabalho direto para usuários que desejam executar contratos da linha de comando. Ela te permite focar no próprio contrato Marlowe, enquanto a ferramenta gerencia detalhes do input e do estado para o contrato. Além disso, ela automatiza muitos aspectos do Plutus assim como a interação com o próprio nó da Cardano para reduzir a sobrecarga sobre os usuários.

Objetivo

A nova ferramenta CLI da Marlowe facilita o desenvolvimento interno e testa os contratos da Marlowe. Isso inclui medir os tamanhos das transações, enviar transações, testar integrações de carteiras e validadores de debugging (depuração). Também fornece integração entre fluxos de trabalho de desenvolvedor externo e o conjunto de ferramentas para os contratos Marlowe, semelhante a maneira como a comunidade de desenvolvimento da Cardano integrou fortemente a ferramenta CLI à vários serviços como, livrarias, faucets, cunhagem de tokens, mercados etc.

Ela também é um importante passo no caminho para a ênfase no teste de esforço do nosso código antes do lançamento oficial da Marlowe, já que ela fornece acesso antecipado para os recursos e possibilidades no testnet e posteriormente no mainnet.

Além disso, essa nova ferramenta CLI se torna uma ferramenta muito útil para treinamento de usuários em como se familiarizar com a Marlowe. Vamos demonstrar como usá-la durante o próximo Programa de Pioneiros da Marlowe que será lançado daqui a algumas semanas! Fique ligado em nosso Canal Discord da Marlowe para detalhes em relação a data de início do curso e em como você pode se engajar.

Executando Contratos Marlowe

O comando cli da marlowe suporta alguns fluxos de trabalho otimizados e de alto nível para executar contratos Marlowe, mas aqui vamos nos concentrar num fluxo de trabalho que resume as especificidades do uso da linguagem Plutus da Marlowe. A ferramenta é instalada da mesma forma que outras ferramentas da Cardano, usando comandos-padrão Cabal ou Nix. O uso básico envolve apenas alguns comandos:

  • Criar um contrato exemplo de um template
  • Iniciar o contrato de forma que a transação de criação possa ser enviada.
  • Aplicar inputs a um contrato
  • Retirar fundos de um contrato
  • Enviar uma transação de criação, aplicação de inputs ou retirada
  • Consultar o histórico de um contrato

Figura 1: Fluxo de trabalho de alto nível para executar contratos Marlowe numa linha de comando. Cada retângulo corresponde a uma execução de um comando marlowe-cli.

Existem várias maneiras de projetar um contrato Marlowe, mas as mais fáceis são usando o comando template CLI ou o Playground Marlowe. Também pode-se criar contratos com programas usando Haskell, JavaScript ou qualquer outra linguagem que possa gerar os arquivos JSON necessários para incorporar o contrato e seu estado inicial. O comando template da CLI pode gerar contratos de testes simples, contratos de caução, títulos de cupom zero, troca de tokens e opções de compras cobertas. O playground contém oito contratos de exemplo, mas você também pode elaborar um contrato personalizado da Malowe com ele.

Uma vez que um contrato foi criado e seu estado inicial definido, o comando initialize da CLI agrupa estas informações com detalhes da rede Cardano onde ele será executado. O único arquivo .marlowe no formato JSON resultante contém todas as informações necessárias para executar ou estudar o contrato Marlowe. Além do contrato e seu estado atual, ele contém o endereço dos validadores Marlowe, uma cópia serializada do seu script Plutus e detalhes da rede. Examinar e extrair informações desse arquivo JSON pode ser útil para aprender sobre o funcionamento da Marlowe, mas não é necessário para executar contratos Marlowe. Uma vez que essa informação necessária tenha sido agrupada, o comando run execute do CLI envia a transação Plutus atual para a blockchain Cardano, imprime estatísticas sobre a transação e aguarda a confirmação.

A aplicação de inputs a um contrato segue um processo mais simples. O comando prepare do CLI permite definir um depósito de fundos para o contrato, fazer uma escolha nele ou notificá-lo. Isso pega o arquivo .marlowe anterior como input e produz um novo output, que você pode enviar com o comando execute. O comando prepare vai te avisar se o input é ilegal ou inoportuno.

Retirar fundos pagos por um contrato Marlowe é realizado com o comando withdraw, que permite que você selecione o endereço no qual os fundos serão recebidos. A seleção de endereços fornece flexibilidade para disponibilização de fundos, de forma que os endereços de output não sejam “hard wired” (“amarrados”) no próprio contrato.

Consultar o histórico de um contrato pode também ser feito pela linha de comando ou você pode usar o explorador da blockchain Cardano.

Perspectivas

A ferramenta de linha de comando também fornece recursos avançados para a criação e manipulação dos validadores do Plutus, datums, redeemers, e hashes envolvidos nos contratos Marlowe. Os contratos também podem ser comprimidos (usando hashes do Merkle), que possibilita a execução de contratos muito maiores do que permitiriam os limites do protocolo Cardano em relação a tamanho da transação e da memória.Você também pode usar a CLI para executar contratos Marlowe no PAB, eliminando a necessidade de gerenciamento do UTxO (Unspent Transaction Output) e, ao invés disso, deixando uma carteira gerenciá-lo.

A ferramenta CLI é periodicamente aprimorada para ir ao encontro das necessidades do desenvolvedor conforme elas surgem. Além disso, para simplificar ainda mais os fluxos de trabalho da Marlowe, os recursos de teste de contrato da ferramenta estão sendo expandidos.

Por favor, junte-se a nós no canal do discord da Marlowe para se engajar nas discussões, fazer perguntas e ouvir as últimas notícias sobre a Marlowe.

Gostaria de agradecer ao Brian Bush, software engineer para a Marlowe, por sua ajuda escrevendo esse artigo.

18 de abril, 2022.

Este artigo foi escrito por Niamh Ahern e traduzido por Fátima Lima. O original pode ser lido aqui.

Latest comments (0)