Skip to content

Commit 55fae1d

Browse files
committed
Update the plan for clock calculation.
1 parent a8aad6c commit 55fae1d

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

proposals/0165-async-vote-execution.md

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,16 @@ extends: null
1616
## Summary
1717

1818
Separate the execution of vote and non-vote transactions in each block. The
19-
vote transactions will be verified and executed first, then the non-vote
20-
transactions will be executed later asynchronously to finalize the block.
19+
vote transactions and non-vote transactions will be verified and executed
20+
independently. Because the vote transactions are normally much faster to
21+
execute, under most cases this means vote transactions will finish
22+
execution first.
23+
24+
The eventual goal is to completely separate vote and non-vote transaction
25+
executions. But right now we still have some dependency that non-vote
26+
transactions need to read the vote state in its parent block, so currently we
27+
restrict that non-vote transactions cannot start execution until the vote
28+
transactions of its parent block has finished.
2129

2230
## Motivation
2331

@@ -78,15 +86,22 @@ route during rollouts though.
7886
To make sure vote transactions can be executed independently, we need to
7987
isolate its dependencies.
8088

81-
#### Remove clock program's dependency on votes
89+
#### Remove clock program's dependency on votes (postponed)
8290

83-
Introduce new transaction `ClockBump` to remove current clock program's
84-
dependency on votes.
91+
The eventual goal is to introduce new transaction `ClockBump` to remove
92+
current clock program's dependency on votes.
8593

8694
The transaction `ClockBump` is sent by a leader with at least 0.5% stake
8795
every 12 slots to correct the clock drift. A small script can be used to
8896
refund well-behaving leaders the cost of the transactions.
8997

98+
But currently we will keep the clock calculation as is, since the clock
99+
sysvar uses the vote-state of the parent block to calculate average
100+
timestamp, and we have restrictions that the UED transactions in a
101+
block cannot start execution until the VED transactions in its
102+
ancestors have finished. So we can currently leave clock sysvar
103+
calculation as is.
104+
90105
#### Split vote accounts into two accounts in VED and UED respectively
91106

92107
We need to allow users move money in and out of the vote accounts, but

0 commit comments

Comments
 (0)