Skip to content
This repository has been archived by the owner on Jun 6, 2023. It is now read-only.

[v0.9] Remove penalties on recovery and on missed PoSt (FIP-0002) #1181

Merged
merged 2 commits into from
Sep 24, 2020

Conversation

anorth
Copy link
Member

@anorth anorth commented Sep 24, 2020

Honest miners are sometimes disproportionately penalized for operational failures and network congestion by the high undeclared-fault penalty (aka SP) for missed Window PoSts. This change reduces those costs without sacrificing much of the incentive to maintain reliable storage.

Summary:

  • Remove fee incurred when a sector is successfully recovered.
  • Remove fee incurred by sectors faulted when a Window PoSt is missed.
  • Update Sector Fault Fee (FF) to 3.51 days of expected block reward, for ongoing faults.

As a result of this, declaring faults in advance confers no advantage compared with skipping them at Window PoSt. The DeclareFaults method remains, but may be removed in the future.

This change is a demonstration of upcoming FIP-0002, which will describe more background and rationale.

Note that the new values are not directly tested in this PR. I intend to replicate on the v2 line and change all the tests there. UPDATE: see #1183

FYI @Stebalien @magik6k @whyrusleeping @zixuanzh @nicola

@codecov-commenter
Copy link

codecov-commenter commented Sep 24, 2020

Codecov Report

Merging #1181 into release/v0.9 will decrease coverage by 0.0%.
The diff coverage is 76.1%.

@@              Coverage Diff               @@
##           release/v0.9   #1181     +/-   ##
==============================================
- Coverage          73.2%   73.2%   -0.1%     
==============================================
  Files                51      51             
  Lines              5450    5470     +20     
==============================================
+ Hits               3994    4006     +12     
- Misses              876     877      +1     
- Partials            580     587      +7     

@anorth anorth changed the title [v0.9] Remove penalties on recovery and on missed PoSt, reduce SP [v0.9] Remove penalties on recovery and on missed PoSt Sep 24, 2020
@zixuanzh
Copy link
Collaborator

ongoingFaultyPower := deadline.FaultyPower.QA
if networkVersion >= network.Version3 {
// From network version 3, this *excludes* any power that was just faulted from missing a PoSt.
ongoingFaultyPower = previouslyFaultyPower
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lucaniz @irenegia I looked over this again and it appears to be correct. previouslyFaultPower already accounts for failedRecoveryPower (we only handle failedRecoveryPower separately in the previous version because we used to charge this power SP). Another way to put it, the value of deadline.FaultyPower.QA at line 1683 after processing deadline end = previouslyFaultPower - newFaultyPower

Copy link
Contributor

@ZenGround0 ZenGround0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good

actors/builtin/miner/miner_actor.go Show resolved Hide resolved
@anorth anorth changed the title [v0.9] Remove penalties on recovery and on missed PoSt [v0.9] Remove penalties on recovery and on missed PoSt (FIP-0002) Sep 24, 2020
@anorth anorth merged commit b7f43e6 into release/v0.9 Sep 24, 2020
@anorth anorth deleted the anorth/09penalties branch September 24, 2020 23:23
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants