Skip to content

Remove FIP-0081 activation ramp code after November 21st 2025 #1687

@rvagg

Description

@rvagg

https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0081.md

This was activated in TukTuk which was epoch 4461240 (2024-11-20T23:00:00+00:00) and the activation ramp was set to 1 year. In the power actor state we have these which were added and set during the migration:

    /// FIP0081 changed pledge calculations, moving from ruleset A to ruleset B.
    /// This change is spread over several epochs to avoid sharp jumps in pledge
    /// amounts. At `ramp_start_epoch`, we use the old ruleset. At
    /// `ramp_start_epoch + ramp_duration_epochs`, we use 70% old rules + 30%
    /// new rules. See FIP0081 for more details.
    pub ramp_start_epoch: i64,
    /// Number of epochs over which the new pledge calculation is ramped up.
    pub ramp_duration_epochs: u64,

After 1 year, the ramp will be done and these constants will just be used to verify that the ramp is done. We have a bunch of places where we have to call in with current epoch and ramp duration where that will just be unnecessary extra (but very minor) work.

So after epoch 5512440 (2025-11-20T23:00:00+00:00) we have the opportunity, in a network upgrade, to remove this ramp logic. We would need another minor migration, however, and maybe this warrants either a FIP or an update to 0081 so we can record the what & why.

  • Remove these fields from the power actor and migrate back to the state struct that has 2 fewer fields
  • Simplify (and test!) the logic in initial_pledge_for_power (actors/miner/src/monies.rs) so it doesn't need ramp information, it just goes straight to the fully activated form
  • Remove all references to the ramp in calling code (git grep ramp_ | wc -l says there are 50)

go-state-types also has a mirror of this calculation in its own monies.go which can likewise be simplified and power actor lookups in Lotus (and Forest) that are required to calculate this can be removed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    📌 Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions