Documentation
¶
Index ¶
Constants ¶
const ConsensusMinerMinMiners = 4 // PARAM_SPEC
The number of miners that must meet the consensus minimum miner power before that minimum power is enforced as a condition of leader election. This ensures a network still functions before any miners reach that threshold.
const CronQueueAmtBitwidth = 6
Bitwidth of CronEventQueue AMT determined empirically from mutation patterns and projections of mainnet data.
const CronQueueHamtBitwidth = 6
Bitwidth of CronEventQueue HAMT determined empirically from mutation patterns and projections of mainnet data.
const ProofValidationBatchAmtBitwidth = 4
Bitwidth of ProofValidationBatch AMT determined empirically from mutation pattersn and projections of mainnet data.
Variables ¶
genesis power in bytes = 750,000 GiB
max chain throughput in bytes per epoch = 120 ProveCommits / epoch = 3,840 GiB
Functions ¶
This section is empty.
Types ¶
type Claim ¶
type Claim struct {
// Miner's proof type used to determine minimum miner size
WindowPoStProofType abi.RegisteredPoStProof
// Sum of raw byte power for a miner's sectors.
RawBytePower abi.StoragePower
// Sum of quality adjusted power for a miner's sectors.
QualityAdjPower abi.StoragePower
}
type MinerConstructorParams ¶
type MinerConstructorParams struct {
OwnerAddr addr.Address
WorkerAddr addr.Address
ControlAddrs []addr.Address
WindowPoStProofType abi.RegisteredPoStProof
PeerId abi.PeerID
Multiaddrs []abi.Multiaddrs
}
Storage miner actor constructor params are defined here so the power actor can send them to the init actor to instantiate miners. Changed since v2: - Seal proof type replaced with PoSt proof type
type State ¶
type State struct {
TotalRawBytePower abi.StoragePower
// TotalBytesCommitted includes claims from miners below min power threshold
TotalBytesCommitted abi.StoragePower
TotalQualityAdjPower abi.StoragePower
// TotalQABytesCommitted includes claims from miners below min power threshold
TotalQABytesCommitted abi.StoragePower
TotalPledgeCollateral abi.TokenAmount
// These fields are set once per epoch in the previous cron tick and used
// for consistent values across a single epoch's state transition.
ThisEpochRawBytePower abi.StoragePower
ThisEpochQualityAdjPower abi.StoragePower
ThisEpochPledgeCollateral abi.TokenAmount
ThisEpochQAPowerSmoothed smoothing.FilterEstimate
MinerCount int64
// Number of miners having proven the minimum consensus power.
MinerAboveMinPowerCount int64
// A queue of events to be triggered by cron, indexed by epoch.
CronEventQueue cid.Cid // Multimap, (HAMT[ChainEpoch]AMT[CronEvent])
// First epoch in which a cron task may be stored.
// Cron will iterate every epoch between this and the current epoch inclusively to find tasks to execute.
FirstCronEpoch abi.ChainEpoch
// Claimed power for each miner.
Claims cid.Cid // Map, HAMT[address]Claim
ProofValidationBatch *cid.Cid // Multimap, (HAMT[Address]AMT[SealVerifyInfo])
}
func (*State) MinerNominalPowerMeetsConsensusMinimum ¶
func (st *State) MinerNominalPowerMeetsConsensusMinimum(s adt.Store, miner addr.Address) (bool, error)
MinerNominalPowerMeetsConsensusMinimum is used to validate Election PoSt winners outside the chain state. If the miner has over a threshold of power the miner meets the minimum. If the network is a below a threshold of miners and has power > zero the miner meets the minimum.