Gleam.br Wiki

GBR: Requisitos do Backbone de Mensageria (GossipSub e Layer 0) | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

GBR: Requisitos do Backbone de Mensageria (GossipSub e Layer 0)

*Requisitos Ubíquos (Ubiquitous Requirements)*

  • *UBQ-01:* O motor de roteamento GossipSub deve manter o estado da rede (assinaturas de tópicos e topologia de vizinhos) completamente desacoplado da semântica dos dados transmitidos, atuando estritamente como um correio cego para contentores de bytes.
  • *UBQ-02:* Todo o código-fonte da fundação de rede deve ser rigorosamente documentado com a sintaxe canónica do sistema (////), providenciando artefactos de compilação sem alertas (Zero Warnings) para atestar maturidade corporativa.

*Requisitos Orientados a Eventos (Event-Driven Requirements)*

  • *EVD-01:* Quando a infraestrutura de um agente precisar de notificar múltiplos nós de uma atualização em massa (ex: transição de estado BPMN global), o sistema deve encaminhar a mensagem através do canal de publicação do gbr_p2p_gossipsub, em vez de invocar múltiplas aberturas de túneis Yamux diretos.
  • *EVD-02:* Quando a máquina de estados OTP do roteador Gossip for iniciada (actor.new_with_initialiser), o processo deve acionar ciclicamente o Efeito Heartbeat a cada segundo, desencadeando as rotinas de limpeza, otimização e troca de vizinhos (Peer eXchange).

*Requisitos Orientados a Estado (State-Driven Requirements)*

  • *STD-01:* Enquanto o nó processar pacotes encriptados (via gbr_p2p_crypto), o runtime Erlang deve garantir que a rotina executada pelo Rust não interfira na latência do loop de eventos principal, exigindo a sua alocação no thread pool paralelo de trabalho sujo (Dirty Schedulers).

*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*

  • *UNW-01:* Se a infraestrutura de malha intercetar mensagens de peers cujo comportamento indicie ataques de spam ou Sybil, o mecanismo da versão 1.1 do GossipSub deverá aplicar regras silenciadoras (Punição por Scoring e Mensagens PRUNE), isolando os ofensores sem necessidade de intervenção centralizada.
  • *UNW-02:* Se a inicialização do módulo P2P for efetuada num ambiente que ainda não efetuou o build (compilação) da NIF C/Rust nativa, a biblioteca deve instanciar falhas limpas através dos adaptadores dummy em Erlang, instruindo ativamente o operador de infraestrutura sobre a dependência em falta.