| 
									
										
										
										
											2019-03-18 18:25:29 -07:00
										 |  |  | msc { | 
					
						
							|  |  |  |   hscale="2.2"; | 
					
						
							|  |  |  |    VoteSigner, | 
					
						
							|  |  |  |    Validator, | 
					
						
							|  |  |  |    Cluster, | 
					
						
							|  |  |  |    StakerX, | 
					
						
							|  |  |  |    StakerY; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    |||; | 
					
						
							|  |  |  |   Validator box Validator [label="boot.."]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   VoteSigner <:> Validator [label="register\n\n(optional)"]; | 
					
						
							|  |  |  |   Validator => Cluster [label="VoteState::Initialize(VoteSigner)"]; | 
					
						
							|  |  |  |   StakerX => Cluster [label="StakeState::Delegate(Validator)"]; | 
					
						
							|  |  |  |   StakerY => Cluster [label="StakeState::Delegate(Validator)"]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      |||; | 
					
						
							|  |  |  |   Validator box Cluster [label="\nvalidate\n"]; | 
					
						
							|  |  |  |   Validator => VoteSigner [label="sign(vote)"]; | 
					
						
							|  |  |  |   VoteSigner >> Validator [label="signed vote"]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Validator => Cluster [label="gossip(vote)"]; | 
					
						
							|  |  |  |   ...; | 
					
						
							|  |  |  |   ... ; | 
					
						
							|  |  |  |   Validator abox Validator [label="\nmax\nlockout\n"]; | 
					
						
							|  |  |  |        |||; | 
					
						
							| 
									
										
										
										
											2020-01-22 16:53:42 -08:00
										 |  |  |   Cluster box Cluster [label="credits redeemed (at epoch)"]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-03-18 18:25:29 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | } |