Files
2026-02-24 14:31:37 +01:00
..
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00
2026-02-24 14:31:37 +01:00

OC-Discovery — Diagrammes de séquence

Tous les fichiers .mmd sont au format Mermaid. Rendu possible via VS Code (extension Mermaid Preview), IntelliJ, ou mermaid.live.

Vue d'ensemble des diagrammes

Fichier Description
01_node_init.mmd Initialisation complète d'un Node (libp2p host, GossipSub, indexers, StreamService, PubSubService, NATS)
02_node_claim.mmd Enregistrement du nœud auprès des indexeurs (claimInfo + publishPeerRecord)
03_indexer_heartbeat.mmd Protocole heartbeat avec calcul du score qualité (bande passante, uptime, diversité)
04_indexer_publish.mmd Publication d'un PeerRecord vers l'indexeur → DHT
05_indexer_get.mmd Résolution d'un pair via l'indexeur (GetPeerRecord + handleNodeGet + DHT)
06_native_registration.mmd Enregistrement d'un indexeur auprès d'un Native Indexer + gossip PubSub
07_native_get_consensus.mmd ConnectToNatives : pool d'indexeurs + protocole de consensus (vote majoritaire)
08_nats_create_resource.mmd Handler NATS CREATE_RESOURCE : connexion/déconnexion d'un partner
09_nats_propagation.mmd Handler NATS PROPALGATION_EVENT : delete, considers, planner, search
10_pubsub_search.mmd Recherche gossip globale (type "all") via GossipSub
11_stream_search.mmd Recherche directe par stream (type "known" ou "partner")
12_partner_heartbeat.mmd Heartbeat partner + propagation CRUD vers les partenaires
13_planner_flow.mmd Session planner (ouverture, échange, fermeture)
14_native_offload_gc.mmd Boucles background du Native Indexer (offload, DHT refresh, GC)

Protocoles libp2p utilisés

Protocole Description
/opencloud/heartbeat/1.0 Heartbeat node → indexeur (long-lived)
/opencloud/heartbeat/indexer/1.0 Heartbeat indexeur → native (long-lived)
/opencloud/resource/heartbeat/partner/1.0 Heartbeat node ↔ partner (long-lived)
/opencloud/record/publish/1.0 Publication PeerRecord vers indexeur
/opencloud/record/get/1.0 Requête GetPeerRecord vers indexeur
/opencloud/native/subscribe/1.0 Enregistrement indexeur auprès du native
/opencloud/native/indexers/1.0 Requête de pool d'indexeurs au native
/opencloud/native/consensus/1.0 Validation de pool d'indexeurs (consensus)
/opencloud/resource/search/1.0 Recherche de ressources entre peers
/opencloud/resource/create/1.0 Propagation création ressource vers partner
/opencloud/resource/update/1.0 Propagation mise à jour ressource vers partner
/opencloud/resource/delete/1.0 Propagation suppression ressource vers partner
/opencloud/resource/planner/1.0 Session planner (booking)
/opencloud/resource/verify/1.0 Vérification signature ressource
/opencloud/resource/considers/1.0 Transmission d'un "considers" d'exécution