Struct fil_actor_interface::Policy

source ·
pub struct Policy {
Show 44 fields pub max_aggregated_sectors: u64, pub min_aggregated_sectors: u64, pub max_aggregated_proof_size: usize, pub max_replica_update_proof_size: usize, pub pre_commit_sector_batch_max_size: usize, pub prove_replica_updates_max_size: usize, pub expired_pre_commit_clean_up_delay: i64, pub wpost_proving_period: i64, pub wpost_challenge_window: i64, pub wpost_period_deadlines: u64, pub wpost_max_chain_commit_age: i64, pub wpost_dispute_window: i64, pub sectors_max: usize, pub max_partitions_per_deadline: u64, pub max_control_addresses: usize, pub max_peer_id_length: usize, pub max_multiaddr_data: usize, pub addressed_partitions_max: u64, pub declarations_max: u64, pub addressed_sectors_max: u64, pub max_pre_commit_randomness_lookback: i64, pub pre_commit_challenge_delay: i64, pub wpost_challenge_lookback: i64, pub fault_declaration_cutoff: i64, pub fault_max_age: i64, pub worker_key_change_delay: i64, pub min_sector_expiration: i64, pub max_sector_expiration_extension: i64, pub deal_limit_denominator: u64, pub consensus_fault_ineligibility_duration: i64, pub new_sectors_per_period_max: usize, pub chain_finality: i64, pub valid_post_proof_type: HashSet<RegisteredPoStProof>, pub valid_pre_commit_proof_type: HashSet<RegisteredSealProof>, pub minimum_verified_allocation_size: BigInt, pub minimum_verified_allocation_term: i64, pub maximum_verified_allocation_term: i64, pub maximum_verified_allocation_expiration: i64, pub end_of_life_claim_drop_period: i64, pub deal_updates_interval: i64, pub prov_collateral_percent_supply_num: i64, pub prov_collateral_percent_supply_denom: i64, pub market_default_allocation_term_buffer: i64, pub minimum_consensus_power: BigInt,
}

Fields§

§max_aggregated_sectors: u64

Maximum amount of sectors that can be aggregated.

§min_aggregated_sectors: u64

Minimum amount of sectors that can be aggregated.

§max_aggregated_proof_size: usize

Maximum total aggregated proof size.

§max_replica_update_proof_size: usize

Maximum total replica update proof size.

§pre_commit_sector_batch_max_size: usize

The maximum number of sector pre-commitments in a single batch. 32 sectors per epoch would support a single miner onboarding 1 EiB of 32 GiB sectors in 1 year.

§prove_replica_updates_max_size: usize

The maximum number of sector replica updates in a single batch.

§expired_pre_commit_clean_up_delay: i64

The delay between pre-commit expiration and clean up from state. This enforces that expired pre-commits stay in state for a period of time creating a grace period during which a late-running aggregated prove-commit can still prove its non-expired pre-commits without resubmitting a message

§wpost_proving_period: i64

The period over which all a miner’s active sectors will be challenged.

§wpost_challenge_window: i64

The duration of a deadline’s challenge window, the period before a deadline when the challenge is available.

§wpost_period_deadlines: u64

The number of non-overlapping PoSt deadlines in each proving period.

§wpost_max_chain_commit_age: i64

The maximum distance back that a valid Window PoSt must commit to the current chain.

§wpost_dispute_window: i64

WPoStDisputeWindow is the period after a challenge window ends during which PoSts submitted during that period may be disputed.

§sectors_max: usize

The maximum number of sectors that a miner can have simultaneously active. This also bounds the number of faults that can be declared, etc.

§max_partitions_per_deadline: u64

Maximum number of partitions that will be assigned to a deadline. For a minimum storage of up-to 1 EiB, we need 300 partitions per deadline. 48 * 32 GiB * 2349 * 300 = 1.00808144 EiB So, to support up-to 10 Eib storage, we set this to 3000.

§max_control_addresses: usize

Maximum number of control addresses a miner may register.

§max_peer_id_length: usize

MaxPeerIDLength is the maximum length allowed for any on-chain peer ID. Most Peer IDs are expected to be less than 50 bytes.

§max_multiaddr_data: usize

MaxMultiaddrData is the maximum amount of data that can be stored in Multiaddrs.

§addressed_partitions_max: u64

The maximum number of partitions that may be required to be loaded in a single invocation. This limits the number of simultaneous fault, recovery, or sector-extension declarations. With 48 deadlines (half-hour), 200 partitions per declaration permits loading a full EiB of 32 GiB sectors with 1 message per epoch within a single half-hour deadline. A miner can of course submit more messages.

§declarations_max: u64

Maximum number of unique “declarations” in batch operations.

§addressed_sectors_max: u64

The maximum number of sector infos that may be required to be loaded in a single invocation.

§max_pre_commit_randomness_lookback: i64§pre_commit_challenge_delay: i64

Number of epochs between publishing the pre-commit and when the challenge for interactive PoRep is drawn used to ensure it is not predictable by miner.

§wpost_challenge_lookback: i64

Look-back from the deadline’s challenge window opening from which to sample chain randomness for the challenge seed. This lookback exists so that deadline windows can be non-overlapping (which make the programming simpler) but without making the miner wait for chain stability before being able to start on PoSt computation. The challenge is available this many epochs before the window is actually open to receiving a PoSt.

§fault_declaration_cutoff: i64

Minimum period before a deadline’s challenge window opens that a fault must be declared for that deadline. This lookback must not be less than WPoStChallengeLookback lest a malicious miner be able to selectively declare faults after learning the challenge value.

§fault_max_age: i64

The maximum age of a fault before the sector is terminated.

§worker_key_change_delay: i64

Staging period for a miner worker key change. Finality is a harsh delay for a miner who has lost their worker key, as the miner will miss Window PoSts until it can be changed. It’s the only safe value, though. We may implement a mitigation mechanism such as a second key or allowing the owner account to submit PoSts while a key change is pending.

§min_sector_expiration: i64

Minimum number of epochs past the current epoch a sector may be set to expire.

§max_sector_expiration_extension: i64

Maximum number of epochs past the current epoch a sector may be set to expire. The actual maximum extension will be the minimum of CurrEpoch + MaximumSectorExpirationExtension and sector.ActivationEpoch + sealProof.SectorMaximumLifetime()

§deal_limit_denominator: u64

Ratio of sector size to maximum deals per sector. The maximum number of deals is the sector size divided by this number (2^27) which limits 32 GiB sectors to 256 deals and 64 GiB sectors to 512

§consensus_fault_ineligibility_duration: i64

Number of epochs after a consensus fault for which a miner is ineligible for permissioned actor methods and winning block elections.

§new_sectors_per_period_max: usize

The maximum number of new sectors that may be staged by a miner during a single proving period.

§chain_finality: i64

Epochs after which chain state is final with overwhelming probability (hence the likelihood of two fork of this size is negligible) This is a conservative value that is chosen via simulations of all known attacks.

§valid_post_proof_type: HashSet<RegisteredPoStProof>

Allowed post proof types for new miners

§valid_pre_commit_proof_type: HashSet<RegisteredSealProof>

Allowed pre-commit proof types for new miners

§minimum_verified_allocation_size: BigInt

Minimum verified deal size

§minimum_verified_allocation_term: i64

Minimum term for a verified data allocation (epochs)

§maximum_verified_allocation_term: i64

Maximum term for a verified data allocation (epochs)

§maximum_verified_allocation_expiration: i64

Maximum time a verified allocation can be active without being claimed (epochs). Supports recovery of erroneous allocations and prevents indefinite squatting on Datacap.

§end_of_life_claim_drop_period: i64§deal_updates_interval: i64

The number of blocks between payouts for deals

§prov_collateral_percent_supply_num: i64

Numerator of the percentage of normalized circulating supply that must be covered by provider collateral

§prov_collateral_percent_supply_denom: i64

Denominator of the percentage of normalized circulating supply that must be covered by provider collateral

§market_default_allocation_term_buffer: i64

The default duration after a verified deal’s nominal term to set for the corresponding allocation’s maximum term.

§minimum_consensus_power: BigInt

Minimum miner consensus power

Implementations§

Trait Implementations§

source§

impl Clone for Policy

source§

fn clone(&self) -> Policy

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Policy

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for Policy

source§

fn deserialize<__D>( __deserializer: __D ) -> Result<Policy, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl PartialEq for Policy

source§

fn eq(&self, other: &Policy) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Policy

source§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Policy

source§

impl StructuralPartialEq for Policy

Auto Trait Implementations§

§

impl Freeze for Policy

§

impl RefUnwindSafe for Policy

§

impl Send for Policy

§

impl Sync for Policy

§

impl Unpin for Policy

§

impl UnwindSafe for Policy

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Conv for T

source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> Pipe for T
where T: ?Sized,

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> References<RawCodec> for T

source§

fn references<R, E>(_c: RawCodec, _r: &mut R, _set: &mut E) -> Result<(), Error>
where R: Read, E: Extend<Cid<64>>,

Scrape the references from an impl Read. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,