Ir para o conteúdo

Funcionalidades Principais do Runtime

Introdução

As redes implantadas via Tanssi têm muitos benefícios graças à sua arquitetura única.

Além disso, as redes com tecnologia Tanssi também são especiais por causa do framework (Substrate) sobre o qual são construídas, que oferece características que os desenvolvedores podem aproveitar para ajustar comportamentos específicos no runtime.

Esta seção aborda algumas dessas funcionalidades centrais: as diferentes origens que uma transação pode ter, os tipos de transações e como são executadas e incluídas em um bloco, a conta especial SUDO e o recurso de atualizações de runtime sem fork.

Origens

Em uma rede Tanssi, todas as chamadas têm uma origem, conceito análogo ao msg.sender em EVM, porém com mais flexibilidade e níveis de privilégio:

  • Root – origem de nível de sistema, com o privilégio mais alto; pode executar qualquer chamada.
  • Signed – origem de uma transação assinada pela chave privada de uma conta on-chain; inclui o endereço como signatário.
  • None – ausência de origem, usada para ações acordadas no nível de runtime (por exemplo, aplicar uma atualização pré-autorizada sem taxa).
  • Custom – origens personalizadas para casos específicos (por exemplo, faixas de governança).

Tipos de Transação

  • Transações assinadas – carga assinada solicitando uma chamada de runtime; normalmente cobram taxa da conta associada.
  • Transações não assinadas – sem conta associada; exigem regras no runtime para evitar spam ou repetição (ex.: acionar uma atualização pré-aprovada).
  • Transações inerentes – inseridas pelo sequenciador ao inicializar o bloco; não ficam no pool de transações; usadas para dados como timestamp do bloco.

Execução de Transações

Transações assinadas são validadas pelas regras do runtime e enfileiradas no pool. Há duas filas: pronta (podem entrar no próximo bloco) e futura (ainda não atendem aos critérios, como nonce futuro). Transações inválidas são rejeitadas.

Durante a construção do bloco, um sequenciador usa um sistema de prioridade:

  • Inicialização (on_initialize) – lógica executada antes das demais transações (ex.: timestamp inerente). Depois, o módulo confere hash pai e raiz da trie.
  • Execução de transações – executa cada transação válida pela prioridade. Como o estado não é armazenado em cache antes, uma falha no meio invalida o bloco; o runtime deve validar bem.
  • Finalização (on_idle/on_finalize) – lógica extra executada ao finalizar; ao fim, o módulo garante que digest e raiz de armazenamento correspondam ao esperado.

Atualizações Sem Fork

Atualizações sem fork permitem mudar a função de transição de estado sem bifurcar a rede. O runtime (blob Wasm) fica on-chain tanto na rede Tanssi quanto na rede alimentada pelo Tanssi. Após o período de atraso configurado, um sequenciador produz um bloco que referencia o novo runtime, e todos os operadores validam com a versão atualizada.

Runtime Upgrade Process Tanssi Networks

Conta SUDO

O módulo SUDO introduz uma conta SUDO capaz de executar chamadas com origem Root, como:

SUDO é útil em testnets para mudanças rápidas, mas traz riscos de centralização em produção; recomenda-se guarda segura das chaves e uso de proxys. Avalie cuidadosamente antes de manter SUDO ativo em ambientes produtivos.

Última atualização: 9 de dezembro de 2025
| Criada: 9 de dezembro de 2025