pub struct Checkpoint {
pub seq: u64,
pub chain_tip: String,
pub created_at: String,
pub signature: String,
}Expand description
A signed commitment to the chain tip at a point in time. Periodically
emitted and anchored to an independent, append-only sink (a separate
database, a WORM store, or an RFC 3161 timestamp) so that a later attempt to
rewrite or truncate the local chain is detectable: the anchored
(seq, chain_tip) can no longer be reproduced from the shortened chain.
This is the Certificate-Transparency “signed checkpoint” idiom. The
signature is Ed25519 over the canonical (seq, chain_tip, created_at), so
an auditor verifies it with only the public key.
A Checkpoint value carries no validity guarantee on its own: validity is
established solely by verify_checkpoints under the public key. A
checkpoint loaded from a sink is untrusted input until verified.
Fields§
§seq: u64seq of the chain tip this checkpoint commits to (the last row at
emit time).
chain_tip: Stringchain_hash of the row at seq (the committed chain tip).
created_at: StringRFC 3339 timestamp when the checkpoint was signed.
signature: StringHex Ed25519 signature over canonical(seq, chain_tip, created_at).
Trait Implementations§
Source§impl Clone for Checkpoint
impl Clone for Checkpoint
Source§fn clone(&self) -> Checkpoint
fn clone(&self) -> Checkpoint
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Checkpoint
impl Debug for Checkpoint
impl Eq for Checkpoint
Source§impl PartialEq for Checkpoint
impl PartialEq for Checkpoint
impl StructuralPartialEq for Checkpoint
Auto Trait Implementations§
impl Freeze for Checkpoint
impl RefUnwindSafe for Checkpoint
impl Send for Checkpoint
impl Sync for Checkpoint
impl Unpin for Checkpoint
impl UnsafeUnpin for Checkpoint
impl UnwindSafe for Checkpoint
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more