From f0b75e0ab8a79def3ff49bf6c08debe1ce9b5681 Mon Sep 17 00:00:00 2001 From: simlecode <69969590+simlecode@users.noreply.github.com> Date: Fri, 28 Jun 2024 13:37:00 +0800 Subject: [PATCH] feat: remove ProveCommitSector --- .../impl/commitmgr/commit_processor.go | 94 +++---------------- 1 file changed, 12 insertions(+), 82 deletions(-) diff --git a/damocles-manager/modules/impl/commitmgr/commit_processor.go b/damocles-manager/modules/impl/commitmgr/commit_processor.go index 8ff56b5d..dc7e4b25 100644 --- a/damocles-manager/modules/impl/commitmgr/commit_processor.go +++ b/damocles-manager/modules/impl/commitmgr/commit_processor.go @@ -5,7 +5,6 @@ import ( "context" "fmt" "sort" - "sync" "time" "github.com/filecoin-project/go-address" @@ -14,6 +13,7 @@ import ( "github.com/filecoin-project/go-state-types/big" stbuiltin "github.com/filecoin-project/go-state-types/builtin" miner13 "github.com/filecoin-project/go-state-types/builtin/v13/miner" + "github.com/ipfs/go-cid" "github.com/filecoin-project/venus/venus-shared/actors/builtin/miner" @@ -24,7 +24,6 @@ import ( "github.com/ipfs-force-community/damocles/damocles-manager/modules" "github.com/ipfs-force-community/damocles/damocles-manager/modules/util/piece" chainapi "github.com/ipfs-force-community/damocles/damocles-manager/pkg/chain" - "github.com/ipfs-force-community/damocles/damocles-manager/pkg/logging" "github.com/ipfs-force-community/damocles/damocles-manager/pkg/messager" ) @@ -41,76 +40,6 @@ type CommitProcessor struct { prover core.Prover } -func (c CommitProcessor) processIndividually( - ctx context.Context, - sectors []core.SectorState, - from address.Address, - mid abi.ActorID, - plog *logging.ZapLogger, -) { - mcfg, err := c.config.MinerConfig(mid) - if err != nil { - plog.Errorf("get miner config for %d: %s", mid, err) - return - } - - wg := sync.WaitGroup{} - wg.Add(len(sectors)) - for i := range sectors { - go func(idx int) { - slog := plog.With("sector", sectors[idx].ID.Number) - - defer wg.Done() - - params := &miner.ProveCommitSectorParams{ - SectorNumber: sectors[idx].ID.Number, - Proof: sectors[idx].Proof.Proof, - } - - enc := new(bytes.Buffer) - if err := params.MarshalCBOR(enc); err != nil { - slog.Error("serialize commit sector parameters failed: ", err) - return - } - - tok, _, err := c.api.ChainHead(ctx) - if err != nil { - slog.Error("get chain head: ", err) - return - } - - collateral := big.Zero() - if mcfg.Commitment.Prove.SendFund { - collateral, err = getSectorCollateral(ctx, c.api, mid, sectors[idx].ID.Number, tok) - if err != nil { - slog.Error("get sector collateral failed: ", err) - return - } - } - - mcid, err := pushMessage( - ctx, - from, - mid, - collateral, - stbuiltin.MethodsMiner.ProveCommitSector, - c.msgClient, - &mcfg.Commitment.Prove.FeeConfig, - enc.Bytes(), - slog, - ) - if err != nil { - slog.Error("push commit single failed: ", err) - return - } - - sectors[idx].MessageInfo.CommitCid = &mcid - slog.Info("push commit success, cid: ", mcid) - }(i) - } - wg.Wait() -} - func (c CommitProcessor) Process( ctx context.Context, sectors []core.SectorState, @@ -143,7 +72,7 @@ func (c CommitProcessor) Process( return err } } - return c.ProcessV1(ctx, builtinMarketSectors, mid, ctrlAddr, tok, nv, aggregate) + return c.ProcessV1(ctx, builtinMarketSectors, mid, ctrlAddr, tok, nv) } func (c CommitProcessor) ProcessV1( @@ -153,7 +82,6 @@ func (c CommitProcessor) ProcessV1( ctrlAddr address.Address, tok core.TipSetToken, nv network.Version, - batch bool, ) error { // Notice: If a sector in sectors has been sent, it's cid failed should be changed already. plog := log.With("proc", "prove", "miner", mid, "ctrl", ctrlAddr.String(), "len", len(sectors)) @@ -163,11 +91,6 @@ func (c CommitProcessor) ProcessV1( defer updateSector(ctx, c.smgr, sectors, plog) - if !batch { - c.processIndividually(ctx, sectors, ctrlAddr, mid, plog) - return nil - } - mcfg, err := c.config.MinerConfig(mid) if err != nil { return fmt.Errorf("get miner config for %d: %w", mid, err) @@ -240,15 +163,22 @@ func (c CommitProcessor) ProcessV1( return fmt.Errorf("couldn't serialize ProveCommitAggregateParams: %w", err) } - ccid, err := pushMessage(ctx, ctrlAddr, mid, collateral, stbuiltin.MethodsMiner.ProveCommitAggregate, - c.msgClient, &mcfg.Commitment.Prove.Batch.FeeConfig, enc.Bytes(), plog) + var msgCID cid.Cid + if len(infos) == 1 { + msgCID, err = pushMessage(ctx, ctrlAddr, mid, collateral, stbuiltin.MethodsMiner.ProveCommitAggregate, + c.msgClient, &mcfg.Commitment.Prove.FeeConfig, enc.Bytes(), plog) + } else { + msgCID, err = pushMessage(ctx, ctrlAddr, mid, collateral, stbuiltin.MethodsMiner.ProveCommitAggregate, + c.msgClient, &mcfg.Commitment.Prove.Batch.FeeConfig, enc.Bytes(), plog) + } + if err != nil { return fmt.Errorf("push aggregate prove message failed: %w", err) } for i := range sectors { if _, ok := failed[sectors[i].ID]; !ok { - sectors[i].MessageInfo.CommitCid = &ccid + sectors[i].MessageInfo.CommitCid = &msgCID } }