-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Tristan Debrunner
committed
Nov 13, 2019
1 parent
5f38fa3
commit 202faa4
Showing
2 changed files
with
22 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Booting From a Snapshot | ||
|
||
## Problem | ||
|
||
A validator booting from a snapshot should know that they are caught up to the cluster before voting. | ||
|
||
## Solution | ||
|
||
A booting validator needs to have some set of trusted validators whose votes it will rely upon to ensure that it has caught up to the cluster and has a valid snapshot. With that set, the validator can | ||
|
||
1. Get a snapshot to boot from. | ||
|
||
2. Send canary transactions with its local recent blockhash to test if they get onto the ledger. | ||
|
||
3. While waiting to see one of the canary transactions, set a new root every time some threshold percent of the trusted validator stake roots a bank. | ||
|
||
4. Once a canary transaction is observed in a bank that some threshold of trusted validator stake has voted on, confirm that the `trusted validator root` > `snapshot root` | ||
|
||
5. Figure out what banks the validator is not locked out from. This is not currently done, and should be addressed separately, but is not necessary for this design. | ||
|
||
6. Start voting. |