Merge branch 'validator_induction' into genesis
This commit is contained in:
commit
afc219c26b
@ -18,7 +18,3 @@ pub struct ValidatorRegistration {
|
|||||||
pub randao_commitment: Hash256,
|
pub randao_commitment: Hash256,
|
||||||
pub proof_of_possession: Signature,
|
pub proof_of_possession: Signature,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ValidatorRegistration {
|
|
||||||
pub fn random()
|
|
||||||
}
|
|
||||||
|
@ -5,3 +5,4 @@ authors = ["Paul Hauner <paul@paulhauner.com>"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bls-aggregates = { git = "https://github.com/sigp/signature-schemes" }
|
bls-aggregates = { git = "https://github.com/sigp/signature-schemes" }
|
||||||
|
hashing = { path = "../hashing" }
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
extern crate bls_aggregates;
|
extern crate bls_aggregates;
|
||||||
|
extern crate hashing;
|
||||||
|
|
||||||
pub use self::bls_aggregates::AggregateSignature;
|
pub use self::bls_aggregates::AggregateSignature;
|
||||||
pub use self::bls_aggregates::AggregatePublicKey;
|
pub use self::bls_aggregates::AggregatePublicKey;
|
||||||
@ -8,3 +9,21 @@ pub use self::bls_aggregates::PublicKey;
|
|||||||
pub use self::bls_aggregates::SecretKey;
|
pub use self::bls_aggregates::SecretKey;
|
||||||
|
|
||||||
pub const BLS_AGG_SIG_BYTE_SIZE: usize = 97;
|
pub const BLS_AGG_SIG_BYTE_SIZE: usize = 97;
|
||||||
|
|
||||||
|
use hashing::proof_of_possession_hash;
|
||||||
|
|
||||||
|
/// For some signature and public key, ensure that the signature message was the public key and it
|
||||||
|
/// was signed by the secret key that corresponds to that public key.
|
||||||
|
pub fn verify_proof_of_possession(sig: &Signature, pubkey: &PublicKey)
|
||||||
|
-> bool
|
||||||
|
{
|
||||||
|
let hash = proof_of_possession_hash(&pubkey.as_bytes());
|
||||||
|
sig.verify_hashed(&hash, &pubkey)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn create_proof_of_possession(keypair: &Keypair)
|
||||||
|
-> Signature
|
||||||
|
{
|
||||||
|
let hash = proof_of_possession_hash(&keypair.pk.as_bytes());
|
||||||
|
Signature::new_hashed(&hash, &keypair.sk)
|
||||||
|
}
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
|
use bls::{
|
||||||
|
verify_proof_of_possession,
|
||||||
|
};
|
||||||
use types::{
|
use types::{
|
||||||
ValidatorRecord,
|
ValidatorRecord,
|
||||||
ValidatorStatus,
|
ValidatorStatus,
|
||||||
ValidatorRegistration,
|
ValidatorRegistration,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::proof_of_possession::verify_proof_of_possession;
|
|
||||||
|
|
||||||
/// The size of a validators deposit in GWei.
|
/// The size of a validators deposit in GWei.
|
||||||
pub const DEPOSIT_GWEI: u64 = 32_000_000_000;
|
pub const DEPOSIT_GWEI: u64 = 32_000_000_000;
|
||||||
|
|
||||||
|
@ -3,13 +3,8 @@ extern crate hashing;
|
|||||||
extern crate types;
|
extern crate types;
|
||||||
|
|
||||||
mod inductor;
|
mod inductor;
|
||||||
mod proof_of_possession;
|
|
||||||
|
|
||||||
pub use inductor::{
|
pub use inductor::{
|
||||||
ValidatorInductor,
|
ValidatorInductor,
|
||||||
ValidatorInductionError,
|
ValidatorInductionError,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub use proof_of_possession::{
|
|
||||||
create_proof_of_possession,
|
|
||||||
};
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
use bls::{
|
|
||||||
Keypair,
|
|
||||||
PublicKey,
|
|
||||||
Signature,
|
|
||||||
};
|
|
||||||
use hashing::proof_of_possession_hash;
|
|
||||||
|
|
||||||
/// For some signature and public key, ensure that the signature message was the public key and it
|
|
||||||
/// was signed by the secret key that corresponds to that public key.
|
|
||||||
pub fn verify_proof_of_possession(sig: &Signature, pubkey: &PublicKey)
|
|
||||||
-> bool
|
|
||||||
{
|
|
||||||
let hash = proof_of_possession_hash(&pubkey.as_bytes());
|
|
||||||
sig.verify_hashed(&hash, &pubkey)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn create_proof_of_possession(keypair: &Keypair)
|
|
||||||
-> Signature
|
|
||||||
{
|
|
||||||
let hash = proof_of_possession_hash(&keypair.pk.as_bytes());
|
|
||||||
Signature::new_hashed(&hash, &keypair.sk)
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user