Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 4.19 KB

fip-0101.md

File metadata and controls

66 lines (50 loc) · 4.19 KB
fip title author discussions-to status type category created spec-sections requires replaces
0101
Removal of the ProveCommitAggregate method from the miner actor
Rod Vagg (@rvagg)
Draft
Technical (Core)
Core
2025-02-05
2.9.25.63 Storage Power Actor
2.11.30 Sector
2.11.31 Storage Miner
2.12.35 Markets
4.19.59 Proof-of-Spacetime (PoSt)
N/A
N/A

FIP-0101: Removal of the ProveCommitAggregate method from the miner actor

Simple Summary

This FIP proposes the removal of the ProveCommitAggregate method (Method 26) from the miner actor as it is no longer actively used due to the introduction of ProveCommitSectors3, which offers the same functionality in a more flexible manner.

Abstract

The ProveCommitAggregate method was implemented for batch processing of pre-committed sectors using aggregate proofs. However, the subsequent introduction of ProveCommitSectors3 allows greater flexibility and efficiency in handling this task. Given that ProveCommitAggregate has been deprecated in practical use, it adds unnecessary complexity to the system and generates technical debt. This FIP proposes to remove this method from the miner actor to simplify the protocol.

Change Motivation

The main motivation behind this change is builtin actor cleanup and reduction of technical debt. It is always beneficial to remove unused parts of the system as it leads to simpler, more maintainable, and less error-prone code. The ProveCommitAggregate method is no longer necessary since ProveCommitSectors3 serves the same purpose more efficiently.

Specification

Implementation-wise, this change involves removing Method 26 (ProveCommitAggregate) from the miner actor, all associated helper methods that are not used by other methods and all tests that uniquely test its functionality.

Design Rationale

The decision to propose this change was made primarily because of the redundancy created by ProveCommitSectors3. Efficient and clean code being prioritised where possible over an ever-increase in complexity and potential for bugs.

Backwards Compatibility

This change will not introduce any backward incompatibilities, as the ProveCommitAggregate method is not actively used and its functionality is covered by ProveCommitSectors3. The author is unaware of any implementations that rely on ProveCommitAggregate and on-chain usage suggests there are none.

Test Cases

Test cases will need to ensure that ProveCommitSectors3 method is able to cover all the functionality previously offered by ProveCommitAggregate and that the system behaves normally following the removal of Method 26.

Care should be taken with the removal of ProveCommitAggregate tests to avoid removal of tests of other parts of the system that are not covered by other test cases. In this situation, tests should be reworked to use ProveCommitSectors3 to test the same functionality.

Security Considerations

This FIP doesn't alter any security features of Filecoin protocol, as it only involves the removal of a deprecated method. It does, however, reduce the attack surface area where there may exist previously unknown security bugs.

Incentive Considerations

Removing the ProveCommitAggregate method from the miner actor does not have any direct impact on the incentive mechanisms in the Filecoin protocol.

Product Considerations

Once the deprecated ProveCommitAggregate method is removed, users and developers will experience a cleaner and slightly less confusing system.

Implementation

As the implementation involves removal of a method from the current codebase, it is expected to be relatively straightforward and low-risk.

No migration is necessary.

Removal tasks

  • Remove ProveCommitAggregate method from the miner actor.
  • Ensure that tests for ProveCommitSectors3 effectively cover the same functionality.
  • Ensure that removal of tests previously covering ProveCommitAggregate doesn't result in an overall reduction in test coverage.
  • Ensure all systems behave normally with the removal of ProveCommitAggregate.

Copyright

Copyright and related rights waived via CC0.