Skip to content

Commit c063fa5

Browse files
authored
caller to provide challenge count to PoSt ops
he number of challenges for a given miner is a function of the size of their proving set - but we don't know what that function is. It may be a per-miner value or it may be a network-wide parameter. Either way, it's in a state of flux.
1 parent 00a1595 commit c063fa5

File tree

4 files changed

+20
-10
lines changed

4 files changed

+20
-10
lines changed

fil-proofs-tooling/src/bin/benchy/election_post.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,16 @@ pub fn run(sector_size: usize) -> Result<(), failure::Error> {
139139
// Measure PoSt generation and verification.
140140
let post_config = PoStConfig(SectorSize(sector_size as u64));
141141

142+
let challenge_count = 1u64;
143+
142144
let gen_candidates_measurement = measure(|| {
143-
generate_candidates(post_config, &CHALLENGE_SEED, &priv_replica_info, PROVER_ID)
145+
generate_candidates(
146+
post_config,
147+
&CHALLENGE_SEED,
148+
challenge_count,
149+
&priv_replica_info,
150+
PROVER_ID,
151+
)
144152
})
145153
.expect("failed to generate post candidates");
146154

@@ -167,6 +175,7 @@ pub fn run(sector_size: usize) -> Result<(), failure::Error> {
167175
verify_post(
168176
post_config,
169177
&CHALLENGE_SEED,
178+
challenge_count,
170179
proof,
171180
&pub_replica_info,
172181
&candidates

filecoin-proofs/src/api/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ mod tests {
369369
let result = verify_post(
370370
PoStConfig(SectorSize(SECTOR_SIZE_ONE_KIB)),
371371
&[0; 32],
372+
1,
372373
&[vec![0u8; SINGLE_PARTITION_PROOF_LEN]][..],
373374
&replicas,
374375
&[winner][..],

filecoin-proofs/src/api/post.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ impl PublicReplicaInfo {
149149
pub fn generate_candidates(
150150
post_config: PoStConfig,
151151
randomness: &ChallengeSeed,
152+
challenge_count: u64,
152153
replicas: &BTreeMap<SectorId, PrivateReplicaInfo>,
153154
prover_id: ProverId,
154155
) -> error::Result<Vec<Candidate>> {
@@ -167,7 +168,8 @@ pub fn generate_candidates(
167168

168169
let sectors = replicas.keys().copied().collect();
169170

170-
let challenged_sectors = election_post::generate_sector_challenges(randomness, &sectors)?;
171+
let challenged_sectors =
172+
election_post::generate_sector_challenges(randomness, challenge_count, &sectors)?;
171173

172174
// Match the replicas to the challenges, as these are the only ones required.
173175
let challenged_replicas: Vec<_> = challenged_sectors
@@ -285,6 +287,7 @@ pub fn generate_post(
285287
pub fn verify_post(
286288
post_config: PoStConfig,
287289
randomness: &ChallengeSeed,
290+
challenge_count: u64,
288291
proofs: &[Vec<u8>],
289292
replicas: &BTreeMap<SectorId, PublicReplicaInfo>,
290293
winners: &[Candidate],
@@ -320,7 +323,7 @@ pub fn verify_post(
320323
let comm_r = replica.safe_comm_r()?;
321324

322325
if !election_post::is_valid_sector_challenge_index(
323-
sector_count as usize,
326+
challenge_count,
324327
winner.sector_challenge_index,
325328
) {
326329
return Ok(false);

storage-proofs/src/election_post.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ use crate::util::NODE_SIZE;
2222

2323
pub const POST_CHALLENGE_COUNT: usize = 8;
2424
pub const POST_CHALLENGED_NODES: usize = 16;
25-
pub const CHALLENGE_COUNT_DENOMINATOR: f64 = 25.;
2625

2726
#[derive(Debug, Clone)]
2827
pub struct SetupParams {
@@ -218,18 +217,16 @@ pub fn finalize_ticket(partial_ticket: &Fr) -> [u8; 32] {
218217
ticket
219218
}
220219

221-
pub fn is_valid_sector_challenge_index(sector_count: usize, index: u64) -> bool {
222-
let max = (sector_count as f64 / CHALLENGE_COUNT_DENOMINATOR).ceil() as u64;
223-
index < max
220+
pub fn is_valid_sector_challenge_index(challenge_count: u64, index: u64) -> bool {
221+
index < challenge_count
224222
}
225223

226224
pub fn generate_sector_challenges(
227225
randomness: &[u8; 32],
226+
challenge_count: u64,
228227
sectors: &OrderedSectorSet,
229228
) -> Result<Vec<SectorId>> {
230-
let challenge_count = (sectors.len() as f64 / CHALLENGE_COUNT_DENOMINATOR).ceil() as usize;
231-
232-
let mut challenges = Vec::with_capacity(challenge_count);
229+
let mut challenges = Vec::with_capacity(challenge_count as usize);
233230

234231
for n in 0..challenge_count as usize {
235232
let sector = generate_sector_challenge(randomness, n, sectors)?;

0 commit comments

Comments
 (0)