owned this note
owned this note
Published
Linked with GitHub
# `specs-actors` Master Tracking
:::info
Final update on Sept. 11, 2020. No further changes will be made.
:::
This document tracks:
* Open items that need attention from specs-actors devs: [[Open Items]](#Open-Items-Needs-Action)
* Current schedule and objectives [[Schedule]](#Schedule)
* Ongoing initiatives to understand and document specs-actors behavior: [[Documentation]](#Documentation)
* Ongoing initiative to come up with scenario tests: [[Scenario Testing]](#Scenario-Testing)
* Items that have been addressed and no longer require attention from specs-actors devs: [[Addressed]](#Addressed-No-Action-Required)
## Contents
[TOC]
## Open Items (Needs Action)
This section lists any open issues we're tracking. Issues are sorted into sub-sections following specs-actors priority label conventions (P1 / P2 / P3).
* Issues that have not been given a label are listed under [Uncategorized](#Uncategorized)
* Issues that have an associated open PR are listed under [Items with open PRs](#Items-with-open-PRs)
* Once PRs have been merged, they're removed from this section and tracked in [Addressed](#Addressed-No-Action-Required)
* Discussion-based issues are tracked in [Discussions](#Discussions)
* Proposals for scenario tests are tracked in [Scenario Testing](#Scenario-Testing)
For all sub-sections, issues are appended in order of ascending issue number.
### Uncategorized
:::info
These issues have not been categorized.
:::
* Reward: Check miner code CID
* Issue: [specs-actors/#1090](https://github.com/filecoin-project/specs-actors/issues/1090)
* Market.PublishStorageDeals griefing vector
* Issue: [specs-actors/#1144](https://github.com/filecoin-project/specs-actors/issues/1144)
### P1
:::danger
Required for network launch
:::
Empty!
### P2
:::warning
Beneficial for network launch
:::
* ConfirmSectorProofsValid: batch VerifyDealsOnSectorProveCommit
* ~~Issue: [specs-actors/#904](https://github.com/filecoin-project/specs-actors/issues/904)~~
* Issue: [specs-actors/#474](https://github.com/filecoin-project/specs-actors/issues/474)
* Simplify cron queue handling in power and market actors
* Issue: [specs-actors/#751](https://github.com/filecoin-project/specs-actors/issues/751)
* Power.OnEpochTickEnd: preempt Miner queries to Power and Reward
* Issue: [specs-actors/#799](https://github.com/filecoin-project/specs-actors/issues/799)
* Miner.Constructor: Additional input validation
* Issue: [specs-actors/#807](https://github.com/filecoin-project/specs-actors/issues/807)
* Miner: Drop precommits from prove commit set if power/pledge/reward values aren't sane
* Issue: [specs-actors/#913](https://github.com/filecoin-project/specs-actors/issues/913)
* Miner: ExtendSectorExpiration doesn't correctly check AddressedPartitionsMax
* Issue: [specs-actors/#931](https://github.com/filecoin-project/specs-actors/issues/931)
* Where applicable, enforce uniqueness when handling slices
* Issue: [specs-actors/#979](https://github.com/filecoin-project/specs-actors/issues/979)
* Miner/Market: Clean up deal weight calculation during precommit
* Issue: [specs-actors/#981](https://github.com/filecoin-project/specs-actors/issues/981)
* Miner: Cleanup accounting methods
* Issue: [specs-actors/#1006](https://github.com/filecoin-project/specs-actors/issues/1006)
* Miner: VerifyPledgeRequirementsAndRepayDebts should return balance available after paying debt
* Issue: [specs-actors/#1020](https://github.com/filecoin-project/specs-actors/issues/1020)
* Add log messages for significant events
* Issue: [specs-actors/#1060](https://github.com/filecoin-project/specs-actors/issues/1060)
* Miner: Check Partition invariants
* Issue: [specs-actors/#1068](https://github.com/filecoin-project/specs-actors/issues/1068)
* Miner: Check Deadline invariants
* Issue: [specs-actors/#1070](https://github.com/filecoin-project/specs-actors/issues/1070)
### P3
:::success
Not urgent or important
:::
* StorageMarket: Refund clients remaining balance since sector became faulty on termination
* ~~Issue: [specs-actors/#694](https://github.com/filecoin-project/specs-actors/issues/694)~~
* Issue: [specs-actors/#667](https://github.com/filecoin-project/specs-actors/issues/667)
* Reward: Initialize `penalty` directly with the min value
* Issue: [specs-actors/#696](https://github.com/filecoin-project/specs-actors/issues/696)
* Recommendation: Standardize power/market cron method names
* Issue: [specs-actors/#721](https://github.com/filecoin-project/specs-actors/issues/721)
* PaymentChannel.Collect: Switch to "pull" payment pattern rather than "push" payments
* Issue: [specs-actors/#732](https://github.com/filecoin-project/specs-actors/issues/732)
* Miner: Simplify sector number allocation during precommit
* Issue: [specs-actors/#905](https://github.com/filecoin-project/specs-actors/issues/905)
* Power.CreateMiner does not allow caller to initialize Miner's ControlAddresses
* Issue: [specs-actors/#980](https://github.com/filecoin-project/specs-actors/issues/980)
* Miner: Unlock vested funds in SubmitWindowedPoSt
* Issue: [specs-actors/#1002](https://github.com/filecoin-project/specs-actors/issues/1002)
### Discussions
* Miner: NewDeadlineInfo may calculate negative Challenge and FaultCutoff epochs during first ~70 epochs
* Issue: [specs-actors/#805](https://github.com/filecoin-project/specs-actors/issues/805)
### Items with open PRs
Items are added in order of ascending PR number.
:::info
Have not reviewed the following PRs
:::
Empty!
---
:::warning
Changes requested for the following PRs
:::
* [[specs-actors/#1129](https://github.com/filecoin-project/specs-actors/pull/1129)] **prevent faults from double subtracting cc upgrade power**
* Miner: Declaring a replaced CC sector faulty can result in a sector existing in an expiration queue twice
* Issue: [specs--actors/#1100](https://github.com/filecoin-project/specs-actors/issues/1100)
---
:::success
I've reviewed these PRs, and they look ready to merge!
:::
* [[specs-actors/#1140](https://github.com/filecoin-project/specs-actors/pull/1140)] **Add assertion that expiration set is valid**
* Miner: Check ExpirationSet invariants
* Issue: [specs-actors/#1064](https://github.com/filecoin-project/specs-actors/issues/1064)
### Scenario Testing
Scenario tests are being tracked in this document: https://hackmd.io/@-HV50kYcRqOjl_7du8m1AA/rk9_hCMfv
:::warning
Currently, there are unimplemented tests:
:::
* Miner Alice adds and proves a CC sector
### Other tests
During review, I came up with a few final tests that should be implemented (some may already exist). Here they are, somewhat categorized:
#### Unproven sectors
* Declare an Unproven sector faulty, then recover it
* Terminate an unproven sector
#### Expirations / Fault max age
* Declare a fault for a sector with on-time expiry < fault max age, then attempt to extend its expiration
* Declare a recovering sector (with rescheduled expiry < fault max age) faulty
* Miss a PoSt for a sector with on-time expiry < fault max age
* Submit a PoSt that "skips" a sector with on-time expiry < fault max age
* Terminate a faulty sector with on-time expiry < fault max age
* Submit a PoSt for a sector expiring in CurrEpoch, then extend its expiry in the same epoch
* The same as above, but "extend" its expiry to the same epoch (`ExtendSectorExpiration` allows 0-epoch extensions)
* Expiries are processed by `handleProvingDeadline`, so they may exist un-processed for up to 1 day after their on-time expiration before being picked up by cron. Tests for these sectors:
* Declare it faulty
* Submit a PoSt for it
* Terminate it
* Extend its expiry
#### Misc
* Declare a recovering sector faulty
* "Skip" a sector during PoSt, but terminate it before cron picks it up
## Schedule
This section outlines the current schedule and objectives for the assessment phase.
### Phase 1 (pre-testnet)
| **Date** | **Primary Objective(s)** | **Secondary Objective(s)** |
|--------------|-----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|
| July 6 - 10 | Work on actor documentation ||
| July 13 - 17 | Finish specs for all actors | - Keep specs up-to-date with master<br>- Rough draft high-level documentation. Focus on roles/permissions/responsibilities. |
| July 20 - 24 | In-depth review of the more complicated actors (market, power, miner) | - Compile findings / recommendations. Help prioritize fixes/improvements.<br>- Continue maintaining/improving documentation |
| July 27 - 31 | Diligence Hiatus - Daniel/Alex are out of office. | - N/A |
### Phase 2 (pre-mainnet)
| **Date** | **Primary Objective(s)** | **Secondary Objective(s)** |
|--------------|-----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Aug 3 - 7 | 1. Catch up on last week's progress.<br> 2. Plan and prepare for rest of Phase 2 | - Review commits made since July 24<br> - Update specs where applicable<br> - Begin thinking about final report deliverable<br> - Further work on Miner docs |
| Aug 10 - 14 | 1. Assess state of testing<br> 2. In-depth review: Miner/Power/Market | Continue work on docs/specs |
| Aug 17 - 21 | In-depth review: Miner/Power/Market | Continue work on docs/specs |
| Aug 24 - 28 | In-depth review: Miner/Power/Market | Continue work on docs/specs |
| Aug 31 - Sept 4 | In-depth review: Miner/Power/Market | Continue work on docs/specs |
| Sept 7 - Sept 11 | Complete final report; deliver by EOD Sept 11 | N/A |
### Limitations
I'm going to use this section to keep track of things I don't think I will have time to review in as much detail as I'd prefer.
This section will only speak to things that are technically within scope (as defined [here](https://hackmd.io/U5Njlx83TL6f1Mykv58HmQ)).
* Unit tests
* Efficacy of current unit tests (do tests actually test the things they purport to)
* Coverage of current unit tests
* Miner
* Deadline assignment
* Epoch quantization
* CompactPartitions
## Documentation
Up-to-date with commit: [c9027ee](https://github.com/filecoin-project/specs-actors/commit/c9027ee0393a0b76c3185f99f61a506f09e1a5cf)
### Singletons
| **Actor** | **Status** | **Link** |
|------------------|-------------|------------------------------------------|
| Init | Complete | https://hackmd.io/G3eaXOcWSxKLQkhvoQZYFg |
| Reward | WIP | https://hackmd.io/VMNxxYtGTw6V_jYr-WzE_g |
| Cron | Complete | https://hackmd.io/NbFUvwUnTaOa9e0dtcouiA |
| StoragePower | Complete | https://hackmd.io/BYSfLi9qTfCBj_gb6mLFSA |
| StorageMarket | Complete | https://hackmd.io/v3GZbV9GTt2AIO2li44Tzw |
| VerifiedRegistry | Complete |https://hackmd.io/pO-gQ5jPTEKHXlZAzXC2YQ |
### Instanced
| **Actor** | **Status** | **Link** |
|----------------|------------|------------------------------------------|
| Account | Complete | https://hackmd.io/puigQDo1TFCEPmFrWnGdfQ |
| Multisig | Complete | https://hackmd.io/uemzVhqjSde1bNv91rtl3g |
| PaymentChannel | Complete | https://hackmd.io/kKambNsDT8aoeruLlsh0BA |
| Miner | WIP | https://hackmd.io/As6TBI7HRqmDyFRgaWROFg |
## Addressed (No Action Required)
:::success
These items have been taken care of. No further action is needed.
:::
### Addressed via PR
* [[specs-actors/#588](https://github.com/filecoin-project/specs-actors/pull/588)] **Multisig: Resolve address before comparing**
* Multisig: Comparison between different `Address` types.
* Issue: [specs-actors/#587](https://github.com/filecoin-project/specs-actors/issues/587)
* [[specs-actors/#620](https://github.com/filecoin-project/specs-actors/pull/620)] **Market: Persist updates to state in CronTick**
* StorageMarket: Deal `States` update not persisted in `CronTick`
* Issue: [specs-actors/#606](https://github.com/filecoin-project/specs-actors/issues/606)
* [[specs-actors/#639](https://github.com/filecoin-project/specs-actors/pull/639)] **Market: Use ReadOnly transaction for ComputeDataCommitment**
* StorageMarket: `ComputeDataCommitment` should use `ReadOnly`, rather than `Transaction`
* Issue: [specs-actors/#607](https://github.com/filecoin-project/specs-actors/issues/607)
* [[specs-actors/#644](https://github.com/filecoin-project/specs-actors/pull/644)] **Market: Should delete pending deals in CronTick and delete them ONLY once**
* StorageMarket: CronTick doesn't persist Proposal deletion from `st.PendingProposals`
* Issue: [specs-actors/#643](https://github.com/filecoin-project/specs-actors/issues/643)
* [[specs-actors/#646](https://github.com/filecoin-project/specs-actors/pull/646)] **Payment Channel: Sign data should include channel address**
* PaymentChannel: vouchers can be replayed across channels
* Issue: [specs-actors/#612](https://github.com/filecoin-project/specs-actors/issues/612)
* [[specs-actors/#647](https://github.com/filecoin-project/specs-actors/pull/647)] **Market: Load Proposals AMT only once**
* StorageMarket: `CronTick` loads identical AMT for each processed deal
* Issue: [specs-actors/#609](https://github.com/filecoin-project/specs-actors/issues/609)
* StorageMarket: `ComputeDataCommitment` loads identical AMT for each passed-in DealID
* Issue: [specs-actors/#608](https://github.com/filecoin-project/specs-actors/issues/608)
* [[specs-actors/#684](https://github.com/filecoin-project/specs-actors/pull/684)] **Market: More tests and fixes**
* StorageMarket: delete pending deals on init timeout
* [[specs-actors/#714](https://github.com/filecoin-project/specs-actors/pull/714)] **Assert that payments are non-negative**
* PaymentChannel.UpdateChannelState: Require that signed vouchers have a non-negative "amount"
* Issue: [specs-actors/#731](https://github.com/filecoin-project/specs-actors/issues/731)
* [[specs-actors/#718](https://github.com/filecoin-project/specs-actors/pull/718)] **Market: Caller for withdraw must be the recipient**
* StorageMarket: market withdraw allows anyone to trigger withdrawals
* Issue: [specs-actors/#602](https://github.com/filecoin-project/specs-actors/issues/602)
* [[specs-actors/#758](https://github.com/filecoin-project/specs-actors/pull/758)] **VerifReg: Audit Fixes**
* Verifreg: Disallow `RootKey` from assuming other roles
* Issue: [specs-actors/#722](https://github.com/filecoin-project/specs-actors/issues/722)
* Verifreg.AddVerifier: `params.Allowance` should be greater than or equal to `MinVerifiedDealSize`
* Issue: [specs-actors/#724](https://github.com/filecoin-project/specs-actors/issues/724)
* Verifreg.AddVerifiedClient: Existing Verifiers should not be allowed to become VerifiedClients
* Issue: [specs-actors/#725](https://github.com/filecoin-project/specs-actors/issues/725)
* Verifreg.AddVerifiedClient: Misleading parameter "MinVerifiedDealSize"
* Issue: [specs-actors/#726](https://github.com/filecoin-project/specs-actors/issues/726)
* Verifreg.UseBytes: Consider never deleting a VerifiedClient entry
* Issue: [specs-actors/#728](https://github.com/filecoin-project/specs-actors/issues/728)
* [[specs-actors/#760](https://github.com/filecoin-project/specs-actors/pull/760)] **Market: Audit fixes**
* StorageMarket.PublishStorageDeals: Check that deals' provider has Miner CodeCID before query
* Issue: [specs-actors/#754](https://github.com/filecoin-project/specs-actors/issues/754)
* StorageMarket.PublishStorageDeals: Validate each deal's PieceSize
* Issue: [specs-actors/#755](https://github.com/filecoin-project/specs-actors/issues/755)
* [[specs-actors/#775](https://github.com/filecoin-project/specs-actors/pull/775)] **Market: Audit fixes**
* Market State.dealGetPaymentRemaining: Bad assertion allows for panic
* Issue: [specs-actors/#765](https://github.com/filecoin-project/specs-actors/issues/765)
* Market.CronTick: Branching statements imply potential abort
* Issue: [specs-actors/#766](https://github.com/filecoin-project/specs-actors/issues/766)
* Market.CronTick: Remove `RequireSuccess` for interaction with Verifreg and BurntFundsActor
* Issue: [specs-actors/#767](https://github.com/filecoin-project/specs-actors/issues/767)
* Market.AddBalance creates balance table entries when provided 0 value
* Issue: [specs-actors/#771](https://github.com/filecoin-project/specs-actors/issues/771)
* [[specs-actors/#778](https://github.com/filecoin-project/specs-actors/pull/778)] **Payment: Audit and fixes**
* PaymentChannel: reject equal-nonce voucher submissions
* Issue: [specs-actors/#660](https://github.com/filecoin-project/specs-actors/issues/660)
* [[specs-actors/#789](https://github.com/filecoin-project/specs-actors/pull/789)] **Fix deadline index check**
* Miner: Incorrect bounds on SubmitWindowedPoSt `params.Deadline`
* Issue: [specs-actors/#753](https://github.com/filecoin-project/specs-actors/issues/753)
* [[specs-actors/#790](https://github.com/filecoin-project/specs-actors/pull/790)] **Payment: Remove actor for collect**
* PaymentChannel.Collect: Clarify whether `Collect` implies the channel should be terminated
* Issue: [specs-actors/#733](https://github.com/filecoin-project/specs-actors/issues/733)
* [[specs-actors/#791](https://github.com/filecoin-project/specs-actors/pull/791)] **StoragePower: OnConsensusFault incorrectly zeroes out miner power**
* StoragePower: OnConsensusFault incorrectly zeroes out miner power
* Issue: [specs-actors/#692](https://github.com/filecoin-project/specs-actors/issues/692)
* [[specs-actors/#808](https://github.com/filecoin-project/specs-actors/pull/808)] **Feat/ip no vest**
* Miner: Duplicate invocations of `notifyPledgeChanged` in `processEarlyTerminations`
* Issue: [specs-actors/#752](https://github.com/filecoin-project/specs-actors/issues/752)
* [[specs-actors/#820](https://github.com/filecoin-project/specs-actors/pull/820)] **Allow up to the max sector number in precommit**
* Miner.PreCommitSector: Conflicting MaxSectorNumber checks
* Issue: [specs-actors/#798](https://github.com/filecoin-project/specs-actors/issues/798)
* [[specs-actors/#830](https://github.com/filecoin-project/specs-actors/pull/830)] **Fix: StoragePower: Incorrect assignment to Cid fields during construction**
* StoragePower: incorrect assignment to Cid fields during construction
* Issue: [specs-actors/#653](https://github.com/filecoin-project/specs-actors/issues/653)
* [[specs-actors/#862](https://github.com/filecoin-project/specs-actors/pull/862)] **AwardBlockReward validates params, better tests**
* Reward: Check if AwardBlockReward `param.Penalty` is greater or equal to zero
* Issue: [specs-actors/#697](https://github.com/filecoin-project/specs-actors/issues/697)
* [[specs-actors/#890](https://github.com/filecoin-project/specs-actors/pull/890)] **Reward Actor: Do not abort on sending funds to the miner**
* Reward.AwardBlockReward: Miner may be able to cause abort during block processing
* Issue: [specs-actors/#797](https://github.com/filecoin-project/specs-actors/issues/797)
* [[specs-actors/#902](https://github.com/filecoin-project/specs-actors/pull/902)] **Handle a pending key change that has been replaced**
* Miner.ChangeWorkerAddress: Handle a pending change already exists
* Issue: [specs-actors/#802](https://github.com/filecoin-project/specs-actors/issues/802)
* [[specs-actors/#912](https://github.com/filecoin-project/specs-actors/pull/912)] **Multisig: State should ONLY have ID address -> create accounts if they do NOT exist**
* Multisig, verifreg, paych actors create accounts that don't already exist
* Issue: [specs-actors/#730](https://github.com/filecoin-project/specs-actors/issues/730)
* [[specs-actors/#919](https://github.com/filecoin-project/specs-actors/pull/919)] **avoid prove commit aborts when sector lifetime <= 0**
* Miner: Sector activation at ProveCommit may allow proving expired/expiring sectors, leading to panic during cron tick
* Issue: [specs-actors/#795](https://github.com/filecoin-project/specs-actors/issues/795)
* [[specs-actors/#924](https://github.com/filecoin-project/specs-actors/pull/924)] **Small cleanups**
* Deadline: Avoid modifying ExpirationsEpochs if there are no rescheduled partitions
* Issue: [specs-actors/#916](https://github.com/filecoin-project/specs-actors/issues/916)
* Miner: Reconcile differences in pledgeDelta arithmetics
* Issue: [specs-actors/#917](https://github.com/filecoin-project/specs-actors/issues/917)
* [[specs-actors/#939](https://github.com/filecoin-project/specs-actors/pull/939)] **VerifReg: Resolve Verifier and Client Addresses**
* Verified Registry needs to resolve addresses
* ~~Issue: [specs-actors/#729](https://github.com/filecoin-project/specs-actors/issues/729)~~
* Issue: [specs-actors/#566](https://github.com/filecoin-project/specs-actors/issues/556)
* Multisig, verifreg, paych actors create accounts that don't already exist
* Issue: [specs-actors/#730](https://github.com/filecoin-project/specs-actors/issues/730)
* [[specs-actors/#940](https://github.com/filecoin-project/specs-actors/pull/940)] **Payment Channel: Create ID accounts if they do not exist**
* Multisig, verifreg, paych actors create accounts that don't already exist
* Issue: [specs-actors/#730](https://github.com/filecoin-project/specs-actors/issues/730)
* [[specs-actors/#984](https://github.com/filecoin-project/specs-actors/pull/984)] **Miner: Limit max number of partitions per deadline**
* Miner: Limit max number of partitions per deadline
* Issue: [specs-actors/#945](https://github.com/filecoin-project/specs-actors/issues/945)
* [[specs-actors/#998](https://github.com/filecoin-project/specs-actors/pull/998)] **Miner: Limit control addresses**
* Miner: Limit size of ControlAddresses slice
* Issue: [specs-actors/#977](https://github.com/filecoin-project/specs-actors/issues/977)
* [[specs-actors/#1004](https://github.com/filecoin-project/specs-actors/pull/1004)] **IP accounting refactor**
* Miner: Treat initial pledge like precommit deposits
* Issue: [specs-actors/#1007](https://github.com/filecoin-project/specs-actors/issues/1007)
* Miner.PenalizeFundsInPriorityOrder: account for fromVesting greater than target
* Issue: [specs-actors/#1003](https://github.com/filecoin-project/specs-actors/issues/1003)
* [[specs-actors/#1009](https://github.com/filecoin-project/specs-actors/pull/1009)] **Refactor deadline handling**
* Miner: reduce operations performed in handleProvingDeadline where possible
* Issue: [specs-actors/#983](https://github.com/filecoin-project/specs-actors/issues/983)
* [[specs-actors/#1042](https://github.com/filecoin-project/specs-actors/pull/1042)] **Explicitly specify whether or not faults were added in RecordSkippedFaults**
* Miner: If a PoSt submission skips ONLY unproven sectors, the partition is not added to the deadline's ExpirationsEpochs
* Issue: [specs-actors/#1040](https://github.com/filecoin-project/specs-actors/issues/1040)
* [[specs-actors/#1050](https://github.com/filecoin-project/specs-actors/pull/1050)] **Remove change worker cron and add confirm update worker key method**
* Miner: Remove ChangeWorkerAddress reliance on cron
* Issue: [specs-actors/#982](https://github.com/filecoin-project/specs-actors/issues/982)
* Limit Miner.ChangeWorkerAddress to avoid cron event queue load
* Issue: [specs-actors/#806](https://github.com/filecoin-project/specs-actors/issues/806)
* [[specs-actors/#1073](https://github.com/filecoin-project/specs-actors/pull/1073)] **swap order of batch proof verifies and deferred cron events**
* Power: Process batch proof verifications before deferred cron events
* Issue: [specs-actors/#909](https://github.com/filecoin-project/specs-actors/issues/909)
* [[specs-actors/#1089](https://github.com/filecoin-project/specs-actors/pull/1089)] **abort consensus fault reports when miner is already under fault**
* Miner: Verify that duplicate submissions of consensus faults are not processed
* Issue: [specs-actors/#1008](https://github.com/filecoin-project/specs-actors/issues/1008)
* [[specs-actors/#1092](https://github.com/filecoin-project/specs-actors/pull/1092)] **Feat/delete miner claim after cron failure**
* Power: Explicitly delete miner claim on failing cron callback
* Issue: [specs-actors/#1056](https://github.com/filecoin-project/specs-actors/issues/1056)
### Issue closed
* Verifreg.UseBytes: `newVcCap` is permanently lost if it's smaller than `MinVerifiedDealSize`
* Issue: [specs-actors/#727](https://github.com/filecoin-project/specs-actors/issues/727)
* Power.OnConsensusFault: Assert `pledgeAmount` is non-negative
* Issue: [specs-actors/#764](https://github.com/filecoin-project/specs-actors/issues/764)
* Miner.ReportConsensusFault: possible incorrect constraints on faultAge
* Issue: [specs-actors/#801](https://github.com/filecoin-project/specs-actors/issues/801)
* Miner control functions should abort on no-op
* Issue: [specs-actors/#803](https://github.com/filecoin-project/specs-actors/issues/803)
* Miner control functions should abort for empty params
* Issue: [specs-actors/#804](https://github.com/filecoin-project/specs-actors/issues/804)
* Miner: Remove references to variable seal proof types
* Issue: [specs-actors/#903](https://github.com/filecoin-project/specs-actors/issues/903)
* Miner: bubble up error in processEarlyTerminations
* Issue: [specs-actors/#918](https://github.com/filecoin-project/specs-actors/issues/918)
* Miner: Remove state.Transaction where not needed
* Issue: [specs-actors/#955](https://github.com/filecoin-project/specs-actors/issues/955)
* Miner: Correct for potential overflow when iterating over multiaddresses
* Issue: [specs-actors/#978](https://github.com/filecoin-project/specs-actors/issues/978)