You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: reference/parachains/consensus/async-backing.md
+10-9Lines changed: 10 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,11 +16,10 @@ The following configurations can be set by on-chain governance, dictating how ma
16
16
17
17
## Synchronous VS. Asynchronous Processing
18
18
19
-
*in progress*
19
+
<!-- In the synchronous scenario, both the collators and validators draw context from the relay parent of the prior parablock, which lives on the relay chain. This makes the Backing and Generation steps tightly coupled to the prior parablock completing the inclusion pipeline. As a result, one parablock can be processed *every other* relay block, and only `0.5` seconds are assigned for execution. -->
20
20
21
-
In the synchronous scenario, both the collators and validators draw context from the relay parent of the prior parablock, which lives on the relay chain. This makes the Backing and Generation steps tightly coupled to the prior parablock completing the inclusion pipeline. As a result, one parablock can be processed *every other* relay block, and only `0.5` seconds are assigned for execution.
21
+
The Polkadot-parachain protocol originally operated in synchronous mode, where both collators and validators drew context exclusively from the relay parent of the prior parablock, which lives on the relay chain. This made the Backing and Generation steps tightly coupled to the prior parablock completing the entire inclusion pipeline. As a result, one parablock could only be processed every other relay block, with just 0.5 seconds assigned for execution.
22
22
23
-
<divclassName="merm-16x9">
24
23
```mermaid
25
24
---
26
25
displayMode: compact
@@ -76,11 +75,14 @@ gantt
76
75
Backing : item2, 1913, 1918
77
76
Inclusion : item3, 1918, 1924
78
77
```
79
-
</div>
80
78
81
-
In the asynchronous scenario, where both the collators and validators have access to [Unincluded Segments](/reference/parachains/consensus/inclusion-pipeline) as an additional context source, the Backing and Generation steps are no longer coupled to the prior block completing the full inclusion pipeline. Instead, the prior parablock only needs to complete the generation step and be added to the Unincluded Segments before the next parablock can begin the Backing and Generation steps.
79
+
<!--In the asynchronous scenario, where both the collators and validators have access to [Unincluded Segments](/reference/parachains/consensus/inclusion-pipeline) as an additional context source, the Backing and Generation steps are no longer coupled to the prior block completing the full inclusion pipeline. Instead, the prior parablock only needs to complete the generation step and be added to the Unincluded Segments before the next parablock can begin the Backing and Generation steps.
82
80
83
-
This results in one parablock being processed *every* relay block, and allows for `2` seconds of execution.
81
+
This results in one parablock being processed *every* relay block, and allows for `2` seconds of execution. -->
82
+
83
+
The modern protocol now uses asynchronous backing, where both collators and validators have access to [Unincluded Segments](/reference/parachains/consensus/inclusion-pipeline) as an additional context source. The Backing and Generation steps are no longer coupled to the prior block completing the full inclusion pipeline. Instead, the prior parablock only needs to complete the generation step and be added to the Unincluded Segments before the next parablock can begin the Backing and Generation steps.
84
+
85
+
This results in one parablock being processed every relay block (instead of every other relay block), and allows for more time to execute during the Generation step (0.5s → 2s).
84
86
85
87
```mermaid
86
88
---
@@ -157,9 +159,8 @@ gantt
157
159
Backing : item2, 1920, 1930
158
160
```
159
161
160
-
Notice how `P2` starts before the backing stage of `P1`.
162
+
<!-- In the multi-core scenario, by using elastic scaling we can further increase the the number of parablocks processed for each relay block. By using two cores, here we double the number of parablocks being processed in a 30 second period:
Copy file name to clipboardExpand all lines: reference/parachains/consensus/inclusion-pipeline.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ flowchart LR
39
39
40
40
**Generation**: Collators *execute* their blockchain's core functionality to generate a new block, producing a [proof-of-validity](https://paritytech.github.io/polkadot-sdk/book/types/availability.html?#proof-of-validity) (PoV), which is passed to validators selected for backing. The PoV is composed of:
41
41
42
-
-The block candidate (list of state transitions)
42
+
-A list of state transitions called the **block candidate**
43
43
- The values in the parachain's database that the block modifies
44
44
- The hashes of the unaffected points in the Merkle tree
0 commit comments