pub struct Witness {
pub witness_id: String,
/* private fields */
}Expand description
A witness that monitors a transparency log.
Stores all known tree heads and verifies consistency between successive heads. Heads that fail consistency are rejected.
Fields§
§witness_id: StringWitness identity.
Implementations§
Source§impl Witness
impl Witness
Sourcepub fn receive_head(
&mut self,
head: TreeHead,
tree: &MerkleTree,
) -> Result<(), WitnessError>
pub fn receive_head( &mut self, head: TreeHead, tree: &MerkleTree, ) -> Result<(), WitnessError>
Receive a new tree head. If the witness already knows a head
at a smaller tree size, consistency_proof must be provided
to verify the transition.
tree is the current tree state (used to brute-force verify
consistency via root recomputation).
Sourcepub fn latest_head(&self) -> Option<&TreeHead>
pub fn latest_head(&self) -> Option<&TreeHead>
Get the latest known head (largest tree_size).
Sourcepub fn known_heads(&self) -> Vec<&TreeHead>
pub fn known_heads(&self) -> Vec<&TreeHead>
Get all known heads sorted by tree_size.
Sourcepub fn head_count(&self) -> usize
pub fn head_count(&self) -> usize
Number of known heads.
Sourcepub fn gossip_to(
&self,
peer: &mut Witness,
tree_size: u64,
tree: &MerkleTree,
) -> Result<(), WitnessError>
pub fn gossip_to( &self, peer: &mut Witness, tree_size: u64, tree: &MerkleTree, ) -> Result<(), WitnessError>
Gossip a head to another witness. The peer verifies and stores the head.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Witness
impl RefUnwindSafe for Witness
impl Send for Witness
impl Sync for Witness
impl Unpin for Witness
impl UnsafeUnpin for Witness
impl UnwindSafe for Witness
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
Mutably borrows from an owned value. Read more