feat: proving: Introduce manual sector fault recovery (#9144)
* rebase * fix lint error * fix errors * add itest * make gen after rebase * apply suggestion from review * make gen after latest rebase * gen after rebase * fix waitgroup * change as per review * refactor Recovery Batches * fix CLI * gen after rebase * close the channel
This commit is contained in:
@@ -1323,6 +1323,27 @@ func (sm *StorageMinerAPI) ComputeProof(ctx context.Context, ssi []builtin.Exten
|
||||
return sm.Epp.ComputeProof(ctx, ssi, rand, poStEpoch, nv)
|
||||
}
|
||||
|
||||
func (sm *StorageMinerAPI) RecoverFault(ctx context.Context, sectors []abi.SectorNumber) ([]cid.Cid, error) {
|
||||
allsectors, err := sm.Miner.ListSectors()
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("could not get a list of all sectors from the miner: %w", err)
|
||||
}
|
||||
var found bool
|
||||
for _, v := range sectors {
|
||||
found = false
|
||||
for _, s := range allsectors {
|
||||
if v == s.SectorNumber {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
return nil, xerrors.Errorf("sectors %d not found in the sector list for miner", v)
|
||||
}
|
||||
}
|
||||
return sm.WdPoSt.ManualFaultRecovery(ctx, sm.Miner.Address(), sectors)
|
||||
}
|
||||
|
||||
func (sm *StorageMinerAPI) RuntimeSubsystems(context.Context) (res api.MinerSubsystems, err error) {
|
||||
return sm.EnabledSubsystems, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user