syntax = "proto3"; package cosmos.base.snapshots.v1beta1; import "gogoproto/gogo.proto"; option go_package = "github.com/cosmos/cosmos-sdk/snapshots/types"; // Snapshot contains Tendermint state sync snapshot info. message Snapshot { uint64 height = 1; uint32 format = 2; uint32 chunks = 3; bytes hash = 4; Metadata metadata = 5 [(gogoproto.nullable) = false]; } // Metadata contains SDK-specific snapshot metadata. message Metadata { repeated bytes chunk_hashes = 1; // SHA-256 chunk hashes } // SnapshotItem is an item contained in a rootmulti.Store snapshot. message SnapshotItem { // item is the specific type of snapshot item. oneof item { SnapshotStoreItem store = 1; SnapshotIAVLItem iavl = 2 [(gogoproto.customname) = "IAVL"]; SnapshotExtensionMeta extension = 3; SnapshotExtensionPayload extension_payload = 4; } } // SnapshotStoreItem contains metadata about a snapshotted store. message SnapshotStoreItem { string name = 1; } // SnapshotIAVLItem is an exported IAVL node. message SnapshotIAVLItem { bytes key = 1; bytes value = 2; // version is block height int64 version = 3; // height is depth of the tree. int32 height = 4; } // SnapshotExtensionMeta contains metadata about an external snapshotter. message SnapshotExtensionMeta { string name = 1; uint32 format = 2; } // SnapshotExtensionPayload contains payloads of an external snapshotter. message SnapshotExtensionPayload { bytes payload = 1; }