Skip to content

Commit d493d54

Browse files
committed
set deadline for niporep sectors #1086
1 parent 316b4b6 commit d493d54

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

damocles-manager/modules/config.go

+4
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,8 @@ type MinerSealingConfig struct {
591591
RequireNotificationSuccessUpdate bool
592592

593593
UseSyntheticPoRep bool
594+
595+
SealingSectorDeadlineDelayNi uint64
594596
}
595597

596598
func defaultMinerSealingConfig() MinerSealingConfig {
@@ -611,6 +613,8 @@ func defaultMinerSealingConfig() MinerSealingConfig {
611613
RequireNotificationSuccessUpdate: false,
612614

613615
UseSyntheticPoRep: false,
616+
617+
SealingSectorDeadlineDelayNi: 6,
614618
}
615619
}
616620

damocles-manager/modules/impl/commitmgr/commit_processor.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -467,12 +467,19 @@ func (c CommitProcessor) ProcessNiPoRep(
467467
sort.Slice(actInfos, func(i, j int) bool {
468468
return actInfos[i].SealingNumber < actInfos[j].SealingNumber
469469
})
470+
deadline, err := getProvingDeadline(ctx, c.api, mid, tok)
471+
if err != nil {
472+
return fmt.Errorf("get miner proving deadline for %d: %w", mid, err)
473+
}
474+
475+
// avoid to use current or next deadline
476+
deadline = (deadline + mcfg.Sealing.SealingSectorDeadlineDelayNi) % miner.WPoStPeriodDeadlines
470477

471478
params := &miner14.ProveCommitSectorsNIParams{
472479
Sectors: actInfos,
473480
SealProofType: sectorsMap[infos[0].Number].SectorType,
474481
AggregateProofType: arp,
475-
ProvingDeadline: 7,
482+
ProvingDeadline: deadline,
476483
RequireActivationSuccess: true,
477484
}
478485

damocles-manager/modules/impl/commitmgr/params.go

+18
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,21 @@ func getSectorCollateralNiPoRep(
144144
}
145145
return collateral, nil
146146
}
147+
148+
func getProvingDeadline(
149+
ctx context.Context,
150+
stateMgr SealingAPI,
151+
mid abi.ActorID,
152+
tok core.TipSetToken,
153+
) (uint64, error) {
154+
maddr, err := address.NewIDAddress(uint64(mid))
155+
if err != nil {
156+
return 0, fmt.Errorf("invalid miner actor id: %w", err)
157+
}
158+
159+
info, err := stateMgr.StateMinerProvingDeadline(ctx, maddr, tok)
160+
if err != nil {
161+
return 0, fmt.Errorf("getting miner proving deadline: %w", err)
162+
}
163+
return info.Index, nil
164+
}

0 commit comments

Comments
 (0)