#[non_exhaustive]
pub struct UnvalidatedConsensus<RS> { pub consensus: Consensus<RS>, pub siggroup: SignatureGroup, pub n_authorities: Option<u16>, }
Expand description

A Microdesc consensus whose signatures have not yet been checked.

To validate this object, call set_n_authorities() on it, then call check_signature() on that result with the set of certs that you have. Make sure only to provide authority certificates representing real authorities!

Fields (Non-exhaustive)

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
consensus: Consensus<RS>

The consensus object. We don’t want to expose this until it’s validated.

siggroup: SignatureGroup

The signatures that need to be validated before we can call this consensus valid.

n_authorities: Option<u16>

The total number of authorities that we believe in. We need this information in order to validate the signatures, since it determines how many signatures we need to find valid in siggroup.

Implementations

Tell the unvalidated consensus how many authorities we believe in.

Without knowing this number, we can’t validate the signature.

Return an iterator of all the certificate IDs that we might use to validate this consensus.

Return the lifetime of this unvalidated consensus

Return true if a client who believes in exactly the provided set of authority IDs might might consider this consensus to be well-signed.

(This is the case if the consensus claims to be signed by more than half of the authorities in the list.)

Return the number of relays in this unvalidated consensus.

This function is unstable. It is only enabled if the crate was built with the experimental-api feature.

Modify the list of relays in this unvalidated consensus.

A use case for this is long-lasting custom directories. To ensure Arti can still quickly build circuits when the directory gets old, a tiny churn file can be regularly obtained, listing no longer available Tor nodes, which can then be removed from the consensus.

This function is unstable. It is only enabled if the crate was built with the experimental-api feature.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

The type of the public key object. Read more

A type that describes what keys are missing for this object.

An error type that’s returned when the object is not well-signed.

Check whether k is the right key for this object. If not, return an error describing what key would be right. Read more

Check the signature on this object

Unwrap this object without checking any signatures on it.

Unwrap this object if it’s correctly signed by a provided key.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.