Equipe Plutus da Cardano finaliza modelos de custo para novas funções de Dijkstra
A equipe adicionou 65 casos de teste para operações com valores de tokens e corrigiu o comportamento do compilador. A atualização também abrange a compilação do Plutus V4 e ferramentas para verificar os modelos formais do sistema.
By SongMarketCap
Updated:
A equipe do Plutus finalizou os modelos de custo para keepPolicies e dropPolicies, duas funções embutidas em desenvolvimento para a era Dijkstra da Cardano. Em uma atualização de 4 de novembro, o líder de engenharia de software Ziyang Liu também relatou novos testes, atualizações de especificação e correções no compilador.
O trabalho abrange como os contratos inteligentes lidam com valores de tokens e contabilizam recursos de execução. São mudanças de desenvolvimento que apoiam a preparação para Dijkstra; o relatório não anuncia sua ativação na mainnet da Cardano.
Novas funções filtram tokens por política
As duas funções pertencem ao CIP-0168, uma proposta que estende operações sobre BuiltinValue, o tipo de dado usado para representar quantidades de ativos em contratos inteligentes Plutus. Funções embutidas fornecem operações diretamente suportadas pelo sistema de execução.
Cardano agrupa tokens nativos sob identificadores de política associados às suas regras de cunhagem. keepPolicies mantém as parcelas de um valor associadas aos identificadores selecionados, enquanto dropPolicies as remove. Um contrato que processa vários grupos de tokens pode usar essas funções para isolar os ativos relevantes para uma verificação específica.
As mudanças mescladas limitam a lista de políticas aceita por qualquer uma das funções a 256 identificadores. Seus modelos de custo concluídos definem como a execução é contabilizada em unidades de CPU e memória, que compõem parte do orçamento de execução de um contrato inteligente.
Testes e correções no compilador abordam o comportamento do programa
A equipe adicionou 65 casos de conformidade para os novos builtins de Value. Esses testes comparam a saída da implementação com o resultado esperado para entradas definidas. As novas funções e multiIndexArray também foram documentadas na especificação do Plutus Core, fornecendo uma referência escrita para seu comportamento.
Uma correção separada aborda constant folding, uma otimização que calcula expressões adequadas durante a compilação em vez de deixá-las para a execução. As passagens do compilador afetadas podiam anteriormente simplificar certas expressões de uma forma que descartava incorretamente computações que falham. A correção preserva essas computações quando as condições necessárias para a simplificação não são atendidas.
A atualização também corrige a compilação dos tipos de contexto do Plutus V4, que descrevem as informações disponíveis para os scripts ao validar transações. Além disso, os modelos de memória para lookupCoin e valueContains foram alinhados com os parâmetros existentes do modelo de custo.
[NEWSBREAK]
Verificações formais se expandem enquanto a implementação continua
A equipe introduziu uma ferramenta que gera testes de verificação de tipos em Agda a partir da suíte de conformidade existente. Agda é uma linguagem de programação e um assistente de provas usado para expressar modelos formais e verificar sua consistência. A ferramenta permite que os casos de teste já usados na implementação apoiem verificações nesse ambiente formal.
Os novos builtins também foram adicionados à metateoria, a descrição matemática usada para raciocinar sobre programas Plutus. Eles aparecem atualmente como postulados, o que significa que o modelo assume seu comportamento especificado enquanto o trabalho adicional de implementação continua. Outra mudança mesclada estende uma ferramenta que verifica se uma otimização do compilador preserva o comportamento do programa.
O trabalho restante inclui implementar arrays e byte strings no modelo formal, corrigir a certificação de uma otimização separada do compilador e melhorar a máquina CEK que executa programas Plutus Core. Esses itens permanecem listados como trabalho em andamento no relatório de 4 de novembro.