Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: sector-added in miner_sector_event #1315

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions tasks/actorstate/market/deal_state.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,6 @@ func (DealStateExtractor) Extract(ctx context.Context, a actorstate.ActorInfo, n
return out, nil
}

changed, err := ec.CurrState.StatesChanged(ec.PrevState)
if err != nil {
return nil, fmt.Errorf("checking for deal state changes: %w", err)
}

if !changed {
return nil, nil
}

changes, err := market.DiffDealStates(ctx, ec.Store, ec.PrevState, ec.CurrState)
if err != nil {
return nil, fmt.Errorf("diffing deal states: %w", err)
Expand Down
8 changes: 8 additions & 0 deletions tasks/messages/parsedmessage/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,14 @@ func (t *Task) ProcessTipSets(ctx context.Context, current *types.TipSet, execut
Method: method,
Params: params,
}

sectorIds, err := parseParamsInDetail(method, params)
if err != nil {
log.Errorf("method: %v, params: %v, error: %v", method, params, err)
}
if len(sectorIds) > 0 {
log.Infof("method: %v, params: %v, sector_ids: %v", method, params, sectorIds)
}
parsedMessageResults = append(parsedMessageResults, pm)
}
}
Expand Down
85 changes: 85 additions & 0 deletions tasks/messages/parsedmessage/util.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
package parsedmessage

import (
"encoding/json"

// Other necessary imports, possibly including types from the Lily project

minertypes "github.com/filecoin-project/go-state-types/builtin/v14/miner"
)

type SectorNumber struct {
Elemcount int64
Rle []uint64
}

type ProveCommitAggregateParams struct {
AggregateProof []byte
SectorNumbers SectorNumber
}

func decodeRLE(rle []uint64) []uint64 {
result := make([]uint64, 0)
current := uint64(0)

for i, count := range rle {
if i%2 == 1 { // Odd indices represent runs of 1s
for j := uint64(0); j < count; j++ {
result = append(result, current+j)
}
}
current += count
}

return result
}

func parseParamsInDetail(method string, params string) ([]uint64, error) {
sectorNumbers := []uint64{}

switch method {
case "ProveCommitAggregate":
var aggregateParams ProveCommitAggregateParams
if err := json.Unmarshal([]byte(params), &aggregateParams); err != nil {
return sectorNumbers, err
}
// Assuming AggregateProveCommitParams has a field SectorNumbers which is a slice
sectorNumbers = decodeRLE(aggregateParams.SectorNumbers.Rle)

case "ProveCommitSector":
var sectorParams minertypes.ProveCommitSectorParams
if err := json.Unmarshal([]byte(params), &sectorParams); err != nil {
return sectorNumbers, err
}
sectorNumbers = []uint64{uint64(sectorParams.SectorNumber)}

case "ProveCommitSectors3":
var sectors3Params minertypes.ProveCommitSectors3Params
if err := json.Unmarshal([]byte(params), &sectors3Params); err != nil {
return sectorNumbers, err
}
// Assuming ProveCommitSectors3Params has a field SectorNumbers which is a slice
if len(sectors3Params.SectorActivations) > 0 {
for _, sector := range sectors3Params.SectorActivations {
sectorNumbers = append(sectorNumbers, uint64(sector.SectorNumber))
}
}

case "ProveCommitSectorsNI":
var sectorsNIParams minertypes.ProveCommitSectorsNIParams
if err := json.Unmarshal([]byte(params), &sectorsNIParams); err != nil {
return sectorNumbers, err
}
// Assuming ProveCommitSectorsNIParams has a field SectorNumbers which is a slice
if len(sectorsNIParams.Sectors) > 0 {
for _, sector := range sectorsNIParams.Sectors {
sectorNumbers = append(sectorNumbers, uint64(sector.SealerID))
}
}

default:
return sectorNumbers, nil
}

return sectorNumbers, nil
}
5 changes: 5 additions & 0 deletions tasks/messages/receipt/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"fmt"

"github.com/ipfs/go-cid"
logging "github.com/ipfs/go-log/v2"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"

Expand All @@ -18,6 +19,8 @@ import (
"github.com/filecoin-project/lotus/chain/types"
)

var log = logging.Logger("lily/tasks/receipt")

type Task struct {
node tasks.DataSource
}
Expand Down Expand Up @@ -96,6 +99,8 @@ func (t *Task) ProcessTipSets(ctx context.Context, current *types.TipSet, execut
parsedReturn, _, err := util.ParseReturn(rec.Return, msg.VMMessage().Method, toCode)
if err == nil {
rcpt.ParsedReturn = parsedReturn
} else {
log.Errorf("got error during parsed_return: %v", err)
}
}
receiptResults = append(receiptResults, rcpt)
Expand Down