-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Epic 5: Support fast sync #6
Comments
Implementing ABCI snapshots for new Tendermint DB backendsApproachWe will attempt to make all needed changes conform to the same interface used in the The most straightforward way to do this is to just define a new
InterfaceWe can define new generic interface types to export and import encoded messages, and implement these for all relevant persistent stores. These will reflect the current IAVL export types, but deal directly with type PortableStore interface {
Export(uint64) (Exporter, error)
Import(uint64) (Importer, error)
}
type Exporter interface {
Next() (SnapshotItem, error)
Close()
}
type Importer interface {
Add(SnapshotItem)
Commit() error
Close()
} ImplementationBadgerDBThe
RocksDBRocksDB snapshots are an ephemeral view of the DB at a specific point in time. This is enough to create a snapshot directly after a commit.
EncodingWe define the following new protobuf message and add it as a subtype of message SnapshotKVItem {
bytes key = 1;
bytes value = 2;
}
message SnapshotItem {
oneof item {
...
SnapshotKVItem kv = 3;
}
} The |
The new Epic 4. We still want to use the above approach, but current test cases makes it difficult to refactor. |
Closing, see cosmos#9816 and child issues, tracking on zenhub |
We need to support the state sync snapshotting process for bootstrapping a node with fast sync. This will follow the current approach but will require us to offer up snapshot plans that allow the consumer to reconstruct both the SC and SS.
See #9 for more details
The text was updated successfully, but these errors were encountered: