diff --git a/content/_img-sources/negative-unl-1.uxf b/content/_img-sources/negative-unl-1.uxf new file mode 100644 index 0000000000..d71c86c365 --- /dev/null +++ b/content/_img-sources/negative-unl-1.uxf @@ -0,0 +1,528 @@ + + + 10 + + UMLClass + + 50 + 110 + 20 + 20 + + + + + + Text + + 40 + 40 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 80 + 310 + 220 + + -- +To Disable: +*UnsteadyB* + +To Re-Enable: +(none) + +-- +Disabled: +(none) + + + + UMLClass + + 80 + 110 + 20 + 20 + + + + + + UMLClass + + 110 + 110 + 20 + 20 + + + + + + UMLClass + + 140 + 110 + 20 + 20 + + + + + + UMLClass + + 170 + 110 + 20 + 20 + + + + + + UMLClass + + 200 + 110 + 20 + 20 + + + + + + UMLClass + + 230 + 110 + 20 + 20 + + + + + + UMLClass + + 260 + 110 + 20 + 20 + + + + + + UMLClass + + 50 + 150 + 20 + 20 + + + + + + UMLClass + + 80 + 150 + 20 + 20 + + + + + + UMLClass + + 110 + 150 + 20 + 20 + + + + + + UMLClass + + 140 + 150 + 20 + 20 + + + + + + UMLClass + + 170 + 150 + 20 + 20 + + + + + + UMLClass + + 200 + 150 + 20 + 20 + + + + + + UMLClass + + 230 + 150 + 20 + 20 + + + + + + UMLClass + + 260 + 150 + 20 + 20 + + + + + + UMLClass + + 50 + 190 + 20 + 20 + + + + + + UMLClass + + 80 + 190 + 20 + 20 + + + + + + UMLClass + + 110 + 190 + 20 + 20 + + + + + + UMLClass + + 140 + 190 + 20 + 20 + + + + + + UMLClass + + 170 + 190 + 20 + 20 + + + + + + UMLClass + + 200 + 190 + 20 + 20 + + + + + + UMLClass + + 230 + 190 + 20 + 20 + + + + + + UMLClass + + 260 + 190 + 20 + 20 + + + + + + UMLClass + + 50 + 230 + 20 + 20 + + + + + + UMLClass + + 80 + 230 + 20 + 20 + + + + + + UMLClass + + 110 + 230 + 20 + 20 + + + + + + UMLClass + + 140 + 230 + 20 + 20 + + + + + + UMLClass + + 170 + 230 + 20 + 20 + + + + + + UMLClass + + 200 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 270 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 270 + 20 + 20 + + + + + + UMLClass + + 80 + 270 + 20 + 20 + + + + + + UMLClass + + 110 + 270 + 20 + 20 + + + + + + UMLClass + + 140 + 270 + 20 + 20 + + + + + + UMLClass + + 170 + 270 + 20 + 20 + + + + + + UMLClass + + 200 + 270 + 20 + 20 + + lt=. +fg=gray + + + + Text + + 360 + 40 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 80 + 250 + 220 + + Quorum: 31/38 +lt=. + + + + UMLClass + + 40 + 80 + 250 + 180 + + +lt=. + + + + Relation + + 200 + 280 + 40 + 70 + + lt=<- + 10.0;10.0;20.0;50.0 + + + Relation + + 230 + 280 + 40 + 70 + + lt=<- + 10.0;10.0;20.0;50.0 + + + UMLNote + + 210 + 330 + 130 + 70 + + MissingA and UnsteadyB go offline +bg=yellow +transparency=0 +style=wordwrap + + + diff --git a/content/_img-sources/negative-unl-10.uxf b/content/_img-sources/negative-unl-10.uxf new file mode 100644 index 0000000000..4900c4a33f --- /dev/null +++ b/content/_img-sources/negative-unl-10.uxf @@ -0,0 +1,959 @@ + + + 10 + + UMLClass + + 50 + 100 + 20 + 20 + + + + + + Text + + 40 + 30 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 70 + 310 + 220 + + -- +To Disable: +(none) + +To Re-Enable: +*MissingA* + +-- +Disabled: +MissingA +layer=-1 + + + + UMLClass + + 80 + 100 + 20 + 20 + + + + + + UMLClass + + 110 + 100 + 20 + 20 + + + + + + UMLClass + + 140 + 100 + 20 + 20 + + + + + + UMLClass + + 170 + 100 + 20 + 20 + + + + + + UMLClass + + 200 + 100 + 20 + 20 + + + + + + UMLClass + + 230 + 100 + 20 + 20 + + + + + + UMLClass + + 260 + 100 + 20 + 20 + + + + + + UMLClass + + 50 + 140 + 20 + 20 + + + + + + UMLClass + + 80 + 140 + 20 + 20 + + + + + + UMLClass + + 110 + 140 + 20 + 20 + + + + + + UMLClass + + 140 + 140 + 20 + 20 + + + + + + UMLClass + + 170 + 140 + 20 + 20 + + + + + + UMLClass + + 200 + 140 + 20 + 20 + + + + + + UMLClass + + 230 + 140 + 20 + 20 + + + + + + UMLClass + + 260 + 140 + 20 + 20 + + + + + + UMLClass + + 50 + 180 + 20 + 20 + + + + + + UMLClass + + 80 + 180 + 20 + 20 + + + + + + UMLClass + + 110 + 180 + 20 + 20 + + + + + + UMLClass + + 140 + 180 + 20 + 20 + + + + + + UMLClass + + 170 + 180 + 20 + 20 + + + + + + UMLClass + + 200 + 180 + 20 + 20 + + + + + + UMLClass + + 230 + 180 + 20 + 20 + + + + + + UMLClass + + 260 + 180 + 20 + 20 + + + + + + UMLClass + + 50 + 220 + 20 + 20 + + + + + + UMLClass + + 80 + 220 + 20 + 20 + + + + + + UMLClass + + 110 + 220 + 20 + 20 + + + + + + UMLClass + + 140 + 220 + 20 + 20 + + + + + + UMLClass + + 170 + 220 + 20 + 20 + + + + + + UMLClass + + 200 + 220 + 20 + 20 + + + + + + UMLClass + + 230 + 260 + 20 + 20 + + + + + + UMLClass + + 50 + 260 + 20 + 20 + + + + + + UMLClass + + 80 + 260 + 20 + 20 + + + + + + UMLClass + + 110 + 260 + 20 + 20 + + + + + + UMLClass + + 140 + 260 + 20 + 20 + + + + + + UMLClass + + 170 + 260 + 20 + 20 + + + + + + UMLClass + + 200 + 260 + 20 + 20 + + + + + + Text + + 360 + 30 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 70 + 250 + 220 + + Quorum: 30/37 +lt=. + + + + UMLClass + + 40 + 70 + 250 + 180 + + +lt=. + + + + UMLNote + + 350 + 370 + 200 + 110 + + Admins remove MissingA from their configured UNLs. As a result, it's scheduled to be removed from the Negative UNL. +bg=yellow +transparency=0 +style=wordwrap + + + + UMLClass + + 50 + 420 + 20 + 20 + + + + + + Text + + 40 + 350 + 270 + 30 + + fontsize=18 +Effective UNL + + + + UMLClass + + 80 + 420 + 20 + 20 + + + + + + UMLClass + + 110 + 420 + 20 + 20 + + + + + + UMLClass + + 140 + 420 + 20 + 20 + + + + + + UMLClass + + 170 + 420 + 20 + 20 + + + + + + UMLClass + + 200 + 420 + 20 + 20 + + + + + + UMLClass + + 230 + 420 + 20 + 20 + + + + + + UMLClass + + 260 + 420 + 20 + 20 + + + + + + UMLClass + + 50 + 460 + 20 + 20 + + + + + + UMLClass + + 80 + 460 + 20 + 20 + + + + + + UMLClass + + 110 + 460 + 20 + 20 + + + + + + UMLClass + + 140 + 460 + 20 + 20 + + + + + + UMLClass + + 170 + 460 + 20 + 20 + + + + + + UMLClass + + 200 + 460 + 20 + 20 + + + + + + UMLClass + + 230 + 460 + 20 + 20 + + + + + + UMLClass + + 260 + 460 + 20 + 20 + + + + + + UMLClass + + 50 + 500 + 20 + 20 + + + + + + UMLClass + + 80 + 500 + 20 + 20 + + + + + + UMLClass + + 110 + 500 + 20 + 20 + + + + + + UMLClass + + 140 + 500 + 20 + 20 + + + + + + UMLClass + + 170 + 500 + 20 + 20 + + + + + + UMLClass + + 200 + 500 + 20 + 20 + + + + + + UMLClass + + 230 + 500 + 20 + 20 + + + + + + UMLClass + + 260 + 500 + 20 + 20 + + + + + + UMLClass + + 50 + 540 + 20 + 20 + + + + + + UMLClass + + 80 + 540 + 20 + 20 + + + + + + UMLClass + + 110 + 540 + 20 + 20 + + + + + + UMLClass + + 140 + 540 + 20 + 20 + + + + + + UMLClass + + 170 + 540 + 20 + 20 + + + + + + UMLClass + + 200 + 540 + 20 + 20 + + + + + + UMLClass + + 230 + 580 + 20 + 20 + + + + + + UMLClass + + 200 + 580 + 20 + 20 + + + + + + UMLClass + + 50 + 580 + 20 + 20 + + + + + + UMLClass + + 80 + 580 + 20 + 20 + + + + + + UMLClass + + 110 + 580 + 20 + 20 + + + + + + UMLClass + + 140 + 580 + 20 + 20 + + + + + + UMLClass + + 170 + 580 + 20 + 20 + + + + + + UMLClass + + 40 + 390 + 250 + 220 + + Quorum: 30/37 +lt=. + + + + UMLClass + + 40 + 390 + 250 + 180 + + +lt=. + + + + Relation + + 270 + 270 + 140 + 120 + + lt=<- + 10.0;10.0;120.0;100.0 + + + Relation + + 430 + 160 + 60 + 230 + + lt=<- + 10.0;10.0;40.0;210.0 + + diff --git a/content/_img-sources/negative-unl-11.uxf b/content/_img-sources/negative-unl-11.uxf new file mode 100644 index 0000000000..7a27b1e539 --- /dev/null +++ b/content/_img-sources/negative-unl-11.uxf @@ -0,0 +1,480 @@ + + + 10 + + UMLClass + + 50 + 100 + 20 + 20 + + + + + + Text + + 40 + 30 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 70 + 310 + 220 + + -- +To Disable: +(none) + +To Re-Enable: +(none) + +-- +Disabled: +(none) +layer=-1 + + + + UMLClass + + 80 + 100 + 20 + 20 + + + + + + UMLClass + + 110 + 100 + 20 + 20 + + + + + + UMLClass + + 140 + 100 + 20 + 20 + + + + + + UMLClass + + 170 + 100 + 20 + 20 + + + + + + UMLClass + + 200 + 100 + 20 + 20 + + + + + + UMLClass + + 230 + 100 + 20 + 20 + + + + + + UMLClass + + 260 + 100 + 20 + 20 + + + + + + UMLClass + + 50 + 140 + 20 + 20 + + + + + + UMLClass + + 80 + 140 + 20 + 20 + + + + + + UMLClass + + 110 + 140 + 20 + 20 + + + + + + UMLClass + + 140 + 140 + 20 + 20 + + + + + + UMLClass + + 170 + 140 + 20 + 20 + + + + + + UMLClass + + 200 + 140 + 20 + 20 + + + + + + UMLClass + + 230 + 140 + 20 + 20 + + + + + + UMLClass + + 260 + 140 + 20 + 20 + + + + + + UMLClass + + 50 + 180 + 20 + 20 + + + + + + UMLClass + + 80 + 180 + 20 + 20 + + + + + + UMLClass + + 110 + 180 + 20 + 20 + + + + + + UMLClass + + 140 + 180 + 20 + 20 + + + + + + UMLClass + + 170 + 180 + 20 + 20 + + + + + + UMLClass + + 200 + 180 + 20 + 20 + + + + + + UMLClass + + 230 + 180 + 20 + 20 + + + + + + UMLClass + + 260 + 180 + 20 + 20 + + + + + + UMLClass + + 50 + 220 + 20 + 20 + + + + + + UMLClass + + 80 + 220 + 20 + 20 + + + + + + UMLClass + + 110 + 220 + 20 + 20 + + + + + + UMLClass + + 140 + 220 + 20 + 20 + + + + + + UMLClass + + 170 + 220 + 20 + 20 + + + + + + UMLClass + + 200 + 220 + 20 + 20 + + + + + + UMLClass + + 230 + 260 + 20 + 20 + + + + + + UMLClass + + 50 + 260 + 20 + 20 + + + + + + UMLClass + + 80 + 260 + 20 + 20 + + + + + + UMLClass + + 110 + 260 + 20 + 20 + + + + + + UMLClass + + 140 + 260 + 20 + 20 + + + + + + UMLClass + + 170 + 260 + 20 + 20 + + + + + + UMLClass + + 200 + 260 + 20 + 20 + + + + + + Text + + 360 + 30 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 70 + 250 + 220 + + Quorum: 30/37 +lt=. + + + + UMLClass + + 40 + 70 + 250 + 180 + + +lt=. + + + diff --git a/content/_img-sources/negative-unl-2.uxf b/content/_img-sources/negative-unl-2.uxf new file mode 100644 index 0000000000..1994ce780d --- /dev/null +++ b/content/_img-sources/negative-unl-2.uxf @@ -0,0 +1,543 @@ + + + 10 + + UMLClass + + 50 + 110 + 20 + 20 + + + + + + Text + + 40 + 40 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 80 + 310 + 220 + + -- +To Disable: +*UnsteadyB* + +To Re-Enable: +(none) + +-- +Disabled: +(none) +layer=-1 + + + + UMLClass + + 80 + 110 + 20 + 20 + + + + + + UMLClass + + 110 + 110 + 20 + 20 + + + + + + UMLClass + + 140 + 110 + 20 + 20 + + + + + + UMLClass + + 170 + 110 + 20 + 20 + + + + + + UMLClass + + 200 + 110 + 20 + 20 + + + + + + UMLClass + + 230 + 110 + 20 + 20 + + + + + + UMLClass + + 260 + 110 + 20 + 20 + + + + + + UMLClass + + 50 + 150 + 20 + 20 + + + + + + UMLClass + + 80 + 150 + 20 + 20 + + + + + + UMLClass + + 110 + 150 + 20 + 20 + + + + + + UMLClass + + 140 + 150 + 20 + 20 + + + + + + UMLClass + + 170 + 150 + 20 + 20 + + + + + + UMLClass + + 200 + 150 + 20 + 20 + + + + + + UMLClass + + 230 + 150 + 20 + 20 + + + + + + UMLClass + + 260 + 150 + 20 + 20 + + + + + + UMLClass + + 50 + 190 + 20 + 20 + + + + + + UMLClass + + 80 + 190 + 20 + 20 + + + + + + UMLClass + + 110 + 190 + 20 + 20 + + + + + + UMLClass + + 140 + 190 + 20 + 20 + + + + + + UMLClass + + 170 + 190 + 20 + 20 + + + + + + UMLClass + + 200 + 190 + 20 + 20 + + + + + + UMLClass + + 230 + 190 + 20 + 20 + + + + + + UMLClass + + 260 + 190 + 20 + 20 + + + + + + UMLClass + + 50 + 230 + 20 + 20 + + + + + + UMLClass + + 80 + 230 + 20 + 20 + + + + + + UMLClass + + 110 + 230 + 20 + 20 + + + + + + UMLClass + + 140 + 230 + 20 + 20 + + + + + + UMLClass + + 170 + 230 + 20 + 20 + + + + + + UMLClass + + 200 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 270 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 270 + 20 + 20 + + + + + + UMLClass + + 80 + 270 + 20 + 20 + + + + + + UMLClass + + 110 + 270 + 20 + 20 + + + + + + UMLClass + + 140 + 270 + 20 + 20 + + + + + + UMLClass + + 170 + 270 + 20 + 20 + + + + + + UMLClass + + 200 + 270 + 20 + 20 + + lt=. +fg=gray + + + + Text + + 360 + 40 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 80 + 250 + 220 + + Quorum: 31/38 +lt=. + + + + UMLClass + + 40 + 80 + 250 + 180 + + +lt=. + + + + Relation + + 200 + 280 + 40 + 70 + + lt=<- + 10.0;10.0;20.0;50.0 + + + Relation + + 230 + 280 + 40 + 70 + + lt=<- + 10.0;10.0;20.0;50.0 + + + UMLNote + + 210 + 330 + 130 + 70 + + MissingA and UnsteadyB go offline. +bg=yellow +transparency=0 +style=wordwrap + + + + UMLNote + + 590 + 100 + 140 + 80 + + UnsteadyB is chosen to be disabled. +bg=yellow +transparency=0 +style=wordwrap + + + diff --git a/content/_img-sources/negative-unl-4.uxf b/content/_img-sources/negative-unl-4.uxf new file mode 100644 index 0000000000..c6153950c2 --- /dev/null +++ b/content/_img-sources/negative-unl-4.uxf @@ -0,0 +1,557 @@ + + + 10 + + UMLClass + + 50 + 110 + 20 + 20 + + + + + + Text + + 40 + 40 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 80 + 310 + 220 + + -- +To Disable: +MissingA + +To Re-Enable: +(none) + +-- +Disabled: +*UnsteadyB* +layer=-1 + + + + UMLClass + + 80 + 110 + 20 + 20 + + + + + + UMLClass + + 110 + 110 + 20 + 20 + + + + + + UMLClass + + 140 + 110 + 20 + 20 + + + + + + UMLClass + + 170 + 110 + 20 + 20 + + + + + + UMLClass + + 200 + 110 + 20 + 20 + + + + + + UMLClass + + 230 + 110 + 20 + 20 + + + + + + UMLClass + + 260 + 110 + 20 + 20 + + + + + + UMLClass + + 50 + 150 + 20 + 20 + + + + + + UMLClass + + 80 + 150 + 20 + 20 + + + + + + UMLClass + + 110 + 150 + 20 + 20 + + + + + + UMLClass + + 140 + 150 + 20 + 20 + + + + + + UMLClass + + 170 + 150 + 20 + 20 + + + + + + UMLClass + + 200 + 150 + 20 + 20 + + + + + + UMLClass + + 230 + 150 + 20 + 20 + + + + + + UMLClass + + 260 + 150 + 20 + 20 + + + + + + UMLClass + + 50 + 190 + 20 + 20 + + + + + + UMLClass + + 80 + 190 + 20 + 20 + + + + + + UMLClass + + 110 + 190 + 20 + 20 + + + + + + UMLClass + + 140 + 190 + 20 + 20 + + + + + + UMLClass + + 170 + 190 + 20 + 20 + + + + + + UMLClass + + 200 + 190 + 20 + 20 + + + + + + UMLClass + + 230 + 190 + 20 + 20 + + + + + + UMLClass + + 260 + 190 + 20 + 20 + + + + + + UMLClass + + 50 + 230 + 20 + 20 + + + + + + UMLClass + + 80 + 230 + 20 + 20 + + + + + + UMLClass + + 110 + 230 + 20 + 20 + + + + + + UMLClass + + 140 + 230 + 20 + 20 + + + + + + UMLClass + + 170 + 230 + 20 + 20 + + + + + + UMLClass + + 200 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 270 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 270 + 20 + 20 + + + + + + UMLClass + + 80 + 270 + 20 + 20 + + + + + + UMLClass + + 110 + 270 + 20 + 20 + + + + + + UMLClass + + 140 + 270 + 20 + 20 + + + + + + UMLClass + + 170 + 270 + 20 + 20 + + + + + + UMLClass + + 200 + 270 + 20 + 20 + + lt=. +fg=gray + + + + Text + + 360 + 40 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 80 + 250 + 220 + + Quorum: 31/38 +lt=. + + + + UMLClass + + 40 + 80 + 250 + 180 + + +lt=. + + + + Relation + + 200 + 280 + 40 + 70 + + lt=<- + 10.0;10.0;20.0;50.0 + + + Relation + + 230 + 280 + 40 + 70 + + lt=<- + 10.0;10.0;20.0;50.0 + + + UMLNote + + 210 + 330 + 130 + 70 + + MissingA and UnsteadyB are still offline. +bg=yellow +transparency=0 +style=wordwrap + + + + UMLNote + + 600 + 100 + 140 + 80 + + MissingA is now also scheduled to be disabled. +bg=yellow +transparency=0 +style=wordwrap + + + + UMLNote + + 600 + 200 + 140 + 80 + + UnsteadyB gets moved to the actively disabled list. +bg=yellow +transparency=0 +style=wordwrap + + + diff --git a/content/_img-sources/negative-unl-5.uxf b/content/_img-sources/negative-unl-5.uxf new file mode 100644 index 0000000000..c435b18826 --- /dev/null +++ b/content/_img-sources/negative-unl-5.uxf @@ -0,0 +1,986 @@ + + + 10 + + UMLClass + + 50 + 110 + 20 + 20 + + + + + + Text + + 40 + 40 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 80 + 310 + 220 + + -- +To Disable: +MissingA + +To Re-Enable: +(none) + +-- +Disabled: +*UnsteadyB* +layer=-1 + + + + UMLClass + + 80 + 110 + 20 + 20 + + + + + + UMLClass + + 110 + 110 + 20 + 20 + + + + + + UMLClass + + 140 + 110 + 20 + 20 + + + + + + UMLClass + + 170 + 110 + 20 + 20 + + + + + + UMLClass + + 200 + 110 + 20 + 20 + + + + + + UMLClass + + 230 + 110 + 20 + 20 + + + + + + UMLClass + + 260 + 110 + 20 + 20 + + + + + + UMLClass + + 50 + 150 + 20 + 20 + + + + + + UMLClass + + 80 + 150 + 20 + 20 + + + + + + UMLClass + + 110 + 150 + 20 + 20 + + + + + + UMLClass + + 140 + 150 + 20 + 20 + + + + + + UMLClass + + 170 + 150 + 20 + 20 + + + + + + UMLClass + + 200 + 150 + 20 + 20 + + + + + + UMLClass + + 230 + 150 + 20 + 20 + + + + + + UMLClass + + 260 + 150 + 20 + 20 + + + + + + UMLClass + + 50 + 190 + 20 + 20 + + + + + + UMLClass + + 80 + 190 + 20 + 20 + + + + + + UMLClass + + 110 + 190 + 20 + 20 + + + + + + UMLClass + + 140 + 190 + 20 + 20 + + + + + + UMLClass + + 170 + 190 + 20 + 20 + + + + + + UMLClass + + 200 + 190 + 20 + 20 + + + + + + UMLClass + + 230 + 190 + 20 + 20 + + + + + + UMLClass + + 260 + 190 + 20 + 20 + + + + + + UMLClass + + 50 + 230 + 20 + 20 + + + + + + UMLClass + + 80 + 230 + 20 + 20 + + + + + + UMLClass + + 110 + 230 + 20 + 20 + + + + + + UMLClass + + 140 + 230 + 20 + 20 + + + + + + UMLClass + + 170 + 230 + 20 + 20 + + + + + + UMLClass + + 200 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 270 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 270 + 20 + 20 + + + + + + UMLClass + + 80 + 270 + 20 + 20 + + + + + + UMLClass + + 110 + 270 + 20 + 20 + + + + + + UMLClass + + 140 + 270 + 20 + 20 + + + + + + UMLClass + + 170 + 270 + 20 + 20 + + + + + + UMLClass + + 200 + 270 + 20 + 20 + + lt=. +fg=red + + + + Text + + 360 + 40 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 80 + 250 + 220 + + Quorum: 31/38 +lt=. + + + + UMLClass + + 40 + 80 + 250 + 180 + + +lt=. + + + + Relation + + 200 + 280 + 160 + 130 + + lt=<- + 10.0;10.0;140.0;110.0 + + + Relation + + 320 + 480 + 50 + 180 + + lt=<- + 10.0;160.0;30.0;10.0 + + + UMLNote + + 330 + 390 + 140 + 100 + + UnsteadyB comes back online, but it's currently disabled +bg=yellow +transparency=0 +style=wordwrap + + + + UMLClass + + 60 + 480 + 20 + 20 + + + + + + Text + + 50 + 410 + 270 + 30 + + fontsize=18 +Effective UNL + + + + UMLClass + + 90 + 480 + 20 + 20 + + + + + + UMLClass + + 120 + 480 + 20 + 20 + + + + + + UMLClass + + 150 + 480 + 20 + 20 + + + + + + UMLClass + + 180 + 480 + 20 + 20 + + + + + + UMLClass + + 210 + 480 + 20 + 20 + + + + + + UMLClass + + 240 + 480 + 20 + 20 + + + + + + UMLClass + + 270 + 480 + 20 + 20 + + + + + + UMLClass + + 60 + 520 + 20 + 20 + + + + + + UMLClass + + 90 + 520 + 20 + 20 + + + + + + UMLClass + + 120 + 520 + 20 + 20 + + + + + + UMLClass + + 150 + 520 + 20 + 20 + + + + + + UMLClass + + 180 + 520 + 20 + 20 + + + + + + UMLClass + + 210 + 520 + 20 + 20 + + + + + + UMLClass + + 240 + 520 + 20 + 20 + + + + + + UMLClass + + 270 + 520 + 20 + 20 + + + + + + UMLClass + + 60 + 560 + 20 + 20 + + + + + + UMLClass + + 90 + 560 + 20 + 20 + + + + + + UMLClass + + 120 + 560 + 20 + 20 + + + + + + UMLClass + + 150 + 560 + 20 + 20 + + + + + + UMLClass + + 180 + 560 + 20 + 20 + + + + + + UMLClass + + 210 + 560 + 20 + 20 + + + + + + UMLClass + + 240 + 560 + 20 + 20 + + + + + + UMLClass + + 270 + 560 + 20 + 20 + + + + + + UMLClass + + 60 + 600 + 20 + 20 + + + + + + UMLClass + + 90 + 600 + 20 + 20 + + + + + + UMLClass + + 120 + 600 + 20 + 20 + + + + + + UMLClass + + 150 + 600 + 20 + 20 + + + + + + UMLClass + + 180 + 600 + 20 + 20 + + + + + + UMLClass + + 210 + 600 + 20 + 20 + + + + + + UMLClass + + 240 + 600 + 20 + 20 + + + + + + UMLClass + + 320 + 640 + 20 + 20 + + lt=. +fg=gray +fg=red + + + + UMLClass + + 60 + 640 + 20 + 20 + + + + + + UMLClass + + 90 + 640 + 20 + 20 + + + + + + UMLClass + + 120 + 640 + 20 + 20 + + + + + + UMLClass + + 150 + 640 + 20 + 20 + + + + + + UMLClass + + 180 + 640 + 20 + 20 + + + + + + UMLClass + + 210 + 640 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 450 + 250 + 220 + + Quorum: 30/37 +lt=. + + + + UMLClass + + 50 + 450 + 250 + 180 + + +lt=. + + + diff --git a/content/_img-sources/negative-unl-7.uxf b/content/_img-sources/negative-unl-7.uxf new file mode 100644 index 0000000000..7a35c9862f --- /dev/null +++ b/content/_img-sources/negative-unl-7.uxf @@ -0,0 +1,965 @@ + + + 10 + + UMLClass + + 50 + 110 + 20 + 20 + + + + + + Text + + 40 + 40 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 80 + 310 + 220 + + -- +To Disable: +(none) + +To Re-Enable: +*UnsteadyB* + +-- +Disabled: +UnsteadyB +*MissingA* +layer=-1 + + + + UMLClass + + 80 + 110 + 20 + 20 + + + + + + UMLClass + + 110 + 110 + 20 + 20 + + + + + + UMLClass + + 140 + 110 + 20 + 20 + + + + + + UMLClass + + 170 + 110 + 20 + 20 + + + + + + UMLClass + + 200 + 110 + 20 + 20 + + + + + + UMLClass + + 230 + 110 + 20 + 20 + + + + + + UMLClass + + 260 + 110 + 20 + 20 + + + + + + UMLClass + + 50 + 150 + 20 + 20 + + + + + + UMLClass + + 80 + 150 + 20 + 20 + + + + + + UMLClass + + 110 + 150 + 20 + 20 + + + + + + UMLClass + + 140 + 150 + 20 + 20 + + + + + + UMLClass + + 170 + 150 + 20 + 20 + + + + + + UMLClass + + 200 + 150 + 20 + 20 + + + + + + UMLClass + + 230 + 150 + 20 + 20 + + + + + + UMLClass + + 260 + 150 + 20 + 20 + + + + + + UMLClass + + 50 + 190 + 20 + 20 + + + + + + UMLClass + + 80 + 190 + 20 + 20 + + + + + + UMLClass + + 110 + 190 + 20 + 20 + + + + + + UMLClass + + 140 + 190 + 20 + 20 + + + + + + UMLClass + + 170 + 190 + 20 + 20 + + + + + + UMLClass + + 200 + 190 + 20 + 20 + + + + + + UMLClass + + 230 + 190 + 20 + 20 + + + + + + UMLClass + + 260 + 190 + 20 + 20 + + + + + + UMLClass + + 50 + 230 + 20 + 20 + + + + + + UMLClass + + 80 + 230 + 20 + 20 + + + + + + UMLClass + + 110 + 230 + 20 + 20 + + + + + + UMLClass + + 140 + 230 + 20 + 20 + + + + + + UMLClass + + 170 + 230 + 20 + 20 + + + + + + UMLClass + + 200 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 270 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 270 + 20 + 20 + + + + + + UMLClass + + 80 + 270 + 20 + 20 + + + + + + UMLClass + + 110 + 270 + 20 + 20 + + + + + + UMLClass + + 140 + 270 + 20 + 20 + + + + + + UMLClass + + 170 + 270 + 20 + 20 + + + + + + UMLClass + + 200 + 270 + 20 + 20 + + lt=. +fg=blue + + + + Text + + 360 + 40 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 80 + 250 + 220 + + Quorum: 31/38 +lt=. + + + + UMLClass + + 40 + 80 + 250 + 180 + + +lt=. + + + + UMLNote + + 570 + 120 + 140 + 130 + + MissingA is moved to the Disabled list, as scheduled. UnsteadyB is scheduled to be re-enabled. +bg=yellow +transparency=0 +style=wordwrap + + + + UMLClass + + 60 + 480 + 20 + 20 + + + + + + Text + + 50 + 410 + 270 + 30 + + fontsize=18 +Effective UNL + + + + UMLClass + + 90 + 480 + 20 + 20 + + + + + + UMLClass + + 120 + 480 + 20 + 20 + + + + + + UMLClass + + 150 + 480 + 20 + 20 + + + + + + UMLClass + + 180 + 480 + 20 + 20 + + + + + + UMLClass + + 210 + 480 + 20 + 20 + + + + + + UMLClass + + 240 + 480 + 20 + 20 + + + + + + UMLClass + + 270 + 480 + 20 + 20 + + + + + + UMLClass + + 60 + 520 + 20 + 20 + + + + + + UMLClass + + 90 + 520 + 20 + 20 + + + + + + UMLClass + + 120 + 520 + 20 + 20 + + + + + + UMLClass + + 150 + 520 + 20 + 20 + + + + + + UMLClass + + 180 + 520 + 20 + 20 + + + + + + UMLClass + + 210 + 520 + 20 + 20 + + + + + + UMLClass + + 240 + 520 + 20 + 20 + + + + + + UMLClass + + 270 + 520 + 20 + 20 + + + + + + UMLClass + + 60 + 560 + 20 + 20 + + + + + + UMLClass + + 90 + 560 + 20 + 20 + + + + + + UMLClass + + 120 + 560 + 20 + 20 + + + + + + UMLClass + + 150 + 560 + 20 + 20 + + + + + + UMLClass + + 180 + 560 + 20 + 20 + + + + + + UMLClass + + 210 + 560 + 20 + 20 + + + + + + UMLClass + + 240 + 560 + 20 + 20 + + + + + + UMLClass + + 270 + 560 + 20 + 20 + + + + + + UMLClass + + 60 + 600 + 20 + 20 + + + + + + UMLClass + + 90 + 600 + 20 + 20 + + + + + + UMLClass + + 120 + 600 + 20 + 20 + + + + + + UMLClass + + 150 + 600 + 20 + 20 + + + + + + UMLClass + + 180 + 600 + 20 + 20 + + + + + + UMLClass + + 210 + 600 + 20 + 20 + + + + + + UMLClass + + 240 + 600 + 20 + 20 + + + + + + UMLClass + + 320 + 640 + 20 + 20 + + lt=. +fg=gray +fg=blue + + + + UMLClass + + 60 + 640 + 20 + 20 + + + + + + UMLClass + + 90 + 640 + 20 + 20 + + + + + + UMLClass + + 120 + 640 + 20 + 20 + + + + + + UMLClass + + 150 + 640 + 20 + 20 + + + + + + UMLClass + + 180 + 640 + 20 + 20 + + + + + + UMLClass + + 350 + 640 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 450 + 250 + 220 + + Quorum: 29/36 +lt=. + + + + UMLClass + + 50 + 450 + 250 + 180 + + +lt=. + + + diff --git a/content/_img-sources/negative-unl-9.uxf b/content/_img-sources/negative-unl-9.uxf new file mode 100644 index 0000000000..fa36620a35 --- /dev/null +++ b/content/_img-sources/negative-unl-9.uxf @@ -0,0 +1,983 @@ + + + 10 + + UMLClass + + 50 + 110 + 20 + 20 + + + + + + Text + + 40 + 40 + 270 + 30 + + fontsize=18 +Configured UNL + + + + UMLClass + + 360 + 80 + 310 + 220 + + -- +To Disable: +(none) + +To Re-Enable: +(none) + +-- +Disabled: +MissingA +layer=-1 + + + + UMLClass + + 80 + 110 + 20 + 20 + + + + + + UMLClass + + 110 + 110 + 20 + 20 + + + + + + UMLClass + + 140 + 110 + 20 + 20 + + + + + + UMLClass + + 170 + 110 + 20 + 20 + + + + + + UMLClass + + 200 + 110 + 20 + 20 + + + + + + UMLClass + + 230 + 110 + 20 + 20 + + + + + + UMLClass + + 260 + 110 + 20 + 20 + + + + + + UMLClass + + 50 + 150 + 20 + 20 + + + + + + UMLClass + + 80 + 150 + 20 + 20 + + + + + + UMLClass + + 110 + 150 + 20 + 20 + + + + + + UMLClass + + 140 + 150 + 20 + 20 + + + + + + UMLClass + + 170 + 150 + 20 + 20 + + + + + + UMLClass + + 200 + 150 + 20 + 20 + + + + + + UMLClass + + 230 + 150 + 20 + 20 + + + + + + UMLClass + + 260 + 150 + 20 + 20 + + + + + + UMLClass + + 50 + 190 + 20 + 20 + + + + + + UMLClass + + 80 + 190 + 20 + 20 + + + + + + UMLClass + + 110 + 190 + 20 + 20 + + + + + + UMLClass + + 140 + 190 + 20 + 20 + + + + + + UMLClass + + 170 + 190 + 20 + 20 + + + + + + UMLClass + + 200 + 190 + 20 + 20 + + + + + + UMLClass + + 230 + 190 + 20 + 20 + + + + + + UMLClass + + 260 + 190 + 20 + 20 + + + + + + UMLClass + + 50 + 230 + 20 + 20 + + + + + + UMLClass + + 80 + 230 + 20 + 20 + + + + + + UMLClass + + 110 + 230 + 20 + 20 + + + + + + UMLClass + + 140 + 230 + 20 + 20 + + + + + + UMLClass + + 170 + 230 + 20 + 20 + + + + + + UMLClass + + 200 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 230 + 20 + 20 + + + + + + UMLClass + + 230 + 270 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 50 + 270 + 20 + 20 + + + + + + UMLClass + + 80 + 270 + 20 + 20 + + + + + + UMLClass + + 110 + 270 + 20 + 20 + + + + + + UMLClass + + 140 + 270 + 20 + 20 + + + + + + UMLClass + + 170 + 270 + 20 + 20 + + + + + + UMLClass + + 200 + 270 + 20 + 20 + + + + + + Text + + 360 + 40 + 270 + 30 + + fontsize=18 +Negative UNL (on-ledger) + + + + UMLClass + + 40 + 80 + 250 + 220 + + Quorum: 31/38 +lt=. + + + + UMLClass + + 40 + 80 + 250 + 180 + + +lt=. + + + + UMLNote + + 390 + 420 + 140 + 70 + + UnsteadyB is re-enabled, as scheduled. +bg=yellow +transparency=0 +style=wordwrap + + + + UMLClass + + 50 + 430 + 20 + 20 + + + + + + Text + + 40 + 360 + 270 + 30 + + fontsize=18 +Effective UNL + + + + UMLClass + + 80 + 430 + 20 + 20 + + + + + + UMLClass + + 110 + 430 + 20 + 20 + + + + + + UMLClass + + 140 + 430 + 20 + 20 + + + + + + UMLClass + + 170 + 430 + 20 + 20 + + + + + + UMLClass + + 200 + 430 + 20 + 20 + + + + + + UMLClass + + 230 + 430 + 20 + 20 + + + + + + UMLClass + + 260 + 430 + 20 + 20 + + + + + + UMLClass + + 50 + 470 + 20 + 20 + + + + + + UMLClass + + 80 + 470 + 20 + 20 + + + + + + UMLClass + + 110 + 470 + 20 + 20 + + + + + + UMLClass + + 140 + 470 + 20 + 20 + + + + + + UMLClass + + 170 + 470 + 20 + 20 + + + + + + UMLClass + + 200 + 470 + 20 + 20 + + + + + + UMLClass + + 230 + 470 + 20 + 20 + + + + + + UMLClass + + 260 + 470 + 20 + 20 + + + + + + UMLClass + + 50 + 510 + 20 + 20 + + + + + + UMLClass + + 80 + 510 + 20 + 20 + + + + + + UMLClass + + 110 + 510 + 20 + 20 + + + + + + UMLClass + + 140 + 510 + 20 + 20 + + + + + + UMLClass + + 170 + 510 + 20 + 20 + + + + + + UMLClass + + 200 + 510 + 20 + 20 + + + + + + UMLClass + + 230 + 510 + 20 + 20 + + + + + + UMLClass + + 260 + 510 + 20 + 20 + + + + + + UMLClass + + 50 + 550 + 20 + 20 + + + + + + UMLClass + + 80 + 550 + 20 + 20 + + + + + + UMLClass + + 110 + 550 + 20 + 20 + + + + + + UMLClass + + 140 + 550 + 20 + 20 + + + + + + UMLClass + + 170 + 550 + 20 + 20 + + + + + + UMLClass + + 200 + 550 + 20 + 20 + + + + + + UMLClass + + 230 + 550 + 20 + 20 + + + + + + UMLClass + + 200 + 590 + 20 + 20 + + + + + + UMLClass + + 50 + 590 + 20 + 20 + + + + + + UMLClass + + 80 + 590 + 20 + 20 + + + + + + UMLClass + + 110 + 590 + 20 + 20 + + + + + + UMLClass + + 140 + 590 + 20 + 20 + + + + + + UMLClass + + 170 + 590 + 20 + 20 + + + + + + UMLClass + + 340 + 590 + 20 + 20 + + lt=. +fg=gray + + + + UMLClass + + 40 + 400 + 250 + 220 + + Quorum: 30/37 +lt=. + + + + UMLClass + + 40 + 400 + 250 + 180 + + +lt=. + + + + Relation + + 210 + 470 + 200 + 150 + + lt=<- + 10.0;130.0;180.0;10.0 + + + Relation + + 370 + 250 + 80 + 190 + + lt=<- + 10.0;10.0;60.0;170.0 + + diff --git a/content/concepts/consensus-network/negative-unl.md b/content/concepts/consensus-network/negative-unl.md index ab38fe7f4e..cd3b7ef1fb 100644 --- a/content/concepts/consensus-network/negative-unl.md +++ b/content/concepts/consensus-network/negative-unl.md @@ -68,7 +68,7 @@ A ledger version is considered a _flag ledger_ if its ledger index is evenly div Each flag ledger, all of the following changes apply: -1. Changes to the Negative UNL that were scheduled in the previous flag ledger go into effect. +1. Changes to the Negative UNL that were scheduled in the previous flag ledger go into effect for the following ledger version. The consensus process for validating this flag ledger itself does not use the scheduled change. **Note:** This is one of the only times a ledger's state data is modified without a [transaction](transaction-basics.html) or [pseudo-transaction](pseudo-transaction-types.html). @@ -76,7 +76,7 @@ Each flag ledger, all of the following changes apply: 3. If the Negative UNL is not empty, each server proposes removing **up to 1** validator from the Negative UNL. A server can propose removing a validator from the Negative UNL for two reasons: - It scores that validator with > 80% reliability. - It does not have that validator in its UNL. (If a validator goes down permanently, this rule ensures that it gets removed from the on-ledger Negative UNL after it has been removed from servers' configured UNLs.) -4. If a proposed change to the Negative UNL achieve a consensus, the change is scheduled to go into effect in the following flag ledger. Up to one addition and one removal can be scheduled this way. +4. If a proposed change to the Negative UNL achieves a consensus, the change is scheduled to go into effect in the following flag ledger. Up to one addition and one removal can be scheduled this way. The proposals to add and remove validators from the Negative UNL take the form of [UNLModify pseudo-transactions][]. The consensus process determines whether each pseudo-transaction achieves a consensus or gets thrown out, in the same way as other [pseudo-transactions](pseudo-transaction-types.html). In other words, for a particular validator to be added or removed from the Negative UNL, a consensus of servers must propose the same change. @@ -85,15 +85,15 @@ Scheduled and effective changes to the Negative UNL are tracked in the [Negative ### Negative UNL Limits -To prevent the network from fragmenting into two two or more sub-networks, the Negative UNL cannot reduce the quorum requirement to less than 60% of the _total_ UNL entries. To enforce this, a server considers the Negative UNL to be "full" if the number of validators on the Negative UNL is 25% (rounded down) of the number of validators in the server's configured UNL. (The 25% is based on the calculation that if 25% of validators are removed, an 80% consensus of the remaining 75% equals 60% of the original number.) +To prevent the network from fragmenting into two two or more sub-networks, the Negative UNL cannot reduce the quorum requirement to less than 60% of the _total_ UNL entries. To enforce this, a server considers the Negative UNL to be "full" if the number of validators on the Negative UNL is 25% (rounded down) of the number of validators in the server's configured UNL. (The 25% is based on the calculation that if 25% of validators are removed, an 80% consensus of the remaining 75% equals 60% of the original number.) If a server considers the Negative UNL to be full, it won't propose new additions to the Negative UNL; but, as usual, the final outcome depends on what a consensus of trusted validators do. ### Choosing From Multiple Candidate Validators -It is possible that multiple validators may be candidates to be added to the Negative UNL. Since at most one validator can be added to the Negative UNL at a time, servers must choose which validator to propose adding. If there are multiple candidates, the server chooses which one to propose with the following mechanism: +It is possible that multiple validators may be candidates to be added to the Negative UNL, based on the reliability threshold. Since at most one validator can be added to the Negative UNL at a time, servers must choose which validator to propose adding. If there are multiple candidates, the server chooses which one to propose with the following mechanism: 1. Start with the ledger hash of the parent ledger version. -0. Take the public key of each candidate validator that is past the reliability threshold. +0. Take the public key of each candidate validator. 0. Calculate the exclusive-or value (XOR) of the candidate validator and the parent ledger's hash. 0. Propose the validator the numerically lowest result of the XOR operation. @@ -108,7 +108,7 @@ This mechanism has several useful properties: ### Filtering Validations -During the consensus process, validators in the parent ledger's Negative UNL (**TODO: parent ledger? validation status?**) are disabled. Each server calculates an "effective UNL" consisting of its configured UNL with the disabled validators removed, and recalculates its quorum accordingly. If a disabled validator sends validation votes, other servers listen to those for purposes of calculating its reliability measurement, but they do not use those votes towards determining whether a ledger version has achieved a consensus. +During the consensus process, validators in the parent ledger's Negative UNL are disabled. Each server calculates an "effective UNL" consisting of its configured UNL with the disabled validators removed, and recalculates its quorum accordingly. (The quorum is always at least 80% of the effective UNL and at least 60% of the configured UNL.) If a disabled validator sends validation votes, servers track those votes for purposes of calculating the disabled validator's reliability measurement, but they do not use those votes towards determining whether a ledger version has achieved a consensus. **Note:** The Negative UNL adjusts the _total_ trusted validators that the quorum is calculated from, not the quorum directly. The quorum is a percentage but the number of votes is a whole number, so in some cases, reducing the total trusted validators may not change the number of votes required to reach a quorum. For example, if there are 15 total validators, 80% is 12 validators exactly. If you reduce the total to 14 validators, 80% is 11.2 validators, which means that it still requires 12 validators to reach a quorum.