From e62005a1a74bc50a31390db47bd2ee8de6aaf0ca Mon Sep 17 00:00:00 2001 From: Claudia Richoux Date: Thu, 2 Dec 2021 12:11:45 -0600 Subject: [PATCH 1/2] changes from fvm repo --- vm/actor/src/builtin/miner/mod.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/vm/actor/src/builtin/miner/mod.rs b/vm/actor/src/builtin/miner/mod.rs index 80e52ab982ac..467c5bd2289d 100644 --- a/vm/actor/src/builtin/miner/mod.rs +++ b/vm/actor/src/builtin/miner/mod.rs @@ -68,7 +68,7 @@ use crypto::DomainSeparationTag::{ use encoding::{BytesDe, Cbor}; use fil_types::{ deadlines::DeadlineInfo, AggregateSealVerifyInfo, AggregateSealVerifyProofAndInfos, - InteractiveSealRandomness, PoStProof, PoStRandomness, RegisteredSealProof, + InteractiveSealRandomness, PoStProof, PoStRandomness, RegisteredPoStProof, RegisteredSealProof, SealRandomness as SealRandom, SealVerifyInfo, SealVerifyParams, SectorID, SectorInfo, SectorNumber, SectorSize, WindowPoStVerifyInfo, MAX_SECTOR_NUMBER, RANDOMNESS_LENGTH, }; @@ -145,6 +145,7 @@ impl Actor { check_control_addresses(¶ms.control_addresses)?; check_peer_info(¶ms.peer_id, ¶ms.multi_addresses)?; + check_valid_post_proof_type(params.window_post_proof_type)?; let owner = resolve_control_address(rt, params.owner)?; let worker = resolve_worker_address(rt, params.worker)?; @@ -3938,6 +3939,18 @@ fn check_control_addresses(control_addrs: &[Address]) -> Result<(), ActorError> Ok(()) } +fn check_valid_post_proof_type(proof_type: RegisteredPoStProof) -> Result<(), ActorError> { + match proof_type { + RegisteredPoStProof::StackedDRGWindow32GiBV1 + | RegisteredPoStProof::StackedDRGWindow64GiBV1 => Ok(()), + _ => Err(actor_error!( + ErrIllegalArgument, + "proof type {:?} not allowed for new miner actors", + proof_type + )), + } +} + fn check_peer_info(peer_id: &[u8], multiaddrs: &[BytesDe]) -> Result<(), ActorError> { if peer_id.len() > MAX_PEER_ID_LENGTH { return Err(actor_error!( From 64f130d1e04e0cd0a36df68b0f321f35de9a9908 Mon Sep 17 00:00:00 2001 From: Claudia Richoux Date: Thu, 2 Dec 2021 12:36:40 -0600 Subject: [PATCH 2/2] adding changes --- vm/actor/src/builtin/miner/mod.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/vm/actor/src/builtin/miner/mod.rs b/vm/actor/src/builtin/miner/mod.rs index 467c5bd2289d..73ebd3012def 100644 --- a/vm/actor/src/builtin/miner/mod.rs +++ b/vm/actor/src/builtin/miner/mod.rs @@ -407,6 +407,22 @@ impl Actor { { let current_epoch = rt.curr_epoch(); + if params.proofs.len() != 1 { + return Err(actor_error!( + ErrIllegalArgument, + "expected exactly one proof, got {}", + params.proofs.len() + )); + } + + if check_valid_post_proof_type(params.proofs[0].post_proof).is_err() { + return Err(actor_error!( + ErrIllegalArgument, + "proof type {:?} not allowed", + params.proofs[0].post_proof + )); + } + if params.deadline >= WPOST_PERIOD_DEADLINES as usize { return Err(actor_error!( ErrIllegalArgument,