39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
|
|
@startuml 16_archi_config_seed
|
||
|
|
skinparam componentStyle rectangle
|
||
|
|
skinparam backgroundColor white
|
||
|
|
skinparam defaultTextAlignment center
|
||
|
|
|
||
|
|
title C2 — Mode seed (sans natif)\nIndexerAddresses seuls · AdmittedAt = zero
|
||
|
|
|
||
|
|
package "Couche 2 — Indexeurs seeds" #E9F7EF {
|
||
|
|
component "Indexer A\n(seed, AdmittedAt=0)" as IA #A9DFBF
|
||
|
|
component "Indexer B\n(seed, AdmittedAt=0)" as IB #A9DFBF
|
||
|
|
}
|
||
|
|
|
||
|
|
package "Couche 3 — Nœuds" #FEFBD8 {
|
||
|
|
component "Node 1" as N1 #FAF0BE
|
||
|
|
component "Node 2" as N2 #FAF0BE
|
||
|
|
}
|
||
|
|
|
||
|
|
note as NNative #FFDDDD
|
||
|
|
Aucun natif configuré.
|
||
|
|
AdmittedAt = zero → IsStableVoter() = false
|
||
|
|
Phase 2 sans votants : Phase 1 conservée directement.
|
||
|
|
Risque D20 : circularité du trust (seeds se valident mutuellement).
|
||
|
|
end note
|
||
|
|
|
||
|
|
' Heartbeats nœuds → indexeurs seeds
|
||
|
|
N1 -[#E67E22]--> IA : heartbeat long-lived (20s)
|
||
|
|
N1 -[#E67E22]--> IB : heartbeat long-lived (20s)
|
||
|
|
N2 -[#E67E22]--> IA : heartbeat long-lived (20s)
|
||
|
|
N2 -[#E67E22]--> IB : heartbeat long-lived (20s)
|
||
|
|
|
||
|
|
note bottom of IA
|
||
|
|
Après 2s : goroutine async
|
||
|
|
fetchNativeFromIndexers → ?
|
||
|
|
Si natif trouvé → ConnectToNatives (upgrade vers C1)
|
||
|
|
Si non → mode indexeur pur (D20 actif)
|
||
|
|
end note
|
||
|
|
|
||
|
|
@enduml
|