LLeafVellin
Ambiente de programação com IA

Construção de raiz Merkle com etiquetas

Construa uma raiz Merkle SHA-256 de uma a 64 folhas de até 4096 bytes com etiquetas distintas para folhas e pais.

● ● ●LeafVellin●
Fluxos de trabalho · Construção de raiz Merkle com etiquetas ×
import hashlib

def merkle_root(leaves):
    if type(leaves) is not list or not 1 <= len(leaves) <= 64 or any(type(x) is not bytes or len(x) > 4096 for x in leaves):
        raise ValueError("merkle.leaves")
    level = [hashlib.sha256(b"\x00"+x).digest() for x in leaves]
    while len(level) > 1:
        if len(level) % 2:
            level.append(level[-1])
        level = [hashlib.sha256(b"\x01"+level[i]+level[i+1]).digest() for i in range(0, len(level), 2)]
    return level[0].hex()
✳Construção de raiz Merkle com etiquetas
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
ProjetoTeste nível ímpar duplicando o último nó e rejeite entrada vazia sem tratar a raiz como prova de propriedade.
Revise antes de aplicarCompare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
ModelosConfigure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Fluxos de trabalho

Construção de raiz Merkle com etiquetas

Fluxos de trabalho ↗
Fluxos de trabalho
import hashlib

def merkle_root(leaves):
    if type(leaves) is not list or not 1 <= len(leaves) <= 64 or any(type(x) is not bytes or len(x) > 4096 for x in leaves):
        raise ValueError("merkle.leaves")
    level = [hashlib.sha256(b"\x00"+x).digest() for x in leaves]
    while len(level) > 1:
        if len(level) % 2:
            level.append(level[-1])
        level = [hashlib.sha256(b"\x01"+level[i]+level[i+1]).digest() for i in range(0, len(level), 2)]
    return level[0].hex()
Ambiente de programação com IA

Mantenha estáveis as convenções de bytes ao alterar código de hash

LeafVellin é um ambiente de programação para Windows para discutir mudanças de código com um modelo de IA conectado. Código de hash exige uma descrição especialmente precisa dos bytes processados: uma mudança de representação aparentemente inofensiva pode produzir um resultado inteiramente diferente. Comece pelo requisito de interoperabilidade e por um caso conhecido de entrada e saída antes de pedir uma refatoração.

O exemplo de árvore de Merkle com marcadores oferece uma tarefa focada de projeto. Você pode pedir ao assistente que examine a ordem das folhas, os prefixos distintos de folhas e nós internos e a duplicação do último nó quando a quantidade é ímpar. Traga o código que fornece as folhas e consome a raiz para que essas convenções permaneçam visíveis ao longo de todo o caminho alterado.

Revise as alterações propostas com casos fixos para uma única folha, uma quantidade par e uma ímpar. Execute as verificações no projeto e compare os valores exatos das raízes, não apenas a forma da saída. Se outra implementação precisar concordar, use suas convenções documentadas e casos independentes; compartilhar apenas o nome da função de hash não comprova compatibilidade entre árvores.

A escolha de modelos de IA sem filtros está disponível por endpoints compatíveis com OpenAI ou da Anthropic que sejam suportados, na medida em que esses serviços ofereçam o modelo selecionado. Configure credenciais quando necessário e verifique ferramentas e limites de contexto. As restrições do provedor continuam valendo, e a decisão final sobre uma mudança no código de hash depende da sua revisão e das evidências.

Perguntas antes de refatorar uma árvore de bytes

Em que duas implementações devem concordar além da função de hash?

Especifique os bytes e a ordem das folhas, os prefixos, a concatenação de nós internos e o tratamento de quantidades ímpares de nós. Inclua casos exatos para a construção escolhida. Um nome de hash compartilhado não implica concordância sobre essas convenções ao redor.

Por que incluir um caso com uma folha?

Ele isola a convenção da folha do processamento de nós internos e facilita detectar uma etapa extra acidental de hash. Combine-o com casos de várias folhas em quantidades pares e ímpares para que a revisão cubra também as regras de ramificação da construção.

Folhas de texto devem ser passadas diretamente ao código de hash?

Defina a codificação em bytes e qualquer normalização antes do hash. Inclua o ponto de conversão na solicitação se houver texto. Caso contrário, uma refatoração pode preservar o texto legível enquanto altera os bytes e, portanto, o valor da raiz.

Uma raiz correspondente prova que o sistema mais amplo é confiável?

Ela estabelece concordância para a construção e as entradas testadas, não todas as propriedades do sistema ao redor. Revise como as raízes são armazenadas, comparadas e usadas na aplicação e mantenha alegações mais amplas de integridade dentro das evidências efetivamente disponíveis.

Baixar para Windows ↗

LeafVellin · Atualizado 2026-10-25