Integrate cleanup from book (#1991)

This is backwards. In the future, I'll make changes to the RFC
first. Once the design is implemented, it can be more of a copy-paste
into the book.
This commit is contained in:
Greg Fitzgerald 2018-12-03 11:53:03 -07:00 committed by GitHub
parent 4ae58cc854
commit 969016b9e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 16 deletions

View File

@ -42,21 +42,20 @@ The diagram below represents a validator's view of the PoH stream with possible
``` ```
time +----+ validator action validator action
| | L1 | E(L1) +----+ ----------------
| |----| / \ vote(E(L2)) | | L1 | E1
| | L2 | E(L2) x | +----+ / \ vote(E1)
| |----| / \ / \ vote(E(L2)) | | L2 | E2 x
| | L3 | E(L3) x E(L3)' x | +----+ / \ / \ vote(E2)
| |----| / \ / \ / \ / \ slash(L3) time | | L3 | E3 x E3' x
| | L4 | x x E(L4) x x x x x | +----+ / \ / \ / \ / \ slash(E3)
V |----| | | | | | | | | vote(E(L4)) | | L4 | x x E4 x x x x x
V | L5 | xx xx xx E(L5) xx xx xx xx | +----+ | | | | | | | | vote(E4)
V +----+ hang on to E(L4) and E(L5) for more... v | L5 | xx xx xx E5 xx xx xx xx
+----+ hang on to E4 and E5 for more...
``` Note that an `E` appearing on 2 forks at the same slot is a slashable condition, so a validator observing `E3` and `E3'` can slash L3 and safely choose `x` for that slot. Once a validator commits to a forks, other forks can be discarded below that tick count. For any slot, validators need only consider a single "has entries" chain or a "ticks only" chain to be proposed by a leader. But multiple virtual entries may overlap as they link back to the a previous slot.
Note that an `E` appearing on 2 forks at the same slot is a slashable condition, so a validator observing `E(L3)` and `E(L3)'` can slash L3 and safely choose `x` for that slot. Once a validator commits to a forks, other forks can be discarded below that tick count. For any slot, validators need only consider a single "has entries" chain or a "ticks only" chain to be proposed by a leader. But multiple virtual entries may overlap as they link back to the a previous slot.
#### Time Division #### Time Division
@ -64,8 +63,8 @@ It's useful to consider leader rotation over PoH tick count as time division of
leader slot | L1 | L2 | L3 | L4 | L5 leader slot | L1 | L2 | L3 | L4 | L5
-------|----|----|----|----|---- -------|----|----|----|----|----
data | E(L1)| E(L2) | E(L3) | E(L4) | E(L5) data | E1| E2 | E3 | E4 | E5
ticks to prev | | | | x | xx ticks since prev | | | | x | xx
Note that only data from leader L3 will be accepted during leader slot L3. Data from L3 may include "catchup" ticks back to a slot other than L2 if L3 did not observe L2's data. L4 and L5's transmissions include the "ticks to prev" PoH entries. Note that only data from leader L3 will be accepted during leader slot L3. Data from L3 may include "catchup" ticks back to a slot other than L2 if L3 did not observe L2's data. L4 and L5's transmissions include the "ticks to prev" PoH entries.