Struct safe_network::messaging::node::SignatureAggregator[][src]

pub struct SignatureAggregator { /* fields omitted */ }
Expand description

Aggregator for signature shares for arbitrary payloads.

This aggregator allows to collect BLS signature shares for some payload one by one until enough of them are collected. At that point it combines them into a full BLS signature of the given payload. It also automatically rejects invalid signature shares and expires entries that did not collect enough signature shares within a given time.

This aggregator also handles the case when the same payload is signed with a signature share corresponding to a different BLS public key. In that case, the payloads will be aggregated separately. This avoids mixing signature shares created from different curves which would otherwise lead to invalid signature to be produced even though all the shares are valid.

Implementations

Create new aggregator with default expiration.

Create new aggregator with the given expiration.

Add new share into the aggregator. If enough valid signature shares were collected, returns its KeyedSig (signature + public key). Otherwise returns error which details why the aggregation did not succeed yet.

Note: returned Error::NotEnoughShares does not indicate a failure. It simply means more shares still need to be added for that particular payload. This error could be safely ignored (it might still be useful perhaps for debugging). The other error variants, however, indicate failures and should be treated a such. See [Error] for more info.

Trait Implementations

Returns the “default value” for a type. Read more

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

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

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.