pub struct OfferSnapshot {
pub snapshot: Snapshot,
pub app_hash: AppHash,
}
Expand description
Offers a list of snapshots to the application.
OfferSnapshot
is called when bootstrapping a node using state sync. The
application may accept or reject snapshots as appropriate. Upon accepting,
Tendermint will retrieve and apply snapshot chunks via
ApplySnapshotChunk
. The application may also choose to reject a snapshot
in the chunk response, in which case it should be prepared to accept further
OfferSnapshot
calls.
Only app_hash
can be trusted, as it has been verified by the light client.
Any other data can be spoofed by adversaries, so applications should employ
additional verification schemes to avoid denial-of-service attacks. The
verified app_hash
is automatically checked against the restored application
at the end of snapshot restoration.
See also the Snapshot
data type and the ABCI state sync documentation.
Fields§
§snapshot: Snapshot
The snapshot offered for restoration.
app_hash: AppHash
The light client verified app hash for this height.
Trait Implementations§
Source§impl Clone for OfferSnapshot
impl Clone for OfferSnapshot
Source§fn clone(&self) -> OfferSnapshot
fn clone(&self) -> OfferSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for OfferSnapshot
impl Debug for OfferSnapshot
Source§impl From<OfferSnapshot> for RequestOfferSnapshot
impl From<OfferSnapshot> for RequestOfferSnapshot
Source§fn from(offer_snapshot: OfferSnapshot) -> Self
fn from(offer_snapshot: OfferSnapshot) -> Self
Source§impl From<OfferSnapshot> for RequestOfferSnapshot
impl From<OfferSnapshot> for RequestOfferSnapshot
Source§fn from(offer_snapshot: OfferSnapshot) -> Self
fn from(offer_snapshot: OfferSnapshot) -> Self
Source§impl From<OfferSnapshot> for RequestOfferSnapshot
impl From<OfferSnapshot> for RequestOfferSnapshot
Source§fn from(offer_snapshot: OfferSnapshot) -> Self
fn from(offer_snapshot: OfferSnapshot) -> Self
Source§impl PartialEq for OfferSnapshot
impl PartialEq for OfferSnapshot
Source§impl Protobuf<RequestOfferSnapshot> for OfferSnapshot
impl Protobuf<RequestOfferSnapshot> for OfferSnapshot
§fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
§fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
§fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
§fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
§fn encoded_len(self) -> usize
fn encoded_len(self) -> usize
§fn encode_vec(self) -> Vec<u8> ⓘ
fn encode_vec(self) -> Vec<u8> ⓘ
Vec<u8>
.§fn decode_vec(v: &[u8]) -> Result<Self, Error>
fn decode_vec(v: &[u8]) -> Result<Self, Error>
Vec<u8>
(or equivalent).§fn encode_length_delimited_vec(self) -> Vec<u8> ⓘ
fn encode_length_delimited_vec(self) -> Vec<u8> ⓘ
Vec<u8>
Protobuf-encoded message.§fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>
fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>
Vec<u8>
or equivalent.Source§impl Protobuf<RequestOfferSnapshot> for OfferSnapshot
impl Protobuf<RequestOfferSnapshot> for OfferSnapshot
§fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
§fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
§fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
§fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
§fn encoded_len(self) -> usize
fn encoded_len(self) -> usize
§fn encode_vec(self) -> Vec<u8> ⓘ
fn encode_vec(self) -> Vec<u8> ⓘ
Vec<u8>
.§fn decode_vec(v: &[u8]) -> Result<Self, Error>
fn decode_vec(v: &[u8]) -> Result<Self, Error>
Vec<u8>
(or equivalent).§fn encode_length_delimited_vec(self) -> Vec<u8> ⓘ
fn encode_length_delimited_vec(self) -> Vec<u8> ⓘ
Vec<u8>
Protobuf-encoded message.§fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>
fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>
Vec<u8>
or equivalent.Source§impl Protobuf<RequestOfferSnapshot> for OfferSnapshot
impl Protobuf<RequestOfferSnapshot> for OfferSnapshot
§fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
§fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
§fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
§fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
§fn encoded_len(self) -> usize
fn encoded_len(self) -> usize
§fn encode_vec(self) -> Vec<u8> ⓘ
fn encode_vec(self) -> Vec<u8> ⓘ
Vec<u8>
.§fn decode_vec(v: &[u8]) -> Result<Self, Error>
fn decode_vec(v: &[u8]) -> Result<Self, Error>
Vec<u8>
(or equivalent).§fn encode_length_delimited_vec(self) -> Vec<u8> ⓘ
fn encode_length_delimited_vec(self) -> Vec<u8> ⓘ
Vec<u8>
Protobuf-encoded message.§fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>
fn decode_length_delimited_vec(v: &[u8]) -> Result<Self, Error>
Vec<u8>
or equivalent.