pub struct Signer<D: Digest> { /* private fields */ }Expand description
Participant in the protocol can sign messages.
- If the signer has
closed_reg, then it can generate Stm certificate.- This kind of signer can only be generated out of an
Initializerand aClosedKeyRegistration. - This ensures that a
MerkleTreeroot is not computed before all participants have registered.
- This kind of signer can only be generated out of an
- If the signer does not have
closed_reg, then it is a core signer.- This kind of signer cannot participate certificate generation.
- Signature generated can be verified by a full node verifier (core verifier).
Implementations§
Source§impl<D: Clone + Digest + FixedOutput> Signer<D>
impl<D: Clone + Digest + FixedOutput> Signer<D>
Sourcepub fn set_stm_signer(
signer_index: u64,
stake: Stake,
params: Parameters,
sk: BlsSigningKey,
vk: VerificationKey,
closed_reg: ClosedKeyRegistration<D>,
) -> Signer<D>
👎Deprecated since 0.5.0: Use set_signer instead
pub fn set_stm_signer( signer_index: u64, stake: Stake, params: Parameters, sk: BlsSigningKey, vk: VerificationKey, closed_reg: ClosedKeyRegistration<D>, ) -> Signer<D>
set_signer insteadCreate a Signer for given input
Sourcepub fn set_core_signer(
signer_index: u64,
stake: Stake,
params: Parameters,
sk: BlsSigningKey,
vk: VerificationKey,
) -> Signer<D>
👎Deprecated since 0.5.0: Use set_basic_signer instead
pub fn set_core_signer( signer_index: u64, stake: Stake, params: Parameters, sk: BlsSigningKey, vk: VerificationKey, ) -> Signer<D>
set_basic_signer insteadCreate a core signer (no registration data) for given input
Sourcepub fn sign(&self, msg: &[u8]) -> Option<SingleSignature>
pub fn sign(&self, msg: &[u8]) -> Option<SingleSignature>
This function produces a signature following the description of Section 2.4.
Once the signature is produced, this function checks whether any index in [0,..,self.params.m]
wins the lottery by evaluating the dense mapping.
It records all the winning indexes in Self.indexes.
If it wins at least one lottery, it stores the signer’s merkle tree index. The proof of membership
will be handled by the aggregator.
Sourcepub fn get_verification_key(&self) -> VerificationKey
pub fn get_verification_key(&self) -> VerificationKey
Extract the verification key.
Sourcepub fn verification_key(&self) -> VerificationKey
👎Deprecated since 0.5.0: Use get_verification_key instead
pub fn verification_key(&self) -> VerificationKey
get_verification_key insteadExtract the verification key.
Sourcepub fn basic_sign(
&self,
msg: &[u8],
total_stake: Stake,
) -> Option<SingleSignature>
pub fn basic_sign( &self, msg: &[u8], total_stake: Stake, ) -> Option<SingleSignature>
A basic signature generated without closed key registration.
The basic signature can be verified by basic verifier.
Once the signature is produced, this function checks whether any index in [0,..,self.params.m]
wins the lottery by evaluating the dense mapping.
It records all the winning indexes in Self.indexes.
Sourcepub fn core_sign(
&self,
msg: &[u8],
total_stake: Stake,
) -> Option<SingleSignature>
👎Deprecated since 0.5.0: Use basic_sign instead
pub fn core_sign( &self, msg: &[u8], total_stake: Stake, ) -> Option<SingleSignature>
basic_sign insteadA basic signature generated without closed key registration.
The basic signature can be verified by basic verifier.
Once the signature is produced, this function checks whether any index in [0,..,self.params.m]
wins the lottery by evaluating the dense mapping.
It records all the winning indexes in Self.indexes.
Sourcepub fn check_lottery(
&self,
msg: &[u8],
sigma: &BlsSignature,
total_stake: Stake,
) -> Vec<u64>
pub fn check_lottery( &self, msg: &[u8], sigma: &BlsSignature, total_stake: Stake, ) -> Vec<u64>
Collects and returns the winning indices.
Sourcepub fn get_params(&self) -> Parameters
👎Deprecated since 0.5.0: Use get_parameters instead
pub fn get_params(&self) -> Parameters
get_parameters insteadGet Parameters
Sourcepub fn get_closed_reg(&self) -> Option<ClosedKeyRegistration<D>>
👎Deprecated since 0.5.0: Use get_closed_key_registration instead
pub fn get_closed_reg(&self) -> Option<ClosedKeyRegistration<D>>
get_closed_key_registration insteadGet closed key registration