Closed
Conversation
Codecov Report
@@ Coverage Diff @@
## master #4645 +/- ##
=======================================
Coverage 65.77% 65.77%
=======================================
Files 255 255
Lines 23669 23669
=======================================
Hits 15569 15569
Misses 6841 6841
Partials 1259 1259 |
Contributor
Author
|
Getting some hairy merge conflicts with master. I'll split this up a bit and submit fresh PRs. |
This was referenced Apr 20, 2020
Merged
erikgrinaker
added a commit
that referenced
this pull request
Apr 29, 2020
Adds the ABCI interface for [state sync](#828) as outlined in [ADR-053](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-053-state-sync-prototype.md), and bumps ABCIVersion to `0.17.0`. The interface adds a new ABCI connection which Tendermint can use to query and load snapshots from the app (for serving snapshots to other nodes), and to offer and apply snapshots to the app (for state syncing a local node from peers). Split out from the original PR in #4645, state sync reactor will be submitted as a separate PR. The interface is implemented by the Cosmos SDK in cosmos/cosmos-sdk#5803.
erikgrinaker
added a commit
that referenced
this pull request
Apr 29, 2020
Fixes #828. Adds state sync, as outlined in [ADR-053](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-053-state-sync-prototype.md). See related PRs in Cosmos SDK (cosmos/cosmos-sdk#5803) and Gaia (cosmos/gaia#327). This is split out of the previous PR #4645, and branched off of the ABCI interface in #4704. * Adds a new P2P reactor which exchanges snapshots with peers, and bootstraps an empty local node from remote snapshots when requested. * Adds a new configuration section `[statesync]` that enables state sync and configures the light client. Also enables `statesync:info` logging by default. * Integrates state sync into node startup. Does not support the v2 blockchain reactor, since it needs some reorganization to defer startup.
tac0turtle
pushed a commit
that referenced
this pull request
Apr 29, 2020
Adds the ABCI interface for [state sync](#828) as outlined in [ADR-053](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-053-state-sync-prototype.md), and bumps ABCIVersion to `0.17.0`. The interface adds a new ABCI connection which Tendermint can use to query and load snapshots from the app (for serving snapshots to other nodes), and to offer and apply snapshots to the app (for state syncing a local node from peers). Split out from the original PR in #4645, state sync reactor will be submitted as a separate PR. The interface is implemented by the Cosmos SDK in cosmos/cosmos-sdk#5803.
tac0turtle
pushed a commit
that referenced
this pull request
Apr 29, 2020
Fixes #828. Adds state sync, as outlined in [ADR-053](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-053-state-sync-prototype.md). See related PRs in Cosmos SDK (cosmos/cosmos-sdk#5803) and Gaia (cosmos/gaia#327). This is split out of the previous PR #4645, and branched off of the ABCI interface in #4704. * Adds a new P2P reactor which exchanges snapshots with peers, and bootstraps an empty local node from remote snapshots when requested. * Adds a new configuration section `[statesync]` that enables state sync and configures the light client. Also enables `statesync:info` logging by default. * Integrates state sync into node startup. Does not support the v2 blockchain reactor, since it needs some reorganization to defer startup.
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Fixes #828. Adds state sync, as outlined in ADR-053. See related PRs in Cosmos SDK (cosmos/cosmos-sdk#5803) and Gaia (cosmos/gaia#327).
Adds a new ABCI interface and connection for fetching and applying state snapshots. Bumps
ABCIVersionto 0.17.0.Adds a new P2P reactor which exchanges snapshots with peers, and bootstraps an empty local node from remote snapshots when requested. Does not bump
P2PVersionsince ignoring these messages is fine.Adds a new configuration section
[statesync]that enables state sync and configures the light client. Also enablesstatesync:infologging by default.Integrates state sync into node startup. Does not support the v2 blockchain reactor, since it needs some reorganization to defer startup.
What's left?
Integrate with v2 blockchain reactor.(later PR)Write documentation.(later PR)How to try it out
There's a draft Gaia PR (cosmos/gaia#327) that includes modifications to run a local state sync test net.
First, fetch the necessary branches:
Next, build and run a Gaia testnet. This starts 3 nodes in a 4-node cluster, taking state snapshots at every single height.
Let the network create a few blocks and snapshots, then (in a separate terminal) run the following script which configures
node3with state sync and starts the node:The node will first spend 10 seconds discovering snapshots, then restore the most recent snapshot it found before joining normal consensus operation.
For contributor use:
docs/) and code commentsFiles changedin the Github PR explorer