#[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>
Available on crate feature dangerous-expose-struct-fields only.

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

§siggroup: SignatureGroup
Available on crate feature dangerous-expose-struct-fields only.

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

§n_authorities: Option<u16>
Available on crate feature dangerous-expose-struct-fields only.

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.)

Available on crate feature experimental-api only.

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.

Available on crate feature experimental-api only.

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
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.