diff --git a/.config/forest.dic b/.config/forest.dic index 5a785a8c910..e1a0d3f8532 100644 --- a/.config/forest.dic +++ b/.config/forest.dic @@ -13,6 +13,7 @@ BLAKE2b blockchain/M blockstore/SM BLS +calibnet callee canonicalization CAR/SM @@ -31,6 +32,7 @@ cron crypto daemon daemonize +devnet DB/S deserialize/D destructuring diff --git a/CHANGELOG.md b/CHANGELOG.md index b7306d4f878..6f2575bbefa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -105,6 +105,9 @@ - [#4297](https://github.com/ChainSafe/forest/pull/4297) Fixed double decoding of message in the `Filecoin.WalletSign` RPC method. +- [#4314](https://github.com/ChainSafe/forest/issues/4314) Fixed incorrect + allowed proof types for all networks. + - [#4328](https://github.com/ChainSafe/forest/pull/4328) Fix issues when connecting to a network with fewer than 5 peers. diff --git a/Cargo.lock b/Cargo.lock index 9183413e389..60f091ea6f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2715,9 +2715,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "fil_actor_account_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5803630d67ee3012ae7bb0229c7cb19e967f63e06eb7b88b5ec3c85714112f6" +checksum = "50f6afd00148be75ae9364d00f4bf0f3c4a489d3142b2b6241c05c41b68313f5" dependencies = [ "frc42_macros", "fvm_ipld_encoding", @@ -2731,9 +2731,9 @@ dependencies = [ [[package]] name = "fil_actor_cron_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8012beeb137dbe7176894fb8e3d925c61e02b81ff1ca94d9903fc2752f3dcb8" +checksum = "a803ca89f22b08ed9cda3ec0232ad648227d86a6843ab3bebbf89a8f55346754" dependencies = [ "fvm_ipld_encoding", "fvm_shared 2.6.0", @@ -2746,9 +2746,9 @@ dependencies = [ [[package]] name = "fil_actor_datacap_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d969aa3b996f2dbf0726f98f31d53085d6b9dd84c1303be575ac5134a31f2452" +checksum = "df5948b4f7db2bac5db0ad5fddc696d17f0beed7cc13f9401dab050402c87c65" dependencies = [ "fil_actors_shared", "frc42_macros", @@ -2766,9 +2766,9 @@ dependencies = [ [[package]] name = "fil_actor_evm_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c09e2e2395ea39c56af7eaa8ec99e73e704ace4579a561fb7b519628215c2714" +checksum = "f7100661c79e1fbcd89bb95f400ff996ca03bd11e6a9d0f1ba130dd5d441133f" dependencies = [ "cid", "fil_actors_shared", @@ -2786,9 +2786,9 @@ dependencies = [ [[package]] name = "fil_actor_init_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc06ecbbae8cf326873f4c3d999994a0381def4703d96ddcf5d493e844f0eb0" +checksum = "795698d82f43505ddcbac10f036f582d79fb773afc34cc285f818cbaeefc45a8" dependencies = [ "anyhow", "cid", @@ -2807,9 +2807,9 @@ dependencies = [ [[package]] name = "fil_actor_interface" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c7c41d74a43debac38dda4ddafac9e0663d34f774d0f41aa8456c63a95ab0a" +checksum = "fb722974e516f60ef9e5c59d3893d13d252f84a7770c0258aa4a59f38b0f97a5" dependencies = [ "anyhow", "cid", @@ -2845,9 +2845,9 @@ dependencies = [ [[package]] name = "fil_actor_market_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88de192c6fbdcd9f059e974f71473615885b9576f9e3e8cfdb791732332d9b9d" +checksum = "4ac021874f4dd086dff52199d42cece3328d1950cd4be07f1941865f3fedf7fa" dependencies = [ "anyhow", "cid", @@ -2870,9 +2870,9 @@ dependencies = [ [[package]] name = "fil_actor_miner_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7ab05b0429df9a462243f9d36376d9e27772e3e0dbbdaa070579bc2256fad8" +checksum = "dd937037459b6f6203d272515c28d458597d79237c88dc0c660d2bf644e4931b" dependencies = [ "anyhow", "bitflags 2.5.0", @@ -2900,9 +2900,9 @@ dependencies = [ [[package]] name = "fil_actor_multisig_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4c3a54cc18248e48ed16c9de4e7ec2c3672e31474858602010e4a4d07ec182" +checksum = "e66a65e101320fb5e575e5e799f8623ae6e09e0775355a115b91ada0732d767e" dependencies = [ "anyhow", "cid", @@ -2923,9 +2923,9 @@ dependencies = [ [[package]] name = "fil_actor_power_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f01ddd75e03016d0521af6755712926fec1b35efe929d00dea3e4548ed675fac" +checksum = "7bfed9886b2e7ffbb6aca60170f53f57b2a3857c95e8468a1d0f4911077512b5" dependencies = [ "anyhow", "cid", @@ -2946,9 +2946,9 @@ dependencies = [ [[package]] name = "fil_actor_reward_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e09508056274bcdf28a11842bb42979faf394db1c22d77f974c3d1a57e0da8" +checksum = "213fcfaa48ad8a10921349a95118d12e33bac24331dfe337bf6cf88f736d0a2f" dependencies = [ "fil_actor_miner_state", "fvm_ipld_encoding", @@ -2963,9 +2963,9 @@ dependencies = [ [[package]] name = "fil_actor_system_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473df3a71395b0e52f5e4203276ce04f7b3b94387208a77d754839c7795f4080" +checksum = "08d8180a03589eb94b7513ef7c09c9a789b6a40b2b5316ce4901802188853855" dependencies = [ "cid", "fil_actors_shared", @@ -2980,9 +2980,9 @@ dependencies = [ [[package]] name = "fil_actor_verifreg_state" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a40c2401a951ced412215b7e8e3ab4cbc9e64a64c8964c584eb4a66018a1d35" +checksum = "da48d5e792a10606fdec4b232aa1faeb91483b4cc871a1e07f12e319f7f4a269" dependencies = [ "anyhow", "cid", @@ -3000,9 +3000,9 @@ dependencies = [ [[package]] name = "fil_actors_shared" -version = "11.2.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1aeab0e86dc983285a033518b3f2d6b48a49395192f802c32bd66d71cb19212" +checksum = "9fd08132201fd4f9fa77a79d576dfc18ed81286e319d3da7101025970ac28981" dependencies = [ "anyhow", "cid", diff --git a/Cargo.toml b/Cargo.toml index 9608a443b8a..15131b2b1af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,18 +46,18 @@ dialoguer = "0.11" digest = "0.10" directories = "5" ethereum-types = "0.14" -fil_actor_account_state = { version = "11.2.0" } -fil_actor_cron_state = { version = "11.2.0" } -fil_actor_datacap_state = { version = "11.2.0" } -fil_actor_init_state = { version = "11.2.0" } -fil_actor_interface = { version = "11.2.0" } -fil_actor_market_state = { version = "11.2.0" } -fil_actor_miner_state = { version = "11.2.0" } -fil_actor_power_state = { version = "11.2.0" } -fil_actor_reward_state = { version = "11.2.0" } -fil_actor_system_state = { version = "11.2.0" } -fil_actor_verifreg_state = { version = "11.2.0" } -fil_actors_shared = { version = "11.2.0", features = ["json"] } +fil_actor_account_state = { version = "12.0.0" } +fil_actor_cron_state = { version = "12.0.0" } +fil_actor_datacap_state = { version = "12.0.0" } +fil_actor_init_state = { version = "12.0.0" } +fil_actor_interface = { version = "12.0.0" } +fil_actor_market_state = { version = "12.0.0" } +fil_actor_miner_state = { version = "12.0.0" } +fil_actor_power_state = { version = "12.0.0" } +fil_actor_reward_state = { version = "12.0.0" } +fil_actor_system_state = { version = "12.0.0" } +fil_actor_verifreg_state = { version = "12.0.0" } +fil_actors_shared = { version = "12.0.0", features = ["json"] } filecoin-proofs-api = { version = "16.0", default-features = false } flume = "0.11" frc46_token = "10" diff --git a/src/networks/butterflynet/mod.rs b/src/networks/butterflynet/mod.rs index c7cbd3e5f62..8d7282a7955 100644 --- a/src/networks/butterflynet/mod.rs +++ b/src/networks/butterflynet/mod.rs @@ -137,7 +137,7 @@ macro_rules! make_butterfly_policy { use $crate::networks::butterflynet::*; use $crate::shim::sector::{RegisteredPoStProofV3, RegisteredSealProofV3}; - let mut policy = fil_actors_shared::v10::runtime::Policy::mainnet(); + let mut policy = fil_actors_shared::v10::runtime::Policy::default(); policy.minimum_consensus_power = MINIMUM_CONSENSUS_POWER.into(); policy.minimum_verified_allocation_size = MINIMUM_VERIED_ALLOCATION.into(); policy.pre_commit_challenge_delay = PRE_COMMIT_CHALLENGE_DELAY; @@ -162,18 +162,21 @@ macro_rules! make_butterfly_policy { use $crate::networks::butterflynet::*; use $crate::shim::sector::{RegisteredPoStProofV3, RegisteredSealProofV3}; - let mut policy = fil_actors_shared::$version::runtime::Policy::mainnet(); + let mut policy = fil_actors_shared::$version::runtime::Policy::default(); policy.minimum_consensus_power = MINIMUM_CONSENSUS_POWER.into(); policy.minimum_verified_allocation_size = MINIMUM_VERIED_ALLOCATION.into(); policy.pre_commit_challenge_delay = PRE_COMMIT_CHALLENGE_DELAY; - let mut proofs = fil_actors_shared::$version::runtime::ProofSet::default_seal_proofs(); - proofs.insert($crate::shim::sector::RegisteredSealProofV3::StackedDRG512MiBV1); - proofs.insert(RegisteredSealProofV3::StackedDRG32GiBV1); - proofs.insert(RegisteredSealProofV3::StackedDRG64GiBV1); + let mut proofs = fil_actors_shared::$version::runtime::ProofSet::default(); + proofs.insert(RegisteredSealProofV3::StackedDRG512MiBV1P1); + proofs.insert(RegisteredSealProofV3::StackedDRG32GiBV1P1); + proofs.insert(RegisteredSealProofV3::StackedDRG64GiBV1P1); + proofs.insert(RegisteredSealProofV3::StackedDRG512MiBV1P1_Feat_SyntheticPoRep); + proofs.insert(RegisteredSealProofV3::StackedDRG32GiBV1P1_Feat_SyntheticPoRep); + proofs.insert(RegisteredSealProofV3::StackedDRG64GiBV1P1_Feat_SyntheticPoRep); policy.valid_pre_commit_proof_type = proofs; - let mut proofs = fil_actors_shared::$version::runtime::ProofSet::default_post_proofs(); + let mut proofs = fil_actors_shared::$version::runtime::ProofSet::default(); proofs.insert(RegisteredPoStProofV3::StackedDRGWindow512MiBV1); proofs.insert(RegisteredPoStProofV3::StackedDRGWindow32GiBV1); proofs.insert(RegisteredPoStProofV3::StackedDRGWindow64GiBV1); diff --git a/src/networks/calibnet/mod.rs b/src/networks/calibnet/mod.rs index 042a4dff6a0..d4a4cef72f4 100644 --- a/src/networks/calibnet/mod.rs +++ b/src/networks/calibnet/mod.rs @@ -120,6 +120,17 @@ pub(super) static DRAND_SCHEDULE: Lazy<[DrandPoint<'static>; 2]> = Lazy::new(|| ] }); +/// Creates a new calibnet policy with the given version. +#[macro_export] +macro_rules! make_calibnet_policy { + ($version:tt) => { + fil_actors_shared::$version::runtime::Policy { + minimum_consensus_power: (32i64 << 30).into(), + ..Default::default() + } + }; +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/networks/devnet/mod.rs b/src/networks/devnet/mod.rs index 7375cd6b5cd..b83a32166b3 100644 --- a/src/networks/devnet/mod.rs +++ b/src/networks/devnet/mod.rs @@ -162,3 +162,55 @@ pub(super) static DRAND_SCHEDULE: Lazy<[DrandPoint<'static>; 2]> = Lazy::new(|| }, ] }); + +/// Creates a new devnet policy with the given version. +/// Works with `v10` onward. +#[macro_export] +macro_rules! make_devnet_policy { + (v11) => { + fil_actors_shared::v11::runtime::Policy { + minimum_consensus_power: 2040.into(), + minimum_verified_allocation_size: 256.into(), + pre_commit_challenge_delay: 10, + valid_pre_commit_proof_type: { + use $crate::shim::sector::RegisteredSealProofV3; + let mut proofs = fil_actors_shared::v11::runtime::ProofSet::default(); + proofs.insert(RegisteredSealProofV3::StackedDRG2KiBV1P1); + proofs.insert(RegisteredSealProofV3::StackedDRG8MiBV1P1); + proofs + }, + valid_post_proof_type: { + use $crate::shim::sector::RegisteredPoStProofV3; + let mut proofs = fil_actors_shared::v11::runtime::ProofSet::default(); + proofs.insert(RegisteredPoStProofV3::StackedDRGWindow2KiBV1); + proofs.insert(RegisteredPoStProofV3::StackedDRGWindow2KiBV1P1); + proofs.insert(RegisteredPoStProofV3::StackedDRGWindow8MiBV1); + proofs.insert(RegisteredPoStProofV3::StackedDRGWindow8MiBV1P1); + proofs + }, + ..Default::default() + } + }; + ($version:tt) => { + fil_actors_shared::$version::runtime::Policy { + minimum_consensus_power: 2040.into(), + minimum_verified_allocation_size: 256.into(), + pre_commit_challenge_delay: 10, + valid_pre_commit_proof_type: { + let mut proofs = fil_actors_shared::$version::runtime::ProofSet::default(); + proofs.insert(RegisteredSealProofV3::StackedDRG2KiBV1P1); + proofs.insert(RegisteredSealProofV3::StackedDRG2KiBV1P1_Feat_SyntheticPoRep); + proofs.insert(RegisteredSealProofV3::StackedDRG8MiBV1P1); + proofs.insert(RegisteredSealProofV3::StackedDRG8MiBV1P1_Feat_SyntheticPoRep); + proofs + }, + valid_post_proof_type: { + let mut proofs = fil_actors_shared::$version::runtime::ProofSet::default(); + proofs.insert(RegisteredPoStProofV3::StackedDRGWindow2KiBV1P1); + proofs.insert(RegisteredPoStProofV3::StackedDRGWindow8MiBV1P1); + proofs + }, + ..Default::default() + } + }; +} diff --git a/src/networks/mainnet/mod.rs b/src/networks/mainnet/mod.rs index af5f9eeea49..630cf42d22b 100644 --- a/src/networks/mainnet/mod.rs +++ b/src/networks/mainnet/mod.rs @@ -113,6 +113,14 @@ pub(super) static DRAND_SCHEDULE: Lazy<[DrandPoint<'static>; 3]> = Lazy::new(|| ] }); +/// Creates a new mainnet policy with the given version. +#[macro_export] +macro_rules! make_mainnet_policy { + ($version:tt) => { + fil_actors_shared::$version::runtime::Policy::default() + }; +} + #[cfg(test)] mod tests { use super::*; diff --git a/src/networks/mod.rs b/src/networks/mod.rs index 928b8500f6e..4569924e19b 100644 --- a/src/networks/mod.rs +++ b/src/networks/mod.rs @@ -5,7 +5,7 @@ use std::{fmt::Display, str::FromStr}; use ahash::HashMap; use cid::Cid; -use fil_actors_shared::v10::runtime::Policy; +use fil_actors_shared::v13::runtime::Policy; use itertools::Itertools; use libp2p::Multiaddr; use once_cell::sync::Lazy; @@ -15,10 +15,10 @@ use tracing::warn; use crate::beacon::{BeaconPoint, BeaconSchedule, DrandBeacon, DrandConfig}; use crate::db::SettingsStore; -use crate::make_butterfly_policy; use crate::shim::clock::{ChainEpoch, EPOCH_DURATION_SECONDS}; use crate::shim::sector::{RegisteredPoStProofV3, RegisteredSealProofV3}; use crate::shim::version::NetworkVersion; +use crate::{make_butterfly_policy, make_calibnet_policy, make_devnet_policy, make_mainnet_policy}; mod actors_bundle; pub use actors_bundle::{generate_actor_bundle, ActorBundleInfo, ACTOR_BUNDLES}; @@ -211,8 +211,7 @@ pub struct ChainConfig { pub propagation_delay_secs: u32, pub genesis_network: NetworkVersion, pub height_infos: HashMap, - #[cfg_attr(test, arbitrary(gen(|_g| Policy::mainnet())))] - #[serde(default = "default_policy")] + #[cfg_attr(test, arbitrary(gen(|_g| Policy::default())))] pub policy: Policy, pub eth_chain_id: u32, pub breeze_gas_tamping_duration: i64, @@ -229,7 +228,7 @@ impl ChainConfig { propagation_delay_secs: 10, genesis_network: GENESIS_NETWORK_VERSION, height_infos: HEIGHT_INFOS.clone(), - policy: Policy::mainnet(), + policy: make_mainnet_policy!(v13), eth_chain_id: ETH_CHAIN_ID as u32, breeze_gas_tamping_duration: BREEZE_GAS_TAMPING_DURATION, } @@ -245,7 +244,7 @@ impl ChainConfig { propagation_delay_secs: 10, genesis_network: GENESIS_NETWORK_VERSION, height_infos: HEIGHT_INFOS.clone(), - policy: Policy::calibnet(), + policy: make_calibnet_policy!(v13), eth_chain_id: ETH_CHAIN_ID as u32, breeze_gas_tamping_duration: BREEZE_GAS_TAMPING_DURATION, } @@ -253,24 +252,6 @@ impl ChainConfig { pub fn devnet() -> Self { use devnet::*; - let mut policy = Policy::mainnet(); - policy.minimum_consensus_power = 2048.into(); - policy.minimum_verified_allocation_size = 256.into(); - policy.pre_commit_challenge_delay = 10; - - #[allow(clippy::disallowed_types)] - let allowed_proof_types = std::collections::HashSet::from_iter(vec![ - RegisteredSealProofV3::StackedDRG2KiBV1, - RegisteredSealProofV3::StackedDRG8MiBV1, - ]); - policy.valid_pre_commit_proof_type = allowed_proof_types; - #[allow(clippy::disallowed_types)] - let allowed_proof_types = std::collections::HashSet::from_iter(vec![ - RegisteredPoStProofV3::StackedDRGWindow2KiBV1, - RegisteredPoStProofV3::StackedDRGWindow8MiBV1, - ]); - policy.valid_post_proof_type = allowed_proof_types; - Self { network: NetworkChain::Devnet("devnet".to_string()), genesis_cid: None, @@ -279,7 +260,7 @@ impl ChainConfig { propagation_delay_secs: 1, genesis_network: *GENESIS_NETWORK_VERSION, height_infos: HEIGHT_INFOS.clone(), - policy, + policy: make_devnet_policy!(v13), eth_chain_id: ETH_CHAIN_ID as u32, breeze_gas_tamping_duration: BREEZE_GAS_TAMPING_DURATION, } @@ -296,7 +277,7 @@ impl ChainConfig { propagation_delay_secs: 6, genesis_network: GENESIS_NETWORK_VERSION, height_infos: HEIGHT_INFOS.clone(), - policy: make_butterfly_policy!(v10), + policy: make_butterfly_policy!(v13), eth_chain_id: ETH_CHAIN_ID as u32, breeze_gas_tamping_duration: BREEZE_GAS_TAMPING_DURATION, } @@ -392,12 +373,6 @@ impl Default for ChainConfig { } } -/// Dummy default. Will be overwritten later. -// Wish we could get rid of this -fn default_policy() -> Policy { - Policy::mainnet() -} - pub(crate) fn parse_bootstrap_peers(bootstrap_peer_list: &str) -> Vec { bootstrap_peer_list .split('\n') diff --git a/src/state_manager/mod.rs b/src/state_manager/mod.rs index 30686e7c4eb..bca9262f1ea 100644 --- a/src/state_manager/mod.rs +++ b/src/state_manager/mod.rs @@ -52,8 +52,8 @@ use fil_actor_interface::*; use fil_actor_verifreg_state::v12::DataCap; use fil_actors_shared::fvm_ipld_amt::Amtv0 as Amt; use fil_actors_shared::fvm_ipld_bitfield::BitField; -use fil_actors_shared::v10::runtime::Policy; use fil_actors_shared::v12::runtime::DomainSeparationTag; +use fil_actors_shared::v13::runtime::Policy; use futures::{channel::oneshot, select, FutureExt}; use fvm_ipld_blockstore::Blockstore; use fvm_ipld_encoding::to_vec; diff --git a/src/state_migration/nv17/miner.rs b/src/state_migration/nv17/miner.rs index a2e06ef1aef..56bb583bc65 100644 --- a/src/state_migration/nv17/miner.rs +++ b/src/state_migration/nv17/miner.rs @@ -9,6 +9,7 @@ use std::sync::Arc; use crate::networks::NetworkChain; use crate::shim::{address::Address, piece::PieceInfo}; use crate::utils::db::CborStoreExt; +use crate::{make_calibnet_policy, make_mainnet_policy}; use ahash::HashMap; use anyhow::Context as _; use cid::{multibase::Base, Cid}; @@ -48,8 +49,8 @@ where let empty_deadline_v8_cid = store.put_cbor_default(&empty_deadline_v8)?; let policy = match chain { - NetworkChain::Mainnet => fil_actors_shared::v8::runtime::Policy::mainnet(), - NetworkChain::Calibnet => fil_actors_shared::v8::runtime::Policy::calibnet(), + NetworkChain::Mainnet => make_mainnet_policy!(v8), + NetworkChain::Calibnet => make_calibnet_policy!(v8), NetworkChain::Devnet(_) => unimplemented!("Policy::devnet"), NetworkChain::Butterflynet => unimplemented!("Policy::butterflynet"), }; @@ -61,8 +62,8 @@ where let empty_deadline_v9_cid = store.put_cbor_default(&empty_deadline_v9)?; let policy = match chain { - NetworkChain::Mainnet => fil_actors_shared::v9::runtime::Policy::mainnet(), - NetworkChain::Calibnet => fil_actors_shared::v9::runtime::Policy::calibnet(), + NetworkChain::Mainnet => make_mainnet_policy!(v9), + NetworkChain::Calibnet => make_calibnet_policy!(v9), NetworkChain::Devnet(_) => unimplemented!("Policy::devnet"), NetworkChain::Butterflynet => unimplemented!("Policy::butterflynet"), }; @@ -253,8 +254,8 @@ impl MinerMigrator { store.get_cbor_required(deadlines)?; let policy = match &self.chain { - NetworkChain::Mainnet => fil_actors_shared::v9::runtime::Policy::mainnet(), - NetworkChain::Calibnet => fil_actors_shared::v9::runtime::Policy::calibnet(), + NetworkChain::Mainnet => make_mainnet_policy!(v9), + NetworkChain::Calibnet => make_calibnet_policy!(v9), NetworkChain::Devnet(_) => unimplemented!("Policy::devnet"), NetworkChain::Butterflynet => unimplemented!("Policy::butterflynet"), }; @@ -933,7 +934,7 @@ mod tests { let empty_miner_info_cid = store.put_cbor_default(&empty_miner_info).unwrap(); fil_actor_miner_state::v8::State::new( - &fil_actors_shared::v8::runtime::Policy::calibnet(), + &make_calibnet_policy!(v8), store, empty_miner_info_cid, 0, diff --git a/src/state_migration/nv21/migration.rs b/src/state_migration/nv21/migration.rs index 9ce03189864..4434948a851 100644 --- a/src/state_migration/nv21/migration.rs +++ b/src/state_migration/nv21/migration.rs @@ -4,7 +4,6 @@ use std::sync::Arc; use super::{miner, system, verifier::Verifier, SystemStateOld}; -use crate::make_butterfly_policy; use crate::networks::{ChainConfig, Height, NetworkChain}; use crate::shim::{ address::Address, @@ -15,9 +14,9 @@ use crate::shim::{ }; use crate::state_migration::common::{migrators::nil_migrator, StateMigration}; use crate::utils::db::CborStoreExt as _; +use crate::{make_butterfly_policy, make_calibnet_policy, make_devnet_policy, make_mainnet_policy}; use anyhow::Context; use cid::Cid; -use fil_actors_shared::v11::runtime::ProofSet; use fvm_ipld_blockstore::Blockstore; impl StateMigration { @@ -43,38 +42,12 @@ impl StateMigration { } let (policy_old, policy_new) = match &chain_config.network { - NetworkChain::Mainnet => ( - fil_actors_shared::v11::runtime::Policy::mainnet(), - fil_actors_shared::v12::runtime::Policy::mainnet(), - ), - NetworkChain::Calibnet => ( - fil_actors_shared::v11::runtime::Policy::calibnet(), - fil_actors_shared::v12::runtime::Policy::calibnet(), - ), + NetworkChain::Mainnet => (make_mainnet_policy!(v11), make_mainnet_policy!(v12)), + NetworkChain::Calibnet => (make_calibnet_policy!(v11), make_calibnet_policy!(v12)), NetworkChain::Butterflynet => { (make_butterfly_policy!(v11), make_butterfly_policy!(v12)) } - NetworkChain::Devnet(_) => { - let mut policy_old = fil_actors_shared::v11::runtime::Policy::mainnet(); - policy_old.minimum_consensus_power = 2048.into(); - policy_old.minimum_verified_allocation_size = 256.into(); - policy_old.pre_commit_challenge_delay = 10; - - let mut proofs = ProofSet::default_seal_proofs(); - proofs.insert(RegisteredSealProofV3::StackedDRG2KiBV1); - proofs.insert(RegisteredSealProofV3::StackedDRG8MiBV1); - policy_old.valid_pre_commit_proof_type = proofs; - - let mut proofs = ProofSet::default_post_proofs(); - proofs.insert(RegisteredPoStProofV3::StackedDRGWindow2KiBV1); - proofs.insert(RegisteredPoStProofV3::StackedDRGWindow8MiBV1); - policy_old.valid_post_proof_type = proofs; - - ( - policy_old, - fil_actors_shared::v12::runtime::Policy::devnet(), - ) - } + NetworkChain::Devnet(_) => (make_devnet_policy!(v11), make_devnet_policy!(v12)), }; let miner_old_code = current_manifest.get(BuiltinActor::Miner)?; let miner_new_code = new_manifest.get(BuiltinActor::Miner)?; diff --git a/src/state_migration/nv21/miner.rs b/src/state_migration/nv21/miner.rs index dbe5b44e51c..511d0ed8701 100644 --- a/src/state_migration/nv21/miner.rs +++ b/src/state_migration/nv21/miner.rs @@ -286,6 +286,7 @@ fn miner_prev_sectors_out_key(address: &Address) -> String { #[cfg(test)] mod tests { use super::*; + use crate::make_calibnet_policy; use crate::networks::{ChainConfig, Height}; use crate::shim::{ econ::TokenAmount, @@ -341,10 +342,7 @@ mod tests { .unwrap(); deadline.sectors_snapshot = sectors_snapshot.flush().unwrap(); let deadline_cid = store.put_cbor_default(&deadline).unwrap(); - let deadlines = DeadlinesOld::new( - &fil_actors_shared::v11::runtime::Policy::calibnet(), - deadline_cid, - ); + let deadlines = DeadlinesOld::new(&make_calibnet_policy!(v11), deadline_cid); miner_state1.deadlines = store.put_cbor_default(&deadlines).unwrap(); let miner1_state_cid = store.put_cbor_default(&miner_state1).unwrap(); @@ -492,7 +490,7 @@ mod tests { let miner_info_cid = store.put_cbor_default(&miner_info).unwrap(); fil_actor_miner_state::v11::State::new( - &fil_actors_shared::v11::runtime::Policy::calibnet(), + &make_calibnet_policy!(v11), store, miner_info_cid, 0,