Mesmo do Cardano leva o desenvolvimento assistido por IA a Python, Go, Rust e JavaScript

Durante o Cardano Developers Office Hours, o arquiteto de software Mateusz Czeladka detalhou como o Mesmo oferece suporte ao desenvolvimento de transações assistido por IA, avaliação offline de Plutus e execução entre linguagens. A apresentação também examinou as limitações técnicas da biblioteca e possíveis melhorias.

By SongMarketCap

Cardano News - Mesmo do Cardano leva o desenvolvimento assistido por IA a Python, Go, Rust e JavaScript

O Arquiteto de Software Sênior da Cardano Foundation, Mateusz Czeladka, forneceu um guia técnico do Mesmo durante a 84ª sessão do Developers Office Hours, organizada por Fabian Bormann. A apresentação explorou como a biblioteca de código aberto torna a funcionalidade de desenvolvimento em Cardano acessível em várias linguagens de programação, com atenção especial ao processamento de transações, ao desenvolvimento assistido por IA e à integração com a infraestrutura de blockchain.

A discussão foi além do suporte de linguagens já existente do Mesmo para examinar como sua arquitetura funciona, o que os desenvolvedores podem construir com ele e quais limitações técnicas permanecem na versão apresentada.

Mesmo usa um mecanismo de execução compartilhado para transações em Cardano

O Mesmo é construído em torno do Cardano Client Lib, uma biblioteca de desenvolvimento em Java cuja funcionalidade é compilada em uma biblioteca nativa compartilhada usando GraalVM Native Image. Wrappers específicos de linguagem permitem que aplicações escritas em Python, Go, Rust e JavaScript acessem esse código compilado por meio de uma Interface Binária de Aplicação em C padrão (ABI).

Essa arquitetura permite que os desenvolvedores usem operações suportadas de Cardano sem executar uma Máquina Virtual Java. Ela também oferece acesso a funcionalidades que podem faltar no kit de desenvolvimento principal de uma aplicação.

Czeladka explicou que a abordagem surgiu em parte por causa de diferenças nos cronogramas de manutenção entre as bibliotecas de Cardano. Durante a discussão, os participantes relembraram um período anterior em que a biblioteca Apollo baseada em Go não tinha suporte a transações Plutus V3, exigindo ajustes de arquitetura em aplicações que dependiam dela.

Em vez de substituir ferramentas estabelecidas como MeshJS, PyCardano, Pallas ou Apollo, o Mesmo oferece acesso a funções selecionadas a partir de uma implementação compartilhada.

Suas capacidades incluem gerenciamento de carteiras e endereços, assinatura de transações, operações de staking, scripts nativos e transações de governança de Cardano. A funcionalidade de governança se estende a operações especializadas que envolvem votações do Constitutional Committee e outras ações além da delegação padrão de DRep.

Um componente central é o TX Plan, que descreve transações por meio de dados YAML estruturados. Em vez de construir cada operação por meio de uma sequência de métodos específicos de linguagem, os desenvolvedores fornecem uma definição de transação que o Mesmo interpreta e processa.

Esse modelo permite que aplicações escritas em diferentes linguagens acessem a mesma lógica de transações subjacente, mantendo o controle sobre sua infraestrutura envolvente.

Agentes de codificação com IA podem trabalhar com transações estruturadas de Cardano

Uma área explorada durante a apresentação foi a compatibilidade do Mesmo com o desenvolvimento de software assistido por IA.

O projeto fornece um pacote inicial de IA contendo informações sobre suas interfaces de programação. Os desenvolvedores podem fornecer esses materiais a ferramentas de codificação com IA para ajudar a entender as funções disponíveis, as entradas esperadas e as operações de transação suportadas.

O TX Plan oferece uma interface estruturada para esse fluxo de trabalho. Um agente de codificação com IA pode gerar uma definição de transação em YAML, que uma aplicação pode passar ao Mesmo para a construção da transação.

A distinção entre gerar uma transação e executá-la na blockchain continua sendo importante.

O Mesmo não se conecta de forma independente a nós de Cardano, não recupera informações on-chain nem transmite transações. Essas responsabilidades pertencem à aplicação que integra a biblioteca.

Por exemplo, uma aplicação pode obter UTXOs disponíveis e parâmetros de protocolo de um provedor de dados de blockchain compatível, passar essas entradas ao Mesmo e receber dados de transação serializados. Após a assinatura, a aplicação envia a transação por meio do serviço de rede escolhido.

Czeladka descreveu a execução subjacente como determinística e sem estado, o que significa que as mesmas entradas fornecidas produzem os mesmos resultados sem que a biblioteca altere de forma independente o estado externo da blockchain.

A apresentação também examinou a avaliação de Plutus offline. O Mesmo inclui um avaliador Scalus incorporado que pode calcular as unidades de execução de memória e CPU exigidas por transações de contratos inteligentes suportadas. Os desenvolvedores podem integrar avaliadores alternativos por meio da interface disponível.

Esse arranjo permite que a construção de transações e a avaliação de scripts ocorram localmente, sem exigir uma solicitação de rede separada para a própria avaliação.

O gerenciamento de contas segue uma separação de responsabilidades semelhante. Um objeto de conta pode manter o material de chaves necessário para a geração de endereços e a assinatura de transações, evitando a transmissão repetida de frases mnemônicas entre funções da aplicação.

No entanto, o uso de bibliotecas nativas introduz considerações de gerenciamento de memória. Os participantes discutiram como os recursos devem ser liberados na fronteira entre a linguagem de programação hospedeira e o código nativo, especialmente quando há material criptográfico sensível envolvido.

[NEWSBREAK]

Restrições de pré-lançamento e suporte potencial a WebAssembly

A apresentação identificou várias limitações práticas na implementação do Mesmo.

O suporte a JavaScript na versão demonstrada depende do ambiente de execução Bun. Node.js não é suportado por causa de dificuldades envolvendo sua Foreign Function Interface.

Outra restrição é o tamanho da biblioteca compilada, aproximadamente 60 MB. Czeladka descreveu isso como um possível compromisso para aplicações no lado do servidor e um obstáculo mais significativo para ambientes com requisitos rígidos de tamanho de pacote.

A distribuição nativa também requer compilações compatíveis para diferentes sistemas operacionais e arquiteturas de processadores. Dar suporte a essas combinações adiciona trabalho de manutenção à medida que o projeto se expande.

Czeladka discutiu o WebAssembly como uma possível alternativa futura. As capacidades em desenvolvimento de WebAssembly do GraalVM poderiam eventualmente fornecer um alvo de execução mais portátil, reduzindo a necessidade de distribuir binários nativos separados em várias plataformas. A apresentação não estabeleceu uma data de lançamento nem confirmou a disponibilidade em produção para essa abordagem.

Outras possibilidades de desenvolvimento incluem integrações adicionais com provedores de dados de blockchain, construtores de transações específicos por linguagem, melhoria no tratamento de erros e suporte mais amplo para assinatura e metadados relacionados a contratos.

A implementação apresentada usa o TX Plan como sua interface primária de construção de transações. Métodos de programação mais convencionais poderiam ser desenvolvidos sobre o mecanismo compartilhado se a demanda da comunidade apoiar esse trabalho.

O Mesmo também inclui registros de decisões de arquitetura e documentação de código aberto destinada a ajudar colaboradores a entender e ampliar a implementação.

A equipe está buscando feedback de desenvolvedores que estejam testando os wrappers de linguagem disponíveis e as funções de transação. As contribuições podem incluir novos provedores de dados de blockchain, melhorias no gerenciamento de recursos e suporte para operações ausentes.

Na implementação demonstrada durante o Developers Office Hours, o Mesmo fornece construção de transações, assinatura e avaliação local de Plutus por meio de sua biblioteca nativa compartilhada, enquanto as aplicações permanecem responsáveis pelo acesso à rede e pelo envio das transações concluídas.

Assistir no YouTube