Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🧬 DSL de Plasmídeos

A DSL (Domain Specific Language) do PAEBIRU permite definir lógica de governança e computação de forma declarativa, que é então compilada para WebAssembly (WASM).


1. Estrutura do Arquivo (.toml / .hcl)

Um plasmídeo é definido por metadados e comportamentos:

[plasmid]
name = "meu-contrato"
version = "1.0.0"

[behavior]
on_init = "state.count = 0"
on_message = """
    if message.type == "increment" {
        state.count += 1
    }
"""

2. Tipos de Dados Suportados

  • Inteiros: i32, i64, u32, u64.
  • Decimais: f32, f64.
  • Booleanos: bool.
  • Coleções: Map, List (mapeados para heapless no WASM).

3. APIs Disponíveis (Host Calls)

O plasmídeo interage com o nó através de funções seguras:

  • log::info(msg): Emite logs para o nó host.
  • network::send(target, msg): Envia mensagens para outros nós.
  • storage::get(key): Recupera estado persistente do C.A.P.I.B.A.
  • entropy::now(): Obtém o Langevin Tick atual.

4. Segurança e Restrições

  • Determinismo: Plasmídeos não podem acessar o tempo do sistema ou números aleatórios não-determinísticos.
  • Gas/Metering: Cada instrução WASM consome créditos no LandauerLedger.
  • Isolamento: Não há acesso ao sistema de arquivos ou rede direta (apenas via host calls).

5. Veja também