Struct fil_actor_miner_state::v8::Deadline
source · pub struct Deadline {
pub partitions: Cid,
pub expirations_epochs: Cid,
pub partitions_posted: BitField,
pub early_terminations: BitField,
pub live_sectors: u64,
pub total_sectors: u64,
pub faulty_power: PowerPair,
pub optimistic_post_submissions: Cid,
pub sectors_snapshot: Cid,
pub partitions_snapshot: Cid,
pub optimistic_post_submissions_snapshot: Cid,
}
Expand description
Deadline holds the state for all sectors due at a specific deadline.
Fields§
§partitions: Cid
Partitions in this deadline, in order. The keys of this AMT are always sequential integers beginning with zero.
expirations_epochs: Cid
Maps epochs to partitions that may have sectors that expire in or before that epoch, either on-time or early as faults. Keys are quantized to final epochs in each proving deadline.
NOTE: Partitions MUST NOT be removed from this queue (until the associated epoch has passed) even if they no longer have sectors expiring at that epoch. Sectors expiring at this epoch may later be recovered, and this queue will not be updated at that time.
partitions_posted: BitField
§early_terminations: BitField
Partitions with sectors that terminated early.
live_sectors: u64
The number of non-terminated sectors in this deadline (incl faulty).
total_sectors: u64
The total number of sectors in this deadline (incl dead).
faulty_power: PowerPair
Memoized sum of faulty power in partitions.
optimistic_post_submissions: Cid
§sectors_snapshot: Cid
§partitions_snapshot: Cid
§optimistic_post_submissions_snapshot: Cid
Implementations§
source§impl Deadline
impl Deadline
pub fn new<BS: Blockstore>(store: &BS) -> Result<Self>
pub fn partitions_amt<'db, BS: Blockstore>( &self, store: &'db BS, ) -> Result<Array<'db, Partition, BS>>
pub fn optimistic_proofs_amt<'db, BS: Blockstore>( &self, store: &'db BS, ) -> Result<Array<'db, WindowedPoSt, BS>>
pub fn partitions_snapshot_amt<'db, BS: Blockstore>( &self, store: &'db BS, ) -> Result<Array<'db, Partition, BS>>
pub fn optimistic_proofs_snapshot_amt<'db, BS: Blockstore>( &self, store: &'db BS, ) -> Result<Array<'db, WindowedPoSt, BS>>
pub fn load_partition<BS: Blockstore>( &self, store: &BS, partition_idx: u64, ) -> Result<Partition>
pub fn load_partition_snapshot<BS: Blockstore>( &self, store: &BS, partition_idx: u64, ) -> Result<Partition>
sourcepub fn add_expiration_partitions<BS: Blockstore>(
&mut self,
store: &BS,
expiration_epoch: ChainEpoch,
partitions: &[u64],
quant: QuantSpec,
) -> Result<()>
pub fn add_expiration_partitions<BS: Blockstore>( &mut self, store: &BS, expiration_epoch: ChainEpoch, partitions: &[u64], quant: QuantSpec, ) -> Result<()>
Adds some partition numbers to the set expiring at an epoch.
sourcepub fn pop_expired_sectors<BS: Blockstore>(
&mut self,
store: &BS,
until: ChainEpoch,
quant: QuantSpec,
) -> Result<ExpirationSet>
pub fn pop_expired_sectors<BS: Blockstore>( &mut self, store: &BS, until: ChainEpoch, quant: QuantSpec, ) -> Result<ExpirationSet>
PopExpiredSectors
terminates expired sectors from all partitions.
Returns the expired sector aggregates.
sourcepub fn add_sectors<BS: Blockstore>(
&mut self,
store: &BS,
partition_size: u64,
proven: bool,
sectors: &[SectorOnChainInfo],
sector_size: SectorSize,
quant: QuantSpec,
) -> Result<PowerPair>
pub fn add_sectors<BS: Blockstore>( &mut self, store: &BS, partition_size: u64, proven: bool, sectors: &[SectorOnChainInfo], sector_size: SectorSize, quant: QuantSpec, ) -> Result<PowerPair>
Adds sectors to a deadline. It’s the caller’s responsibility to make sure that this deadline isn’t currently “open” (i.e., being proved at this point in time). The sectors are assumed to be non-faulty.
pub fn pop_early_terminations<BS: Blockstore>( &mut self, store: &BS, max_partitions: u64, max_sectors: u64, ) -> Result<(TerminationResult, bool)>
pub fn pop_expired_partitions<BS: Blockstore>( &mut self, store: &BS, until: ChainEpoch, quant: QuantSpec, ) -> Result<(BitField, bool)>
pub fn terminate_sectors<BS: Blockstore>( &mut self, policy: &Policy, store: &BS, sectors: &Sectors<'_, BS>, epoch: ChainEpoch, partition_sectors: &mut PartitionSectorMap, sector_size: SectorSize, quant: QuantSpec, ) -> Result<PowerPair>
sourcepub fn remove_partitions<BS: Blockstore>(
&mut self,
store: &BS,
to_remove: &BitField,
quant: QuantSpec,
) -> Result<(BitField, BitField, PowerPair), Error>
pub fn remove_partitions<BS: Blockstore>( &mut self, store: &BS, to_remove: &BitField, quant: QuantSpec, ) -> Result<(BitField, BitField, PowerPair), Error>
RemovePartitions
removes the specified partitions, shifting the remaining
ones to the left, and returning the live and dead sectors they contained.
Returns an error if any of the partitions contained faulty sectors or early terminations.
pub fn record_faults<BS: Blockstore>( &mut self, store: &BS, sectors: &Sectors<'_, BS>, sector_size: SectorSize, quant: QuantSpec, fault_expiration_epoch: ChainEpoch, partition_sectors: &mut PartitionSectorMap, ) -> Result<PowerPair>
pub fn declare_faults_recovered<BS: Blockstore>( &mut self, store: &BS, sectors: &Sectors<'_, BS>, sector_size: SectorSize, partition_sectors: &mut PartitionSectorMap, ) -> Result<()>
sourcepub fn process_deadline_end<BS: Blockstore>(
&mut self,
store: &BS,
quant: QuantSpec,
fault_expiration_epoch: ChainEpoch,
sectors: Cid,
) -> Result<(PowerPair, PowerPair), ActorError>
pub fn process_deadline_end<BS: Blockstore>( &mut self, store: &BS, quant: QuantSpec, fault_expiration_epoch: ChainEpoch, sectors: Cid, ) -> Result<(PowerPair, PowerPair), ActorError>
Processes all PoSt submissions, marking unproven sectors as faulty and clearing failed recoveries. It returns the power delta, and any power that should be penalized (new faults and failed recoveries).
pub fn for_each<BS: Blockstore>( &self, store: &BS, f: impl FnMut(u64, &Partition) -> Result<()>, ) -> Result<()>
pub fn validate_state(&self) -> Result<()>
pub fn load_partitions_for_dispute<BS: Blockstore>( &self, store: &BS, partitions: BitField, ) -> Result<DisputeInfo>
pub fn is_live(&self) -> bool
source§impl Deadline
impl Deadline
sourcepub fn record_proven_sectors<BS: Blockstore>(
&mut self,
store: &BS,
sectors: &Sectors<'_, BS>,
sector_size: SectorSize,
quant: QuantSpec,
fault_expiration: ChainEpoch,
post_partitions: &mut [PoStPartition],
) -> Result<PoStResult>
pub fn record_proven_sectors<BS: Blockstore>( &mut self, store: &BS, sectors: &Sectors<'_, BS>, sector_size: SectorSize, quant: QuantSpec, fault_expiration: ChainEpoch, post_partitions: &mut [PoStPartition], ) -> Result<PoStResult>
Processes a series of posts, recording proven partitions and marking skipped sectors as faulty.
It returns a PoStResult
containing the list of proven and skipped sectors and
changes to power (newly faulty power, power that should have been proven
recovered but wasn’t, and newly recovered power).
NOTE: This function does not actually verify any proofs. The returned
sectors
and ignored_sectors
must subsequently be validated against the PoSt
submitted by the miner.
pub fn record_post_proofs<BS: Blockstore>( &mut self, store: &BS, partitions: &BitField, proofs: &[PoStProof], ) -> Result<()>
pub fn take_post_proofs<BS: Blockstore>( &mut self, store: &BS, idx: u64, ) -> Result<(BitField, Vec<PoStProof>)>
sourcepub fn reschedule_sector_expirations<BS: Blockstore>(
&mut self,
store: &BS,
sectors: &Sectors<'_, BS>,
expiration: ChainEpoch,
partition_sectors: &mut PartitionSectorMap,
sector_size: SectorSize,
quant: QuantSpec,
) -> Result<Vec<SectorOnChainInfo>>
pub fn reschedule_sector_expirations<BS: Blockstore>( &mut self, store: &BS, sectors: &Sectors<'_, BS>, expiration: ChainEpoch, partition_sectors: &mut PartitionSectorMap, sector_size: SectorSize, quant: QuantSpec, ) -> Result<Vec<SectorOnChainInfo>>
RescheduleSectorExpirations
reschedules the expirations of the given sectors
to the target epoch, skipping any sectors it can’t find.
The power of the rescheduled sectors is assumed to have not changed since initial scheduling.
Note: see the docs on State.RescheduleSectorExpirations
for details on why we
skip sectors/partitions we can’t find.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Deadline
impl<'de> Deserialize<'de> for Deadline
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Deadline
impl RefUnwindSafe for Deadline
impl Send for Deadline
impl Sync for Deadline
impl Unpin for Deadline
impl UnwindSafe for Deadline
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moresource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> References<RawCodec> for T
impl<T> References<RawCodec> for T
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.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
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.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
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.