diff --git a/book/src/.gitbook/assets/data-plane (1).svg b/book/src/.gitbook/assets/data-plane (1).svg new file mode 100644 index 0000000000..5a33b8bf6e --- /dev/null +++ b/book/src/.gitbook/assets/data-plane (1).svg @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighborhood + + + + +3 + + + + +Neighborhood + + + + +Neighborhood + + + + +1 + + + + +Neighborhood + + + + +4 + + + + +0 + + + + +Neighborhood + + + + +Neighborhood + + + + +5 + + + + +2 + + + + +Neighborhood + + + + +6 + + + diff --git a/book/src/.gitbook/assets/data-plane (2).svg b/book/src/.gitbook/assets/data-plane (2).svg new file mode 100644 index 0000000000..5a33b8bf6e --- /dev/null +++ b/book/src/.gitbook/assets/data-plane (2).svg @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighborhood + + + + +3 + + + + +Neighborhood + + + + +Neighborhood + + + + +1 + + + + +Neighborhood + + + + +4 + + + + +0 + + + + +Neighborhood + + + + +Neighborhood + + + + +5 + + + + +2 + + + + +Neighborhood + + + + +6 + + + diff --git a/book/src/.gitbook/assets/data-plane (3).svg b/book/src/.gitbook/assets/data-plane (3).svg new file mode 100644 index 0000000000..5a33b8bf6e --- /dev/null +++ b/book/src/.gitbook/assets/data-plane (3).svg @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighborhood + + + + +3 + + + + +Neighborhood + + + + +Neighborhood + + + + +1 + + + + +Neighborhood + + + + +4 + + + + +0 + + + + +Neighborhood + + + + +Neighborhood + + + + +5 + + + + +2 + + + + +Neighborhood + + + + +6 + + + diff --git a/book/src/.gitbook/assets/data-plane-fanout (1).svg b/book/src/.gitbook/assets/data-plane-fanout (1).svg new file mode 100644 index 0000000000..ad73f77ef0 --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-fanout (1).svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighborhood + + + + +Validator + + + + +1 + + + + +1 + + + + +Neighborhood + + + + +0 + + + + +Neighborhood + + + + +Validator + + + + +2 + + + + +2 + + + diff --git a/book/src/.gitbook/assets/data-plane-fanout (2).svg b/book/src/.gitbook/assets/data-plane-fanout (2).svg new file mode 100644 index 0000000000..ad73f77ef0 --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-fanout (2).svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighborhood + + + + +Validator + + + + +1 + + + + +1 + + + + +Neighborhood + + + + +0 + + + + +Neighborhood + + + + +Validator + + + + +2 + + + + +2 + + + diff --git a/book/src/.gitbook/assets/data-plane-fanout (3).svg b/book/src/.gitbook/assets/data-plane-fanout (3).svg new file mode 100644 index 0000000000..ad73f77ef0 --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-fanout (3).svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighborhood + + + + +Validator + + + + +1 + + + + +1 + + + + +Neighborhood + + + + +0 + + + + +Neighborhood + + + + +Validator + + + + +2 + + + + +2 + + + diff --git a/book/src/.gitbook/assets/data-plane-neighborhood (1).svg b/book/src/.gitbook/assets/data-plane-neighborhood (1).svg new file mode 100644 index 0000000000..1a7f080a31 --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-neighborhood (1).svg @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighbor + + + + +Neighbor + + + + +1 + + + + +1 + + + + +Neighbor + + + + +Neighbor + + + + +Neighborhood + + + + +Neighborhood + + + + +2 + + + + +2 + + + + +Above + + + + +Below + + + + +Neighbor + + + + +Neighbor + + + + +3 + + + + +3 + + + + +Neighbor + + + + +Neighbor + + + + +4 + + + + +4 + + + diff --git a/book/src/.gitbook/assets/data-plane-neighborhood (2).svg b/book/src/.gitbook/assets/data-plane-neighborhood (2).svg new file mode 100644 index 0000000000..1a7f080a31 --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-neighborhood (2).svg @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighbor + + + + +Neighbor + + + + +1 + + + + +1 + + + + +Neighbor + + + + +Neighbor + + + + +Neighborhood + + + + +Neighborhood + + + + +2 + + + + +2 + + + + +Above + + + + +Below + + + + +Neighbor + + + + +Neighbor + + + + +3 + + + + +3 + + + + +Neighbor + + + + +Neighbor + + + + +4 + + + + +4 + + + diff --git a/book/src/.gitbook/assets/data-plane-neighborhood (3).svg b/book/src/.gitbook/assets/data-plane-neighborhood (3).svg new file mode 100644 index 0000000000..1a7f080a31 --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-neighborhood (3).svg @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Neighbor + + + + +Neighbor + + + + +1 + + + + +1 + + + + +Neighbor + + + + +Neighbor + + + + +Neighborhood + + + + +Neighborhood + + + + +2 + + + + +2 + + + + +Above + + + + +Below + + + + +Neighbor + + + + +Neighbor + + + + +3 + + + + +3 + + + + +Neighbor + + + + +Neighbor + + + + +4 + + + + +4 + + + diff --git a/book/src/.gitbook/assets/data-plane-seeding (1).svg b/book/src/.gitbook/assets/data-plane-seeding (1).svg new file mode 100644 index 0000000000..765b53c93f --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-seeding (1).svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Validator + + + + +1 + + + + +Neighborhood + + + + +Leader + + + + +0 + + + + +Validator + + + + +2 + + + diff --git a/book/src/.gitbook/assets/data-plane-seeding (2).svg b/book/src/.gitbook/assets/data-plane-seeding (2).svg new file mode 100644 index 0000000000..765b53c93f --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-seeding (2).svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Validator + + + + +1 + + + + +Neighborhood + + + + +Leader + + + + +0 + + + + +Validator + + + + +2 + + + diff --git a/book/src/.gitbook/assets/data-plane-seeding (3).svg b/book/src/.gitbook/assets/data-plane-seeding (3).svg new file mode 100644 index 0000000000..765b53c93f --- /dev/null +++ b/book/src/.gitbook/assets/data-plane-seeding (3).svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Validator + + + + +1 + + + + +Neighborhood + + + + +Leader + + + + +0 + + + + +Validator + + + + +2 + + + diff --git a/book/src/.gitbook/assets/fork-generation (1).svg b/book/src/.gitbook/assets/fork-generation (1).svg new file mode 100644 index 0000000000..3d13d7549b --- /dev/null +++ b/book/src/.gitbook/assets/fork-generation (1).svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +time + + + + +L1 + + + + +L2 + + + + +L3 + + + + +L4 + + + + +L5 + + + + +x + + + + +xx + + + + +E3 + + + + +xx + + + + +E2 + + + + +E4 + + + + +xx + + + + +x + + + + +E5 + + + + +E1 + + + + +xx + + + + +E3' + + + + +xx + + + + +x + + + + +xx + + + + +xx + + + + +validator + + + + +vote(E1) + + + + +vote(E2) + + + + +slash(E3) + + + + +vote(E4) + + + + +hang + + + + +on + + + + +to + + + + +action + + + + +E4 + + + + +and + + + + +E5 + + + + +for + + + + +more... + + + diff --git a/book/src/.gitbook/assets/fork-generation (2).svg b/book/src/.gitbook/assets/fork-generation (2).svg new file mode 100644 index 0000000000..3d13d7549b --- /dev/null +++ b/book/src/.gitbook/assets/fork-generation (2).svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +time + + + + +L1 + + + + +L2 + + + + +L3 + + + + +L4 + + + + +L5 + + + + +x + + + + +xx + + + + +E3 + + + + +xx + + + + +E2 + + + + +E4 + + + + +xx + + + + +x + + + + +E5 + + + + +E1 + + + + +xx + + + + +E3' + + + + +xx + + + + +x + + + + +xx + + + + +xx + + + + +validator + + + + +vote(E1) + + + + +vote(E2) + + + + +slash(E3) + + + + +vote(E4) + + + + +hang + + + + +on + + + + +to + + + + +action + + + + +E4 + + + + +and + + + + +E5 + + + + +for + + + + +more... + + + diff --git a/book/src/.gitbook/assets/fork-generation (3).svg b/book/src/.gitbook/assets/fork-generation (3).svg new file mode 100644 index 0000000000..3d13d7549b --- /dev/null +++ b/book/src/.gitbook/assets/fork-generation (3).svg @@ -0,0 +1,330 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +time + + + + +L1 + + + + +L2 + + + + +L3 + + + + +L4 + + + + +L5 + + + + +x + + + + +xx + + + + +E3 + + + + +xx + + + + +E2 + + + + +E4 + + + + +xx + + + + +x + + + + +E5 + + + + +E1 + + + + +xx + + + + +E3' + + + + +xx + + + + +x + + + + +xx + + + + +xx + + + + +validator + + + + +vote(E1) + + + + +vote(E2) + + + + +slash(E3) + + + + +vote(E4) + + + + +hang + + + + +on + + + + +to + + + + +action + + + + +E4 + + + + +and + + + + +E5 + + + + +for + + + + +more... + + + diff --git a/book/src/.gitbook/assets/forks (1).svg b/book/src/.gitbook/assets/forks (1).svg new file mode 100644 index 0000000000..725a73f5d3 --- /dev/null +++ b/book/src/.gitbook/assets/forks (1).svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +1 + + + + +2 + + + + +4 + + + + +3 + + + + +6 + + + + +7 + + + diff --git a/book/src/.gitbook/assets/forks (2).svg b/book/src/.gitbook/assets/forks (2).svg new file mode 100644 index 0000000000..725a73f5d3 --- /dev/null +++ b/book/src/.gitbook/assets/forks (2).svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +1 + + + + +2 + + + + +4 + + + + +3 + + + + +6 + + + + +7 + + + diff --git a/book/src/.gitbook/assets/forks (3).svg b/book/src/.gitbook/assets/forks (3).svg new file mode 100644 index 0000000000..725a73f5d3 --- /dev/null +++ b/book/src/.gitbook/assets/forks (3).svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +1 + + + + +2 + + + + +4 + + + + +3 + + + + +6 + + + + +7 + + + diff --git a/book/src/.gitbook/assets/forks-pruned (1).svg b/book/src/.gitbook/assets/forks-pruned (1).svg new file mode 100644 index 0000000000..5a8f41f21c --- /dev/null +++ b/book/src/.gitbook/assets/forks-pruned (1).svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +1 + + + + +2 + + + + +4 + + + diff --git a/book/src/.gitbook/assets/forks-pruned (2).svg b/book/src/.gitbook/assets/forks-pruned (2).svg new file mode 100644 index 0000000000..5a8f41f21c --- /dev/null +++ b/book/src/.gitbook/assets/forks-pruned (2).svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +1 + + + + +2 + + + + +4 + + + diff --git a/book/src/.gitbook/assets/forks-pruned (3).svg b/book/src/.gitbook/assets/forks-pruned (3).svg new file mode 100644 index 0000000000..5a8f41f21c --- /dev/null +++ b/book/src/.gitbook/assets/forks-pruned (3).svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 + + + + +1 + + + + +2 + + + + +4 + + + diff --git a/book/src/.gitbook/assets/forks-pruned2 (1).svg b/book/src/.gitbook/assets/forks-pruned2 (1).svg new file mode 100644 index 0000000000..f57f691d73 --- /dev/null +++ b/book/src/.gitbook/assets/forks-pruned2 (1).svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + +3 + + + + +6 + + + + +7 + + + diff --git a/book/src/.gitbook/assets/forks-pruned2 (2).svg b/book/src/.gitbook/assets/forks-pruned2 (2).svg new file mode 100644 index 0000000000..f57f691d73 --- /dev/null +++ b/book/src/.gitbook/assets/forks-pruned2 (2).svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + +3 + + + + +6 + + + + +7 + + + diff --git a/book/src/.gitbook/assets/forks-pruned2 (3).svg b/book/src/.gitbook/assets/forks-pruned2 (3).svg new file mode 100644 index 0000000000..f57f691d73 --- /dev/null +++ b/book/src/.gitbook/assets/forks-pruned2 (3).svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + + + + +3 + + + + +6 + + + + +7 + + + diff --git a/book/src/.gitbook/assets/p_ex_schedule (5).png b/book/src/.gitbook/assets/p_ex_schedule (5).png new file mode 100644 index 0000000000..beb4c0cc5c Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_schedule (5).png differ diff --git a/book/src/.gitbook/assets/p_ex_schedule (6).png b/book/src/.gitbook/assets/p_ex_schedule (6).png new file mode 100644 index 0000000000..beb4c0cc5c Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_schedule (6).png differ diff --git a/book/src/.gitbook/assets/p_ex_schedule (7).png b/book/src/.gitbook/assets/p_ex_schedule (7).png new file mode 100644 index 0000000000..beb4c0cc5c Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_schedule (7).png differ diff --git a/book/src/.gitbook/assets/p_ex_schedule-3 (1).png b/book/src/.gitbook/assets/p_ex_schedule-3 (1).png new file mode 100644 index 0000000000..beb4c0cc5c Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_schedule-3 (1).png differ diff --git a/book/src/.gitbook/assets/p_ex_schedule-3.png b/book/src/.gitbook/assets/p_ex_schedule-3.png new file mode 100644 index 0000000000..beb4c0cc5c Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_schedule-3.png differ diff --git a/book/src/.gitbook/assets/p_ex_supply (5).png b/book/src/.gitbook/assets/p_ex_supply (5).png new file mode 100644 index 0000000000..3779849368 Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_supply (5).png differ diff --git a/book/src/.gitbook/assets/p_ex_supply (6).png b/book/src/.gitbook/assets/p_ex_supply (6).png new file mode 100644 index 0000000000..3779849368 Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_supply (6).png differ diff --git a/book/src/.gitbook/assets/p_ex_supply-1 (1).png b/book/src/.gitbook/assets/p_ex_supply-1 (1).png new file mode 100644 index 0000000000..3779849368 Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_supply-1 (1).png differ diff --git a/book/src/.gitbook/assets/p_ex_supply-1.png b/book/src/.gitbook/assets/p_ex_supply-1.png new file mode 100644 index 0000000000..3779849368 Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_supply-1.png differ diff --git a/book/src/.gitbook/assets/p_ex_supply-3.png b/book/src/.gitbook/assets/p_ex_supply-3.png new file mode 100644 index 0000000000..3779849368 Binary files /dev/null and b/book/src/.gitbook/assets/p_ex_supply-3.png differ diff --git a/book/src/.gitbook/assets/passive-staking-callflow (1).svg b/book/src/.gitbook/assets/passive-staking-callflow (1).svg new file mode 100644 index 0000000000..378686284a --- /dev/null +++ b/book/src/.gitbook/assets/passive-staking-callflow (1).svg @@ -0,0 +1,238 @@ + + + + + +VoteSigner + + + + +Validator + + + + +Cluster + + + + +StakerX + + + + +StakerY + + + + + + + + + + + + + + + + + + +boot.. + + + + + + + + + + + + +register + + + + + + + +(optional) + + + + + + + + + + +VoteState::Initialize(VoteSigner) + + + + + + + + + + +StakeState::Delegate(Validator) + + + + + + + + + + +StakeState::Delegate(Validator) + + + + + + + + + + + + + + + + + + + + + + +validate + + + + + + + + + + + + + + +sign(vote) + + + + + + + + + + +signed vote + + + + + + + + + + +gossip(vote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +max + + + +lockout + + + + + + + + + + + + + + + + + + + +StakeState::RedeemCredits() + + + + + + + + + + +StakeState::RedeemCredits() + + + + + + + diff --git a/book/src/.gitbook/assets/passive-staking-callflow (2).svg b/book/src/.gitbook/assets/passive-staking-callflow (2).svg new file mode 100644 index 0000000000..378686284a --- /dev/null +++ b/book/src/.gitbook/assets/passive-staking-callflow (2).svg @@ -0,0 +1,238 @@ + + + + + +VoteSigner + + + + +Validator + + + + +Cluster + + + + +StakerX + + + + +StakerY + + + + + + + + + + + + + + + + + + +boot.. + + + + + + + + + + + + +register + + + + + + + +(optional) + + + + + + + + + + +VoteState::Initialize(VoteSigner) + + + + + + + + + + +StakeState::Delegate(Validator) + + + + + + + + + + +StakeState::Delegate(Validator) + + + + + + + + + + + + + + + + + + + + + + +validate + + + + + + + + + + + + + + +sign(vote) + + + + + + + + + + +signed vote + + + + + + + + + + +gossip(vote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +max + + + +lockout + + + + + + + + + + + + + + + + + + + +StakeState::RedeemCredits() + + + + + + + + + + +StakeState::RedeemCredits() + + + + + + + diff --git a/book/src/.gitbook/assets/passive-staking-callflow (3).svg b/book/src/.gitbook/assets/passive-staking-callflow (3).svg new file mode 100644 index 0000000000..378686284a --- /dev/null +++ b/book/src/.gitbook/assets/passive-staking-callflow (3).svg @@ -0,0 +1,238 @@ + + + + + +VoteSigner + + + + +Validator + + + + +Cluster + + + + +StakerX + + + + +StakerY + + + + + + + + + + + + + + + + + + +boot.. + + + + + + + + + + + + +register + + + + + + + +(optional) + + + + + + + + + + +VoteState::Initialize(VoteSigner) + + + + + + + + + + +StakeState::Delegate(Validator) + + + + + + + + + + +StakeState::Delegate(Validator) + + + + + + + + + + + + + + + + + + + + + + +validate + + + + + + + + + + + + + + +sign(vote) + + + + + + + + + + +signed vote + + + + + + + + + + +gossip(vote) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +max + + + +lockout + + + + + + + + + + + + + + + + + + + +StakeState::RedeemCredits() + + + + + + + + + + +StakeState::RedeemCredits() + + + + + + + diff --git a/book/src/.gitbook/assets/runtime (1).svg b/book/src/.gitbook/assets/runtime (1).svg new file mode 100644 index 0000000000..0a9b8289b2 --- /dev/null +++ b/book/src/.gitbook/assets/runtime (1).svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PoH + + + + +verify + + + + +TVU + + + + +load + + + + +accounts + + + + +sigverify + + + + +execute + + + + +lock + + + + +PoH + + + + +accounts + + + + +TPU + + + + +record + + + + +validate + + + + +commit + + + + +accounts + + + + +fee + + + + +allocate + + + + +unlock + + + + +new + + + + +accounts + + + + +accounts + + + diff --git a/book/src/.gitbook/assets/runtime (2).svg b/book/src/.gitbook/assets/runtime (2).svg new file mode 100644 index 0000000000..0a9b8289b2 --- /dev/null +++ b/book/src/.gitbook/assets/runtime (2).svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PoH + + + + +verify + + + + +TVU + + + + +load + + + + +accounts + + + + +sigverify + + + + +execute + + + + +lock + + + + +PoH + + + + +accounts + + + + +TPU + + + + +record + + + + +validate + + + + +commit + + + + +accounts + + + + +fee + + + + +allocate + + + + +unlock + + + + +new + + + + +accounts + + + + +accounts + + + diff --git a/book/src/.gitbook/assets/runtime (3).svg b/book/src/.gitbook/assets/runtime (3).svg new file mode 100644 index 0000000000..0a9b8289b2 --- /dev/null +++ b/book/src/.gitbook/assets/runtime (3).svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PoH + + + + +verify + + + + +TVU + + + + +load + + + + +accounts + + + + +sigverify + + + + +execute + + + + +lock + + + + +PoH + + + + +accounts + + + + +TPU + + + + +record + + + + +validate + + + + +commit + + + + +accounts + + + + +fee + + + + +allocate + + + + +unlock + + + + +new + + + + +accounts + + + + +accounts + + + diff --git a/book/src/.gitbook/assets/sdk-tools (1).svg b/book/src/.gitbook/assets/sdk-tools (1).svg new file mode 100644 index 0000000000..629a3feaa3 --- /dev/null +++ b/book/src/.gitbook/assets/sdk-tools (1).svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Verifier + + + + +Loader + + + + +Solana + + + + +LoadAccounts + + + + +Runtime + + + + +Interpreter + + + + +Accounts + + + diff --git a/book/src/.gitbook/assets/sdk-tools (2).svg b/book/src/.gitbook/assets/sdk-tools (2).svg new file mode 100644 index 0000000000..629a3feaa3 --- /dev/null +++ b/book/src/.gitbook/assets/sdk-tools (2).svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Verifier + + + + +Loader + + + + +Solana + + + + +LoadAccounts + + + + +Runtime + + + + +Interpreter + + + + +Accounts + + + diff --git a/book/src/.gitbook/assets/sdk-tools (3).svg b/book/src/.gitbook/assets/sdk-tools (3).svg new file mode 100644 index 0000000000..629a3feaa3 --- /dev/null +++ b/book/src/.gitbook/assets/sdk-tools (3).svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Verifier + + + + +Loader + + + + +Solana + + + + +LoadAccounts + + + + +Runtime + + + + +Interpreter + + + + +Accounts + + + diff --git a/book/src/.gitbook/assets/spv-bank-merkle (1).svg b/book/src/.gitbook/assets/spv-bank-merkle (1).svg new file mode 100644 index 0000000000..a07908d17e --- /dev/null +++ b/book/src/.gitbook/assets/spv-bank-merkle (1).svg @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hash(Account1) + + + + +Bank-Diff-Merkle + + + + +Hash + + + + +Hash(Account2) + + + + +Previous + + + + +Bank-Merkle + + + + +Bank-Diff-Merkle + + + + +Block-Merkle + + + diff --git a/book/src/.gitbook/assets/spv-bank-merkle (2).svg b/book/src/.gitbook/assets/spv-bank-merkle (2).svg new file mode 100644 index 0000000000..a07908d17e --- /dev/null +++ b/book/src/.gitbook/assets/spv-bank-merkle (2).svg @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hash(Account1) + + + + +Bank-Diff-Merkle + + + + +Hash + + + + +Hash(Account2) + + + + +Previous + + + + +Bank-Merkle + + + + +Bank-Diff-Merkle + + + + +Block-Merkle + + + diff --git a/book/src/.gitbook/assets/spv-bank-merkle (3).svg b/book/src/.gitbook/assets/spv-bank-merkle (3).svg new file mode 100644 index 0000000000..a07908d17e --- /dev/null +++ b/book/src/.gitbook/assets/spv-bank-merkle (3).svg @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hash(Account1) + + + + +Bank-Diff-Merkle + + + + +Hash + + + + +Hash(Account2) + + + + +Previous + + + + +Bank-Merkle + + + + +Bank-Diff-Merkle + + + + +Block-Merkle + + + diff --git a/book/src/.gitbook/assets/spv-block-merkle (1).svg b/book/src/.gitbook/assets/spv-block-merkle (1).svg new file mode 100644 index 0000000000..18ea80cadd --- /dev/null +++ b/book/src/.gitbook/assets/spv-block-merkle (1).svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hash(T1, + + + + +status) + + + + +Hash + + + + +Entry-Merkle + + + + +Hash(T2, + + + + +status) + + + + +Block-Merkle + + + + +Hash(T3, + + + + +Entry-Merkle + + + + +status) + + + + +Hash + + + + +0 + + + diff --git a/book/src/.gitbook/assets/spv-block-merkle (2).svg b/book/src/.gitbook/assets/spv-block-merkle (2).svg new file mode 100644 index 0000000000..18ea80cadd --- /dev/null +++ b/book/src/.gitbook/assets/spv-block-merkle (2).svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hash(T1, + + + + +status) + + + + +Hash + + + + +Entry-Merkle + + + + +Hash(T2, + + + + +status) + + + + +Block-Merkle + + + + +Hash(T3, + + + + +Entry-Merkle + + + + +status) + + + + +Hash + + + + +0 + + + diff --git a/book/src/.gitbook/assets/spv-block-merkle (3).svg b/book/src/.gitbook/assets/spv-block-merkle (3).svg new file mode 100644 index 0000000000..18ea80cadd --- /dev/null +++ b/book/src/.gitbook/assets/spv-block-merkle (3).svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hash(T1, + + + + +status) + + + + +Hash + + + + +Entry-Merkle + + + + +Hash(T2, + + + + +status) + + + + +Block-Merkle + + + + +Hash(T3, + + + + +Entry-Merkle + + + + +status) + + + + +Hash + + + + +0 + + + diff --git a/book/src/.gitbook/assets/tpu (1).svg b/book/src/.gitbook/assets/tpu (1).svg new file mode 100644 index 0000000000..1de96c7927 --- /dev/null +++ b/book/src/.gitbook/assets/tpu (1).svg @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Clients + + + + +TPU + + + + +Fetch + + + + +Stage + + + + +SigVerify + + + + +Stage + + + + +PoH + + + + +Banking + + + + +Stage + + + + +Service + + + + +Bank + + + + +Broadcast + + + + +Stage + + + + +Downstream + + + + +Validators + + + diff --git a/book/src/.gitbook/assets/tpu (2).svg b/book/src/.gitbook/assets/tpu (2).svg new file mode 100644 index 0000000000..1de96c7927 --- /dev/null +++ b/book/src/.gitbook/assets/tpu (2).svg @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Clients + + + + +TPU + + + + +Fetch + + + + +Stage + + + + +SigVerify + + + + +Stage + + + + +PoH + + + + +Banking + + + + +Stage + + + + +Service + + + + +Bank + + + + +Broadcast + + + + +Stage + + + + +Downstream + + + + +Validators + + + diff --git a/book/src/.gitbook/assets/tvu (1).svg b/book/src/.gitbook/assets/tvu (1).svg new file mode 100644 index 0000000000..de4c59c97e --- /dev/null +++ b/book/src/.gitbook/assets/tvu (1).svg @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Upstream + + + + +Validators + + + + +TVU + + + + +Blob + + + + +Fetch + + + + +Stage + + + + +Gossip + + + + +Service + + + + +Retransmit + + + + +Stage + + + + +Leader + + + + +Replay + + + + +Stage + + + + +Bank + + + + +Storage + + + + +Stage + + + diff --git a/book/src/.gitbook/assets/tvu (2).svg b/book/src/.gitbook/assets/tvu (2).svg new file mode 100644 index 0000000000..de4c59c97e --- /dev/null +++ b/book/src/.gitbook/assets/tvu (2).svg @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Upstream + + + + +Validators + + + + +TVU + + + + +Blob + + + + +Fetch + + + + +Stage + + + + +Gossip + + + + +Service + + + + +Retransmit + + + + +Stage + + + + +Leader + + + + +Replay + + + + +Stage + + + + +Bank + + + + +Storage + + + + +Stage + + + diff --git a/book/src/.gitbook/assets/tvu (3).svg b/book/src/.gitbook/assets/tvu (3).svg new file mode 100644 index 0000000000..de4c59c97e --- /dev/null +++ b/book/src/.gitbook/assets/tvu (3).svg @@ -0,0 +1,311 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Upstream + + + + +Validators + + + + +TVU + + + + +Blob + + + + +Fetch + + + + +Stage + + + + +Gossip + + + + +Service + + + + +Retransmit + + + + +Stage + + + + +Leader + + + + +Replay + + + + +Stage + + + + +Bank + + + + +Storage + + + + +Stage + + + diff --git a/book/src/.gitbook/assets/validator (1).svg b/book/src/.gitbook/assets/validator (1).svg new file mode 100644 index 0000000000..11be7b6a71 --- /dev/null +++ b/book/src/.gitbook/assets/validator (1).svg @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Validator + + + + +Bank + + + + +Forks + + + + +JSON + + + + +TPU + + + + +RPC + + + + +Service + + + + +Gossip + + + + +Replay + + + + +Stage + + + + +Broadcast + + + + +Stage + + + + +Blocktree + + + + +Service + + + + +BlobFetch + + + + +Stage + + + + +Validators + + + + +Upstream + + + + +Validators + + + + +Downstream + + + + +Validators + + + diff --git a/book/src/.gitbook/assets/validator (2).svg b/book/src/.gitbook/assets/validator (2).svg new file mode 100644 index 0000000000..11be7b6a71 --- /dev/null +++ b/book/src/.gitbook/assets/validator (2).svg @@ -0,0 +1,456 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Validator + + + + +Bank + + + + +Forks + + + + +JSON + + + + +TPU + + + + +RPC + + + + +Service + + + + +Gossip + + + + +Replay + + + + +Stage + + + + +Broadcast + + + + +Stage + + + + +Blocktree + + + + +Service + + + + +BlobFetch + + + + +Stage + + + + +Validators + + + + +Upstream + + + + +Validators + + + + +Downstream + + + + +Validators + + + diff --git a/book/src/.gitbook/assets/validator-proposal (1).svg b/book/src/.gitbook/assets/validator-proposal (1).svg new file mode 100644 index 0000000000..bf8410aba8 --- /dev/null +++ b/book/src/.gitbook/assets/validator-proposal (1).svg @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Fetch + + + + +Stage + + + + +Validator + + + + +TPU + + + + +Fetch + + + + +Stage + + + + +TPU + + + + +SigVerify + + + + +Stage + + + + +Upstream + + + + +Validators + + + + +Repair + + + + +Stage + + + + +Blockstore + + + + +Multicast + + + + +Stage + + + + +Downstream + + + + +Validators + + + + +PoH + + + + +Service + + + + +Banking + + + + +Stage + + + + +Banktree + + + + +Blockstore + + + diff --git a/book/src/.gitbook/assets/validator-proposal (2).svg b/book/src/.gitbook/assets/validator-proposal (2).svg new file mode 100644 index 0000000000..bf8410aba8 --- /dev/null +++ b/book/src/.gitbook/assets/validator-proposal (2).svg @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Fetch + + + + +Stage + + + + +Validator + + + + +TPU + + + + +Fetch + + + + +Stage + + + + +TPU + + + + +SigVerify + + + + +Stage + + + + +Upstream + + + + +Validators + + + + +Repair + + + + +Stage + + + + +Blockstore + + + + +Multicast + + + + +Stage + + + + +Downstream + + + + +Validators + + + + +PoH + + + + +Service + + + + +Banking + + + + +Stage + + + + +Banktree + + + + +Blockstore + + + diff --git a/book/src/.gitbook/assets/validator-proposal (3).svg b/book/src/.gitbook/assets/validator-proposal (3).svg new file mode 100644 index 0000000000..bf8410aba8 --- /dev/null +++ b/book/src/.gitbook/assets/validator-proposal (3).svg @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Client + + + + +Fetch + + + + +Stage + + + + +Validator + + + + +TPU + + + + +Fetch + + + + +Stage + + + + +TPU + + + + +SigVerify + + + + +Stage + + + + +Upstream + + + + +Validators + + + + +Repair + + + + +Stage + + + + +Blockstore + + + + +Multicast + + + + +Stage + + + + +Downstream + + + + +Validators + + + + +PoH + + + + +Service + + + + +Banking + + + + +Stage + + + + +Banktree + + + + +Blockstore + + + diff --git a/book/src/cluster/fork-generation.md b/book/src/cluster/fork-generation.md index 3c02df9530..a7aa2734d6 100644 --- a/book/src/cluster/fork-generation.md +++ b/book/src/cluster/fork-generation.md @@ -12,14 +12,14 @@ Nodes take turns being leader and generating the PoH that encodes state changes. 2. Leader filters valid transactions. 3. Leader executes valid transactions updating its state. 4. Leader packages transactions into entries based off its current PoH slot. -5. Leader transmits the entries to validator nodes \(in signed blobs\) - 1. The PoH stream includes ticks; empty entries that indicate liveness of +5. Leader transmits the entries to validator nodes \(in signed blobs\) 1. The PoH stream includes ticks; empty entries that indicate liveness of - the leader and the passage of time on the cluster. + the leader and the passage of time on the cluster. - 2. A leader's stream begins with the tick entries necessary complete the PoH + 1. A leader's stream begins with the tick entries necessary complete the PoH back to the leaders most recently observed prior leader slot. + 6. Validators retransmit entries to peers in their set and to further downstream nodes. diff --git a/book/src/cluster/ledger-replication.md b/book/src/cluster/ledger-replication.md index 6d7060303b..d289d127b6 100644 --- a/book/src/cluster/ledger-replication.md +++ b/book/src/cluster/ledger-replication.md @@ -100,7 +100,7 @@ We have the following constraints: there are not any obvious attack vectors that this could accomplish besides having the - replicator do extra wasted work. For many of the operations there are a number of options + replicator do extra wasted work. For many of the operations there are a number of options depending on how paranoid a replicator is: diff --git a/book/src/cluster/stake-delegation-and-rewards.md b/book/src/cluster/stake-delegation-and-rewards.md index ca0a9cde79..0a67fde4b8 100644 --- a/book/src/cluster/stake-delegation-and-rewards.md +++ b/book/src/cluster/stake-delegation-and-rewards.md @@ -35,7 +35,7 @@ VoteState is the current state of all the votes the validator has submitted to t `VoteState::authorized_vote_signer` is initialized to `account[0]` - other VoteState members defaulted + other VoteState members defaulted ### VoteInstruction::AuthorizeVoteSigner\(Pubkey\) @@ -43,14 +43,13 @@ VoteState is the current state of all the votes the validator has submitted to t `VoteState::authorized_vote_signer` is set to to `Pubkey`, the transaction must by - signed by the Vote account's current `authorized_vote_signer`. + signed by the Vote account's current `authorized_vote_signer`. +`VoteInstruction::AuthorizeVoter` allows a staker to choose a signing service - `VoteInstruction::AuthorizeVoter` allows a staker to choose a signing service +for its votes. That service is responsible for ensuring the vote won't cause - for its votes. That service is responsible for ensuring the vote won't cause - - the staker to be slashed. +the staker to be slashed. ### VoteInstruction::Vote\(Vec\) diff --git a/book/src/implemented-proposals/blocktree.md b/book/src/implemented-proposals/blocktree.md index 302c883b35..361669b6d5 100644 --- a/book/src/implemented-proposals/blocktree.md +++ b/book/src/implemented-proposals/blocktree.md @@ -12,7 +12,7 @@ Repair requests for recent blobs are served out of RAM or recent files and out o 1. Persistence: the Blocktree lives in the front of the nodes verification - pipeline, right behind network receive and signature verification. If the + pipeline, right behind network receive and signature verification. If the blob received is consistent with the leader schedule \(i.e. was signed by the @@ -30,7 +30,7 @@ Repair requests for recent blobs are served out of RAM or recent files and out o 4. Restart: with proper pruning/culling, the Blocktree can be replayed by - ordered enumeration of entries from slot 0. The logic of the replay stage + ordered enumeration of entries from slot 0. The logic of the replay stage \(i.e. dealing with forks\) will have to be used for the most recent entries in @@ -76,12 +76,9 @@ The bank exposes to replay stage: bank -3. `votes`: a stack of records that contain: - 1. `prev_hashes`: what anything after this vote must chain to in PoH - 2. `tick_height`: the tick height at which this vote was cast - 3. `lockout period`: how long a chain must be observed to be in the ledger to +3. `votes`: a stack of records that contain: 1. `prev_hashes`: what anything after this vote must chain to in PoH 2. `tick_height`: the tick height at which this vote was cast 3. `lockout period`: how long a chain must be observed to be in the ledger to - be able to be chained below this vote + be able to be chained below this vote Replay stage uses Blocktree APIs to find the longest chain of entries it can hang off a previous vote. If that chain of entries does not hang off the latest vote, the replay stage rolls back the bank to that vote and replays the chain from there. diff --git a/book/src/implemented-proposals/credit-only-credit-debit-accounts.md b/book/src/implemented-proposals/credit-only-credit-debit-accounts.md index c837fb3db2..d6d031ac59 100644 --- a/book/src/implemented-proposals/credit-only-credit-debit-accounts.md +++ b/book/src/implemented-proposals/credit-only-credit-debit-accounts.md @@ -69,7 +69,7 @@ This design attempts to cache a credit-only account after loading without the us 1. Transaction accounts are locked. - a. If the account is present in the ‘credit-only' table, the TX does not fail. + a. If the account is present in the ‘credit-only' table, the TX does not fail. ```text The pending state for this TX is marked NeedReadLock. @@ -77,13 +77,13 @@ This design attempts to cache a credit-only account after loading without the us 2. Transaction accounts are loaded. - a. Transaction accounts that are credit-only increase their reference + a. Transaction accounts that are credit-only increase their reference ```text count in the `credit-only` table. ``` - b. Transaction accounts that need a write lock and are present in the + b. Transaction accounts that need a write lock and are present in the ```text `credit-only` table fail. @@ -91,9 +91,9 @@ This design attempts to cache a credit-only account after loading without the us 3. Transaction accounts are unlocked. - a. Decrement the `credit-only` lock table reference count; remove if its 0 + a. Decrement the `credit-only` lock table reference count; remove if its 0 - b. Remove from the `lock` set if the account is not in the `credit-only` + b. Remove from the `lock` set if the account is not in the `credit-only` ```text table. diff --git a/book/src/implemented-proposals/installer.md b/book/src/implemented-proposals/installer.md index b3e7b0d698..b3e085b599 100644 --- a/book/src/implemented-proposals/installer.md +++ b/book/src/implemented-proposals/installer.md @@ -95,7 +95,7 @@ A release archive is expected to be a tar file compressed with bzip2 with the fo * `/version.yml` - a simple YAML file containing the field `"target"` - the - target tuple. Any additional fields are ignored. + target tuple. Any additional fields are ignored. * `/bin/` -- directory containing available programs in the release. diff --git a/book/src/implemented-proposals/leader-validator-transition.md b/book/src/implemented-proposals/leader-validator-transition.md index 1afaf51b17..92e8ef5940 100644 --- a/book/src/implemented-proposals/leader-validator-transition.md +++ b/book/src/implemented-proposals/leader-validator-transition.md @@ -35,19 +35,17 @@ The PoH Recorder manages the transition between modes. Once a ledger is replayed The loop is synchronized to PoH and does a synchronous start and stop of the slot leader functionality. After stopping, the validator's TVU should find itself in the same state as if a different leader had sent it the same block. The following is pseudocode for the loop: 1. Query the LeaderScheduler for the next assigned slot. -2. Run the TVU over all the forks. - 1. TVU will send votes to what it believes is the "best" fork. - 2. After each vote, restart the PoH Recorder to run until the next assigned +2. Run the TVU over all the forks. 1. TVU will send votes to what it believes is the "best" fork. 2. After each vote, restart the PoH Recorder to run until the next assigned + + slot. - slot. 3. When time to be a slot leader, start the TPU. Point it to the last fork the TVU voted on. -4. Produce entries until the end of the slot. - 1. For the duration of the slot, the TVU must not vote on other forks. - 2. After the slot ends, the TPU freezes its BankFork. After freezing, +4. Produce entries until the end of the slot. 1. For the duration of the slot, the TVU must not vote on other forks. 2. After the slot ends, the TPU freezes its BankFork. After freezing, + + the TVU may resume voting. - the TVU may resume voting. 5. Goto 1. diff --git a/book/src/implemented-proposals/passive-stake-delegation-and-rewards.md b/book/src/implemented-proposals/passive-stake-delegation-and-rewards.md index 88a0b7c970..97b5f3ccc5 100644 --- a/book/src/implemented-proposals/passive-stake-delegation-and-rewards.md +++ b/book/src/implemented-proposals/passive-stake-delegation-and-rewards.md @@ -35,7 +35,7 @@ VoteState is the current state of all the votes the **delegate** has submitted t `VoteState::authorized_vote_signer` is initialized to `account[0]` - other VoteState members defaulted + other VoteState members defaulted ### VoteInstruction::AuthorizeVoteSigner\(Pubkey\) @@ -43,7 +43,7 @@ VoteState is the current state of all the votes the **delegate** has submitted t `VoteState::authorized_vote_signer` is set to to `Pubkey`, instruction must by - signed by Pubkey + signed by Pubkey ### StakeState diff --git a/book/src/proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md b/book/src/proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md index a60111be75..2406212932 100644 --- a/book/src/proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md +++ b/book/src/proposals/ed_overview/ed_validation_client_economics/ed_vce_state_validation_protocol_based_rewards.md @@ -17,9 +17,9 @@ The first factor is a function of protocol parameters only \(i.e. independent of At any given point in time, a specific validator's interest rate can be determined based on the porportion of circulating supply that is staked by the network and the validator's uptime/activity in the previous epoch. For an illustrative example, consider a hypothetical instance of the network with an initial circulating token supply of 250MM tokens with an additional 250MM vesting over 3 years. Additionally an inflation rate is specified at network launch of 7.5%, and a disinflationary schedule of 20% decrease in inflation rate per year \(the actual rates to be implemented are to be worked out during the testnet experimentation phase of mainnet launch\). With these broad assumptions, the 10-year inflation rate \(adjusted daily for this example\) is shown in **Figure 2**, while the total circulating token supply is illustrated in **Figure 3**. Neglected in this toy-model is the inflation supression due to the portion of each transaction fee that is to be destroyed. -![drawing](../../../.gitbook/assets/p_ex_schedule.png) \*\*Figure 2:\*\* In this example schedule, the annual inflation rate \[%\] reduces at around 20% per year, until it reaches the long-term, fixed, 1.5% rate. + \*\*Figure 2:\*\* In this example schedule, the annual inflation rate \[%\] reduces at around 20% per year, until it reaches the long-term, fixed, 1.5% rate. -![drawing](../../../.gitbook/assets/p_ex_supply%20%283%29.png) \*\*Figure 3:\*\* The total token supply over a 10-year period, based on an initial 250MM tokens with the disinflationary inflation schedule as shown in \*\*Figure 2\*\* Over time, the interest rate, at a fixed network staked percentage, will reduce concordant with network inflation. Validation-client interest rates are designed to be higher in the early days of the network to incentivize participation and jumpstart the network economy. As previously mentioned, the inflation rate is expected to stabalize near 1-2% which also results in a fixed, long-term, interest rate to be provided to validator-clients. This value does not represent the total interest available to validator-clients as transaction fees for both state-validation and ledger storage replication \(PoReps\) are not accounted for here. Given these example parameters, annualized validator-specific interest rates can be determined based on the global fraction of tokens bonded as stake, as well as their uptime/activity in the previous epoch. For the purpose of this example, we assume 100% uptime for all validators and a split in interest-based rewards between validators and replicator nodes of 80%/20%. Additionally, the fraction of staked circulating supply is assummed to be constant. Based on these assumptions, an annualized validation-client interest rate schedule as a function of % circulating token supply that is staked is shown in\*\* Figure 4\*\*. + \*\*Figure 3:\*\* The total token supply over a 10-year period, based on an initial 250MM tokens with the disinflationary inflation schedule as shown in \*\*Figure 2\*\* Over time, the interest rate, at a fixed network staked percentage, will reduce concordant with network inflation. Validation-client interest rates are designed to be higher in the early days of the network to incentivize participation and jumpstart the network economy. As previously mentioned, the inflation rate is expected to stabalize near 1-2% which also results in a fixed, long-term, interest rate to be provided to validator-clients. This value does not represent the total interest available to validator-clients as transaction fees for both state-validation and ledger storage replication \(PoReps\) are not accounted for here. Given these example parameters, annualized validator-specific interest rates can be determined based on the global fraction of tokens bonded as stake, as well as their uptime/activity in the previous epoch. For the purpose of this example, we assume 100% uptime for all validators and a split in interest-based rewards between validators and replicator nodes of 80%/20%. Additionally, the fraction of staked circulating supply is assummed to be constant. Based on these assumptions, an annualized validation-client interest rate schedule as a function of % circulating token supply that is staked is shown in\*\* Figure 4\*\*. ![drawing](https://github.com/solana-labs/solana/tree/6b18db969dd1616eff07de35e7b823c75339fea8/book/src/img/p_ex_interest.png) diff --git a/book/src/validator/tvu/blocktree.md b/book/src/validator/tvu/blocktree.md index 2574532cec..94f3488480 100644 --- a/book/src/validator/tvu/blocktree.md +++ b/book/src/validator/tvu/blocktree.md @@ -12,7 +12,7 @@ Repair requests for recent blobs are served out of RAM or recent files and out o 1. Persistence: the Blocktree lives in the front of the nodes verification - pipeline, right behind network receive and signature verification. If the + pipeline, right behind network receive and signature verification. If the blob received is consistent with the leader schedule \(i.e. was signed by the @@ -30,7 +30,7 @@ Repair requests for recent blobs are served out of RAM or recent files and out o 4. Restart: with proper pruning/culling, the Blocktree can be replayed by - ordered enumeration of entries from slot 0. The logic of the replay stage + ordered enumeration of entries from slot 0. The logic of the replay stage \(i.e. dealing with forks\) will have to be used for the most recent entries in @@ -76,12 +76,9 @@ The bank exposes to replay stage: bank -3. `votes`: a stack of records that contain: - 1. `prev_hashes`: what anything after this vote must chain to in PoH - 2. `tick_height`: the tick height at which this vote was cast - 3. `lockout period`: how long a chain must be observed to be in the ledger to +3. `votes`: a stack of records that contain: 1. `prev_hashes`: what anything after this vote must chain to in PoH 2. `tick_height`: the tick height at which this vote was cast 3. `lockout period`: how long a chain must be observed to be in the ledger to - be able to be chained below this vote + be able to be chained below this vote Replay stage uses Blocktree APIs to find the longest chain of entries it can hang off a previous vote. If that chain of entries does not hang off the latest vote, the replay stage rolls back the bank to that vote and replays the chain from there.