# `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)