-
Notifications
You must be signed in to change notification settings - Fork 2
/
state_closed_arbitration.plantuml
88 lines (71 loc) · 2.63 KB
/
state_closed_arbitration.plantuml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
@startuml
state "Data Check & Cognitive Work" as cognition {
state "..." as prev2
[*] --> prev2
prev2 --> [*]
}
state "Validation" as validation {
state "..." as prev
state "Delivering results, payouts & mining" as delivering
delivering: – Can have "partial validation" status
delivering: – In this case QA stake is partially repaid to the Client
delivering: – Payouts and cognitive mining
prev --> delivering: ...
delivering --> [*]
}
prev2 --> validation
state "Closed Arbitration" as closed {
state "Lottery for arbiters" as lottery
state "Gathering arbiters" as gathering
state "Validating" as validating
state "Disclosing Veto" as disclosing
state "Counting votes" as counting
state "Fineing arbiters" as fineing
state "Waiting appeal" as waiting
state "Killing Faulty nodes" as killing
lottery: – All arbiter nodes participate
lottery: – Chances are proportional to stake and reputation
gathering: – Awaits congirmations from
gathering: all selected arbiters
gathering: – Timeout leads to penalty
gathering: and arbiter replacements
validating: – Limited by time
validating: – Timeout initiates new
validating: lottery to replace delayed
validating: arbiters with a new ones
validating: and leads to a fine
disclosing: – Limited by time
disclosing: – Timeout leads to fine
disclosing: arbiters are not replaced
fineing: – Arbiters are fined
fineing: loosing reputation and stakes
counting: – Defines True and Faulty Nodes
counting: – Required 100% votes
waiting: – Wait for public appeals
waiting: with some given timeout time
killing: – Removing stakes/reputation from
killing: the Nodes reported Faulty
validation --> lottery: initial appeal\nwas submitted
lottery --> gathering
lottery --> delivering: not enough\narbiters
gathering --> lottery: some arbiters\nrejected or\ntimed out
gathering --> validating: all arbiters\nresponded
gathering --> delivering: timeout\nlimit\nreached
validating --> disclosing: all arbiters\nsumitted results
validating --> lottery: for timed out\narbiters
validating --> validating: first\ntimeouts
disclosing --> counting: arbiters\nsubmitted keys
disclosing --> fineing: some arbiters\ntimed out
fineing --> counting
counting --> delivering: no Faulty\nnodes
counting --> waiting: Faulty nodes\nfound
waiting --> killing: No appeals\nwere submitted
killing --> delivering
}
state "Public Arbitration" as public {
state "..." as more
}
waiting --> public: public appeal\nwas submitted
counting --> public: unanimous Verdict\nis not reached
public --> delivering
@enduml