# Sequence diagram for RLN Relay protocol (registration) msc { hscale = "2"; d [label = "RLN-Relay Node B"], a [label = "RLN-Relay Node A"],b [label = "Membership Contract"]; # a rbox a [label="Relay Node A"], # b note b [label="Membership Contract"], # d rbox d [label = "Relay Node B"]; |||; a box a [ label=" \n Generate sk,pk \n "] ; a=>b [ label = " \n Register(pk, x ETH) \n " ] ; |||; b box b [label=" \n Insert pk to the list \n "]; //|||; //b=>a [ label = "index"]; |||; ..., ---; ... [ label = "Other relay nodes register and the membership contract gets updatetd" ]; ..., ---; # a=>b [ label = "getRoot()" ] ; # b box b [label=" \n root: Get the current root\n "]; # b=>a [ label = "root"]; # ..., --- [ label = " " ]; # a=>b [ label = "getAuthPath(index)" ] ; # b box b [label=" \n authPath: Calculate the authentication path of the leaf with the given index and based on the current tree\n "]; # b=>a [ label = "authPath"]; }