Skip to content

Commit 1f023de

Browse files
andresilvabkchr
andauthored
sp-core: Rename VrfOutput to VrfPreOutput (#2534)
This will make more sense after #2524 since the schnorrkel type for VRF outputs is also renamed in the latest version. Can be reviewed independently though. Can be merged after #1577 so that there is less pain for @davxy. --------- Co-authored-by: Bastian Köcher <[email protected]>
1 parent 91cbe08 commit 1f023de

File tree

19 files changed

+193
-172
lines changed

19 files changed

+193
-172
lines changed

polkadot/node/core/approval-voting/src/approval_db/v2/migration_helpers.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
use super::*;
1919
use crate::backend::Backend;
2020
use polkadot_node_primitives::approval::v1::{
21-
AssignmentCert, AssignmentCertKind, VrfOutput, VrfProof, VrfSignature, RELAY_VRF_MODULO_CONTEXT,
21+
AssignmentCert, AssignmentCertKind, VrfPreOutput, VrfProof, VrfSignature,
22+
RELAY_VRF_MODULO_CONTEXT,
2223
};
2324
use polkadot_node_subsystem_util::database::Database;
2425
use sp_application_crypto::sp_core::H256;
@@ -30,9 +31,12 @@ fn dummy_assignment_cert(kind: AssignmentCertKind) -> AssignmentCert {
3031
let mut prng = rand_core::OsRng;
3132
let keypair = schnorrkel::Keypair::generate_with(&mut prng);
3233
let (inout, proof, _) = keypair.vrf_sign(ctx.bytes(msg));
33-
let out = inout.to_output();
34+
let preout = inout.to_output();
3435

35-
AssignmentCert { kind, vrf: VrfSignature { output: VrfOutput(out), proof: VrfProof(proof) } }
36+
AssignmentCert {
37+
kind,
38+
vrf: VrfSignature { pre_output: VrfPreOutput(preout), proof: VrfProof(proof) },
39+
}
3640
}
3741

3842
fn make_block_entry_v1(

polkadot/node/core/approval-voting/src/criteria.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ use parity_scale_codec::{Decode, Encode};
2121
use polkadot_node_primitives::approval::{
2222
self as approval_types,
2323
v1::{AssignmentCert, AssignmentCertKind, DelayTranche, RelayVRFStory},
24-
v2::{AssignmentCertKindV2, AssignmentCertV2, CoreBitfield, VrfOutput, VrfProof, VrfSignature},
24+
v2::{
25+
AssignmentCertKindV2, AssignmentCertV2, CoreBitfield, VrfPreOutput, VrfProof, VrfSignature,
26+
},
2527
};
2628
use polkadot_primitives::{
2729
AssignmentId, AssignmentPair, CandidateHash, CoreIndex, GroupIndex, IndexedVec, SessionInfo,
@@ -459,7 +461,7 @@ fn compute_relay_vrf_modulo_assignments_v1(
459461
let cert = AssignmentCert {
460462
kind: AssignmentCertKind::RelayVRFModulo { sample: rvm_sample },
461463
vrf: VrfSignature {
462-
output: VrfOutput(vrf_in_out.to_output()),
464+
pre_output: VrfPreOutput(vrf_in_out.to_output()),
463465
proof: VrfProof(vrf_proof),
464466
},
465467
};
@@ -539,7 +541,7 @@ fn compute_relay_vrf_modulo_assignments_v2(
539541
core_bitfield: assignment_bitfield.clone(),
540542
},
541543
vrf: VrfSignature {
542-
output: VrfOutput(vrf_in_out.to_output()),
544+
pre_output: VrfPreOutput(vrf_in_out.to_output()),
543545
proof: VrfProof(vrf_proof),
544546
},
545547
};
@@ -574,7 +576,7 @@ fn compute_relay_vrf_delay_assignments(
574576
let cert = AssignmentCertV2 {
575577
kind: AssignmentCertKindV2::RelayVRFDelay { core_index: core },
576578
vrf: VrfSignature {
577-
output: VrfOutput(vrf_in_out.to_output()),
579+
pre_output: VrfPreOutput(vrf_in_out.to_output()),
578580
proof: VrfProof(vrf_proof),
579581
},
580582
};
@@ -689,7 +691,7 @@ pub(crate) fn check_assignment_cert(
689691
}
690692
}
691693

692-
let vrf_output = &assignment.vrf.output;
694+
let vrf_pre_output = &assignment.vrf.pre_output;
693695
let vrf_proof = &assignment.vrf.proof;
694696
let first_claimed_core_index =
695697
claimed_core_indices.first_one().expect("Checked above; qed") as u32;
@@ -704,7 +706,7 @@ pub(crate) fn check_assignment_cert(
704706
let (vrf_in_out, _) = public
705707
.vrf_verify_extra(
706708
relay_vrf_modulo_transcript_v2(relay_vrf_story),
707-
&vrf_output.0,
709+
&vrf_pre_output.0,
708710
&vrf_proof.0,
709711
assigned_cores_transcript(core_bitfield),
710712
)
@@ -753,7 +755,7 @@ pub(crate) fn check_assignment_cert(
753755
let (vrf_in_out, _) = public
754756
.vrf_verify_extra(
755757
relay_vrf_modulo_transcript_v1(relay_vrf_story, *sample),
756-
&vrf_output.0,
758+
&vrf_pre_output.0,
757759
&vrf_proof.0,
758760
assigned_core_transcript(CoreIndex(first_claimed_core_index)),
759761
)
@@ -791,7 +793,7 @@ pub(crate) fn check_assignment_cert(
791793
let (vrf_in_out, _) = public
792794
.vrf_verify(
793795
relay_vrf_delay_transcript(relay_vrf_story, *core_index),
794-
&vrf_output.0,
796+
&vrf_pre_output.0,
795797
&vrf_proof.0,
796798
)
797799
.map_err(|_| InvalidAssignment(Reason::VRFDelayOutputMismatch))?;

polkadot/node/core/approval-voting/src/tests.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::backend::V1ReadBackend;
2020
use polkadot_node_primitives::{
2121
approval::{
2222
v1::{
23-
AssignmentCert, AssignmentCertKind, DelayTranche, VrfOutput, VrfProof, VrfSignature,
23+
AssignmentCert, AssignmentCertKind, DelayTranche, VrfPreOutput, VrfProof, VrfSignature,
2424
RELAY_VRF_MODULO_CONTEXT,
2525
},
2626
v2::{AssignmentCertKindV2, AssignmentCertV2},
@@ -415,9 +415,12 @@ fn garbage_assignment_cert(kind: AssignmentCertKind) -> AssignmentCert {
415415
let mut prng = rand_core::OsRng;
416416
let keypair = schnorrkel::Keypair::generate_with(&mut prng);
417417
let (inout, proof, _) = keypair.vrf_sign(ctx.bytes(msg));
418-
let out = inout.to_output();
418+
let preout = inout.to_output();
419419

420-
AssignmentCert { kind, vrf: VrfSignature { output: VrfOutput(out), proof: VrfProof(proof) } }
420+
AssignmentCert {
421+
kind,
422+
vrf: VrfSignature { pre_output: VrfPreOutput(preout), proof: VrfProof(proof) },
423+
}
421424
}
422425

423426
fn garbage_assignment_cert_v2(kind: AssignmentCertKindV2) -> AssignmentCertV2 {
@@ -426,9 +429,12 @@ fn garbage_assignment_cert_v2(kind: AssignmentCertKindV2) -> AssignmentCertV2 {
426429
let mut prng = rand_core::OsRng;
427430
let keypair = schnorrkel::Keypair::generate_with(&mut prng);
428431
let (inout, proof, _) = keypair.vrf_sign(ctx.bytes(msg));
429-
let out = inout.to_output();
432+
let preout = inout.to_output();
430433

431-
AssignmentCertV2 { kind, vrf: VrfSignature { output: VrfOutput(out), proof: VrfProof(proof) } }
434+
AssignmentCertV2 {
435+
kind,
436+
vrf: VrfSignature { pre_output: VrfPreOutput(preout), proof: VrfProof(proof) },
437+
}
432438
}
433439

434440
fn sign_approval(

polkadot/node/network/approval-distribution/src/tests.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use polkadot_node_network_protocol::{
2525
};
2626
use polkadot_node_primitives::approval::{
2727
v1::{
28-
AssignmentCert, AssignmentCertKind, IndirectAssignmentCert, VrfOutput, VrfProof,
28+
AssignmentCert, AssignmentCertKind, IndirectAssignmentCert, VrfPreOutput, VrfProof,
2929
VrfSignature,
3030
},
3131
v2::{
@@ -298,14 +298,14 @@ fn fake_assignment_cert(block_hash: Hash, validator: ValidatorIndex) -> Indirect
298298
let mut prng = rand_core::OsRng;
299299
let keypair = schnorrkel::Keypair::generate_with(&mut prng);
300300
let (inout, proof, _) = keypair.vrf_sign(ctx.bytes(msg));
301-
let out = inout.to_output();
301+
let preout = inout.to_output();
302302

303303
IndirectAssignmentCert {
304304
block_hash,
305305
validator,
306306
cert: AssignmentCert {
307307
kind: AssignmentCertKind::RelayVRFModulo { sample: 1 },
308-
vrf: VrfSignature { output: VrfOutput(out), proof: VrfProof(proof) },
308+
vrf: VrfSignature { pre_output: VrfPreOutput(preout), proof: VrfProof(proof) },
309309
},
310310
}
311311
}
@@ -320,14 +320,14 @@ fn fake_assignment_cert_v2(
320320
let mut prng = rand_core::OsRng;
321321
let keypair = schnorrkel::Keypair::generate_with(&mut prng);
322322
let (inout, proof, _) = keypair.vrf_sign(ctx.bytes(msg));
323-
let out = inout.to_output();
323+
let preout = inout.to_output();
324324

325325
IndirectAssignmentCertV2 {
326326
block_hash,
327327
validator,
328328
cert: AssignmentCertV2 {
329329
kind: AssignmentCertKindV2::RelayVRFModuloCompact { core_bitfield },
330-
vrf: VrfSignature { output: VrfOutput(out), proof: VrfProof(proof) },
330+
vrf: VrfSignature { pre_output: VrfPreOutput(preout), proof: VrfProof(proof) },
331331
},
332332
}
333333
}

polkadot/node/primitives/src/approval.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
pub mod v1 {
2121
use sp_consensus_babe as babe_primitives;
2222
pub use sp_consensus_babe::{
23-
Randomness, Slot, VrfOutput, VrfProof, VrfSignature, VrfTranscript,
23+
Randomness, Slot, VrfPreOutput, VrfProof, VrfSignature, VrfTranscript,
2424
};
2525

2626
use parity_scale_codec::{Decode, Encode};
@@ -145,14 +145,14 @@ pub mod v1 {
145145
AuthorityOutOfBounds(usize),
146146
}
147147

148-
/// An unsafe VRF output. Provide BABE Epoch info to create a `RelayVRFStory`.
149-
pub struct UnsafeVRFOutput {
150-
vrf_output: VrfOutput,
148+
/// An unsafe VRF pre-output. Provide BABE Epoch info to create a `RelayVRFStory`.
149+
pub struct UnsafeVRFPreOutput {
150+
vrf_pre_output: VrfPreOutput,
151151
slot: Slot,
152152
authority_index: u32,
153153
}
154154

155-
impl UnsafeVRFOutput {
155+
impl UnsafeVRFPreOutput {
156156
/// Get the slot.
157157
pub fn slot(&self) -> Slot {
158158
self.slot
@@ -177,7 +177,7 @@ pub mod v1 {
177177
sp_consensus_babe::make_vrf_transcript(randomness, self.slot, epoch_index);
178178

179179
let inout = self
180-
.vrf_output
180+
.vrf_pre_output
181181
.0
182182
.attach_input_hash(&pubkey, transcript.0)
183183
.map_err(ApprovalError::SchnorrkelSignature)?;
@@ -190,16 +190,16 @@ pub mod v1 {
190190
/// This fails if either there is no BABE `PreRuntime` digest or
191191
/// the digest has type `SecondaryPlain`, which Substrate nodes do
192192
/// not produce or accept anymore.
193-
pub fn babe_unsafe_vrf_info(header: &Header) -> Option<UnsafeVRFOutput> {
193+
pub fn babe_unsafe_vrf_info(header: &Header) -> Option<UnsafeVRFPreOutput> {
194194
use babe_primitives::digests::CompatibleDigestItem;
195195

196196
for digest in &header.digest.logs {
197197
if let Some(pre) = digest.as_babe_pre_digest() {
198198
let slot = pre.slot();
199199
let authority_index = pre.authority_index();
200200

201-
return pre.vrf_signature().map(|sig| UnsafeVRFOutput {
202-
vrf_output: sig.output.clone(),
201+
return pre.vrf_signature().map(|sig| UnsafeVRFPreOutput {
202+
vrf_pre_output: sig.pre_output.clone(),
203203
slot,
204204
authority_index,
205205
})
@@ -214,7 +214,7 @@ pub mod v1 {
214214
pub mod v2 {
215215
use parity_scale_codec::{Decode, Encode};
216216
pub use sp_consensus_babe::{
217-
Randomness, Slot, VrfOutput, VrfProof, VrfSignature, VrfTranscript,
217+
Randomness, Slot, VrfPreOutput, VrfProof, VrfSignature, VrfTranscript,
218218
};
219219
use std::ops::BitOr;
220220

substrate/client/consensus/babe/src/authorship.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ fn claim_primary_slot(
249249
.make_bytes::<AUTHORING_SCORE_LENGTH>(
250250
AUTHORING_SCORE_VRF_CONTEXT,
251251
&data.as_ref(),
252-
&vrf_signature.output,
252+
&vrf_signature.pre_output,
253253
)
254254
.map(|bytes| u128::from_le_bytes(bytes) < threshold)
255255
.unwrap_or_default();

substrate/client/consensus/babe/src/tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ fn claim_vrf_check() {
580580
};
581581
let data = make_vrf_sign_data(&epoch.randomness.clone(), 0.into(), epoch.epoch_index);
582582
let sign = keystore.sr25519_vrf_sign(AuthorityId::ID, &public, &data).unwrap().unwrap();
583-
assert_eq!(pre_digest.vrf_signature.output, sign.output);
583+
assert_eq!(pre_digest.vrf_signature.pre_output, sign.pre_output);
584584

585585
// We expect a SecondaryVRF claim for slot 1
586586
let pre_digest = match claim_slot(1.into(), &epoch, &keystore).unwrap().0 {
@@ -589,7 +589,7 @@ fn claim_vrf_check() {
589589
};
590590
let data = make_vrf_sign_data(&epoch.randomness.clone(), 1.into(), epoch.epoch_index);
591591
let sign = keystore.sr25519_vrf_sign(AuthorityId::ID, &public, &data).unwrap().unwrap();
592-
assert_eq!(pre_digest.vrf_signature.output, sign.output);
592+
assert_eq!(pre_digest.vrf_signature.pre_output, sign.pre_output);
593593

594594
// Check that correct epoch index has been used if epochs are skipped (primary VRF)
595595
let slot = Slot::from(103);
@@ -601,7 +601,7 @@ fn claim_vrf_check() {
601601
let data = make_vrf_sign_data(&epoch.randomness.clone(), slot, fixed_epoch.epoch_index);
602602
let sign = keystore.sr25519_vrf_sign(AuthorityId::ID, &public, &data).unwrap().unwrap();
603603
assert_eq!(fixed_epoch.epoch_index, 11);
604-
assert_eq!(claim.vrf_signature.output, sign.output);
604+
assert_eq!(claim.vrf_signature.pre_output, sign.pre_output);
605605

606606
// Check that correct epoch index has been used if epochs are skipped (secondary VRF)
607607
let slot = Slot::from(100);
@@ -613,7 +613,7 @@ fn claim_vrf_check() {
613613
let data = make_vrf_sign_data(&epoch.randomness.clone(), slot, fixed_epoch.epoch_index);
614614
let sign = keystore.sr25519_vrf_sign(AuthorityId::ID, &public, &data).unwrap().unwrap();
615615
assert_eq!(fixed_epoch.epoch_index, 11);
616-
assert_eq!(pre_digest.vrf_signature.output, sign.output);
616+
assert_eq!(pre_digest.vrf_signature.pre_output, sign.pre_output);
617617
}
618618

619619
// Propose and import a new BABE block on top of the given parent.

substrate/client/consensus/babe/src/verification.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ fn check_primary_header<B: BlockT + Sized>(
185185
.make_bytes::<AUTHORING_SCORE_LENGTH>(
186186
AUTHORING_SCORE_VRF_CONTEXT,
187187
&data.as_ref(),
188-
&pre_digest.vrf_signature.output,
188+
&pre_digest.vrf_signature.pre_output,
189189
)
190190
.map(u128::from_le_bytes)
191191
.map_err(|_| babe_err(Error::VrfVerificationFailed))?;

substrate/client/keystore/src/local.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,18 +120,18 @@ impl LocalKeystore {
120120
Ok(sig)
121121
}
122122

123-
fn vrf_output<T: CorePair + VrfSecret>(
123+
fn vrf_pre_output<T: CorePair + VrfSecret>(
124124
&self,
125125
key_type: KeyTypeId,
126126
public: &T::Public,
127127
input: &T::VrfInput,
128-
) -> std::result::Result<Option<T::VrfOutput>, TraitError> {
129-
let preout = self
128+
) -> std::result::Result<Option<T::VrfPreOutput>, TraitError> {
129+
let pre_output = self
130130
.0
131131
.read()
132132
.key_pair_by_type::<T>(public, key_type)?
133-
.map(|pair| pair.vrf_output(input));
134-
Ok(preout)
133+
.map(|pair| pair.vrf_pre_output(input));
134+
Ok(pre_output)
135135
}
136136
}
137137

@@ -188,13 +188,13 @@ impl Keystore for LocalKeystore {
188188
self.vrf_sign::<sr25519::Pair>(key_type, public, data)
189189
}
190190

191-
fn sr25519_vrf_output(
191+
fn sr25519_vrf_pre_output(
192192
&self,
193193
key_type: KeyTypeId,
194194
public: &sr25519::Public,
195195
input: &sr25519::vrf::VrfInput,
196-
) -> std::result::Result<Option<sr25519::vrf::VrfOutput>, TraitError> {
197-
self.vrf_output::<sr25519::Pair>(key_type, public, input)
196+
) -> std::result::Result<Option<sr25519::vrf::VrfPreOutput>, TraitError> {
197+
self.vrf_pre_output::<sr25519::Pair>(key_type, public, input)
198198
}
199199

200200
fn ed25519_public_keys(&self, key_type: KeyTypeId) -> Vec<ed25519::Public> {
@@ -293,13 +293,13 @@ impl Keystore for LocalKeystore {
293293
self.vrf_sign::<bandersnatch::Pair>(key_type, public, data)
294294
}
295295

296-
fn bandersnatch_vrf_output(
296+
fn bandersnatch_vrf_pre_output(
297297
&self,
298298
key_type: KeyTypeId,
299299
public: &bandersnatch::Public,
300300
input: &bandersnatch::vrf::VrfInput,
301-
) -> std::result::Result<Option<bandersnatch::vrf::VrfOutput>, TraitError> {
302-
self.vrf_output::<bandersnatch::Pair>(key_type, public, input)
301+
) -> std::result::Result<Option<bandersnatch::vrf::VrfPreOutput>, TraitError> {
302+
self.vrf_pre_output::<bandersnatch::Pair>(key_type, public, input)
303303
}
304304

305305
fn bandersnatch_ring_vrf_sign(

substrate/frame/babe/src/lib.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,11 @@ pub mod pallet {
384384
});
385385

386386
public
387-
.make_bytes(RANDOMNESS_VRF_CONTEXT, &transcript, &signature.output)
387+
.make_bytes(
388+
RANDOMNESS_VRF_CONTEXT,
389+
&transcript,
390+
&signature.pre_output,
391+
)
388392
.ok()
389393
});
390394

0 commit comments

Comments
 (0)