Skip to content

Commit ef9fde8

Browse files
committedJun 20, 2024
add a param to rpc method , let it support niporep #1086
1 parent 60b8856 commit ef9fde8

File tree

6 files changed

+31
-25
lines changed

6 files changed

+31
-25
lines changed
 

‎damocles-manager/core/api.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ type SealerAPI interface {
5151

5252
SubmitPersistedEx(ctx context.Context, sid abi.SectorID, instanceName string, isUpgrade bool) (bool, error)
5353

54-
WaitSeed(context.Context, abi.SectorID) (WaitSeedResp, error)
54+
WaitSeed(context.Context, abi.SectorID, abi.RegisteredSealProof) (WaitSeedResp, error)
5555

5656
SubmitProof(context.Context, abi.SectorID, ProofOnChainInfo, bool) (SubmitProofResp, error)
5757

‎damocles-manager/modules/impl/mock/sealer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ func (s *Sealer) PollPreCommitState(ctx context.Context, sid abi.SectorID) (core
117117
return s.commit.PreCommitState(ctx, sid)
118118
}
119119

120-
func (s *Sealer) WaitSeed(ctx context.Context, sid abi.SectorID) (core.WaitSeedResp, error) {
120+
func (s *Sealer) WaitSeed(ctx context.Context, sid abi.SectorID, proofType abi.RegisteredSealProof) (core.WaitSeedResp, error) {
121121
seed, err := s.rand.GetSeed(ctx, types.EmptyTSK, 0, sid.Miner)
122122
if err != nil {
123123
return core.WaitSeedResp{}, err

‎damocles-manager/modules/sealer/sealer.go

+24-20
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ func (s *Sealer) SubmitPersistedEx(
338338
return true, nil
339339
}
340340

341-
func (s *Sealer) WaitSeed(ctx context.Context, sid abi.SectorID) (core.WaitSeedResp, error) {
341+
func (s *Sealer) WaitSeed(ctx context.Context, sid abi.SectorID, proofType abi.RegisteredSealProof) (core.WaitSeedResp, error) {
342342
maddr, err := address.NewIDAddress(uint64(sid.Miner))
343343
if err != nil {
344344
return core.WaitSeedResp{}, err
@@ -348,29 +348,33 @@ func (s *Sealer) WaitSeed(ctx context.Context, sid abi.SectorID) (core.WaitSeedR
348348
if err != nil {
349349
return core.WaitSeedResp{}, err
350350
}
351-
352351
tsk := ts.Key()
353-
pci, err := s.capi.StateSectorPreCommitInfo(ctx, maddr, sid.Number, tsk)
354-
if err != nil {
355-
return core.WaitSeedResp{}, err
356-
}
357-
if pci == nil {
358-
return core.WaitSeedResp{}, fmt.Errorf("precommit info not found on chain. sid: %s", util.FormatSectorID(sid))
359-
}
360-
361352
curEpoch := ts.Height()
362-
// TODO: remove this guard
353+
var seedEpoch abi.ChainEpoch
354+
if proofType.IsNonInteractive() {
355+
seedEpoch = curEpoch - 1
356+
} else {
363357

364-
seedEpoch := pci.PreCommitEpoch + policy.GetPreCommitChallengeDelay()
365-
confEpoch := seedEpoch + policy.InteractivePoRepConfidence
366-
if curEpoch < confEpoch {
367-
return core.WaitSeedResp{
368-
ShouldWait: true,
369-
Delay: int(confEpoch-curEpoch) * int(policy.NetParams.BlockDelaySecs),
370-
Seed: nil,
371-
}, nil
372-
}
358+
pci, err := s.capi.StateSectorPreCommitInfo(ctx, maddr, sid.Number, tsk)
359+
if err != nil {
360+
return core.WaitSeedResp{}, err
361+
}
362+
if pci == nil {
363+
return core.WaitSeedResp{}, fmt.Errorf("precommit info not found on chain. sid: %s", util.FormatSectorID(sid))
364+
}
373365

366+
// TODO: remove this guard
367+
368+
seedEpoch = pci.PreCommitEpoch + policy.GetPreCommitChallengeDelay()
369+
confEpoch := seedEpoch + policy.InteractivePoRepConfidence
370+
if curEpoch < confEpoch {
371+
return core.WaitSeedResp{
372+
ShouldWait: true,
373+
Delay: int(confEpoch-curEpoch) * int(policy.NetParams.BlockDelaySecs),
374+
Seed: nil,
375+
}, nil
376+
}
377+
}
374378
seed, err := s.rand.GetSeed(ctx, tsk, seedEpoch, sid.Miner)
375379
if err != nil {
376380
return core.WaitSeedResp{}, err

‎damocles-worker/src/rpc/sealer/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ pub trait Sealer {
532532

533533
/// api definition
534534
#[rpc(name = "Venus.WaitSeed")]
535-
fn wait_seed(&self, id: SectorID) -> Result<WaitSeedResp>;
535+
fn wait_seed(&self, id: SectorID, proof_type: SealProof) -> Result<WaitSeedResp>;
536536

537537
/// api definition
538538
#[rpc(name = "Venus.SubmitProof")]

‎damocles-worker/src/sealing/sealing_thread/planner/niporep.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,11 @@ impl<'t> NiPoRep<'t> {
239239

240240
fn handle_persistance_submitted(&self) -> Result<Event, Failure> {
241241
let sector_id = self.task.sector_id()?;
242+
let proof_type = self.task.sector_proof_type()?;
242243

243244
let seed = loop {
244245
let wait = call_rpc! {
245-
self.task.rpc()=>wait_seed(sector_id.clone(), )
246+
self.task.rpc()=>wait_seed(sector_id.clone(), proof_type.clone(),)
246247
}?;
247248

248249
if let Some(seed) = wait.seed {

‎damocles-worker/src/sealing/sealing_thread/planner/sealer.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -415,10 +415,11 @@ impl<'t> Sealer<'t> {
415415

416416
fn handle_persistance_submitted(&self) -> Result<Event, Failure> {
417417
let sector_id = self.task.sector_id()?;
418+
let proof_type = self.task.sector_proof_type()?;
418419

419420
let seed = loop {
420421
let wait = call_rpc! {
421-
self.task.rpc()=>wait_seed(sector_id.clone(), )
422+
self.task.rpc()=>wait_seed(sector_id.clone(), proof_type.clone(),)
422423
}?;
423424

424425
if let Some(seed) = wait.seed {

0 commit comments

Comments
 (0)