🧬 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 paraheaplessno 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).