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 EfeitoHeartbeata 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.