Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


From this point onwards member will communicate UDP messages using cluster-key as described in following diagram

 

PlantUML
align

...

center
titletitle This diagram shows a member (N) using a locator (L) discovering the Coordinator (C) and joining
title This diagram shows a member (N) using a locator (L) discovering the Coordinator (C) and joining
hide footbox
entity N
entity L
entity C
N -> L : FindCoordinatorRequest(myId) 
note right of N : via tcp/ip over ssl while starting the new node. 
L --> N : FindCoordinatorResponse(c) this will have publickey for coordinator
note right of N
Restart of locator will use saved publickey in view.dat file, to encrypt FindCoordinator request over udp.
We will prefix its publicKey with FindCoordinator message, so that member can decrypt findCoordinator request.
end note
N -> C : N's Public key and JoinRequest (this request will be encrypted using N-C key)
note left of C : Application can authenticate new member here.
C -> N : coordinator will send joinResponse containing cluster-secret-key. This message will be encrypted using N-C key.
note right of N
From here all communication will happen through cluster-secret-key
end note
C -> N : PrepareView(c,l,n) 
N --> C : ack
C -> L : PrepareView(c,l,n)
L --> C : ack
C -> N : InstallView(c,l,n)
N --> C : ack
C -> L : InstallView(c,l,n)
L --> C : ack

...

Special case: When locator restarts, it knows the previous view which was saved in view.dat file. This file will contain the public keys of all the members in the view as well. Thus, now locator sends “FindCoordinatorRequest” using udp message instead of tcp as described above. We will encrypt “FindCoordinatorRequest” request using saved public key of member to find the coordinator.

...