Skip to content

Commit

Permalink
Add snapshot booting proposal
Browse files Browse the repository at this point in the history
  • Loading branch information
Tristan Debrunner committed Nov 13, 2019
1 parent 5f38fa3 commit 202faa4
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
1 change: 1 addition & 0 deletions book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
* [Inter-chain Transaction Verification](proposals/interchain-transaction-verification.md)
* [Snapshot Verification](proposals/snapshot-verification.md)
* [Bankless Leader](proposals/bankless-leader.md)
* [Booting from a Snapshot](proposals/booting-from-snapshot.md)
* [Implemented Design Proposals](implemented-proposals/README.md)
* [Blocktree](implemented-proposals/blocktree.md)
* [Cluster Software Installation and Updates](implemented-proposals/installer.md)
Expand Down
21 changes: 21 additions & 0 deletions book/src/proposals/booting-from-snapshot.md
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.

0 comments on commit 202faa4

Please sign in to comment.