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 |
|
N/A |
N/A |
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.
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.
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.
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.
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.
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 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.
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.
Removing the ProveCommitAggregate
method from the miner actor does not have any direct impact on the incentive mechanisms in the Filecoin protocol.
Once the deprecated ProveCommitAggregate
method is removed, users and developers will experience a cleaner and slightly less confusing system.
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.
- 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 and related rights waived via CC0.