Skip to content

Commit ec0da08

Browse files
authored
improve reputation score, ColdInfo enabled flag, fixes (textileio#476)
* improve reputation score, enabled coldconfig flag, fixes Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com> * fix build Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com> * improve parallelizability of tests Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com> * change to switch statement Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
1 parent 17f2dc9 commit ec0da08

9 files changed

Lines changed: 385 additions & 360 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ docs-pow:
2121
.PHONY: docs-pow
2222

2323
test:
24-
go test -short -parallel 4 -race -timeout 30m ./...
24+
go test -short -parallel 8 -race -timeout 30m ./...
2525
.PHONY: test
2626

2727
clean-protos:

deals/deals_test.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,19 @@ func waitForDealComplete(client *apistruct.FullNodeStruct, deals []cid.Cid) erro
144144
finished[d] = struct{}{}
145145
continue
146146
}
147-
if di.State != storagemarket.StorageDealUnknown &&
148-
di.State != storagemarket.StorageDealProposalAccepted &&
149-
di.State != storagemarket.StorageDealStaged &&
150-
di.State != storagemarket.StorageDealValidating &&
151-
di.State != storagemarket.StorageDealClientFunding &&
152-
di.State != storagemarket.StorageDealPublish &&
153-
di.State != storagemarket.StorageDealPublishing &&
154-
di.State != storagemarket.StorageDealSealing {
147+
switch di.State {
148+
case
149+
storagemarket.StorageDealUnknown,
150+
storagemarket.StorageDealWaitingForDataRequest,
151+
storagemarket.StorageDealProposalAccepted,
152+
storagemarket.StorageDealStaged,
153+
storagemarket.StorageDealValidating,
154+
storagemarket.StorageDealClientFunding,
155+
storagemarket.StorageDealPublish,
156+
storagemarket.StorageDealPublishing,
157+
storagemarket.StorageDealSealing:
158+
default:
159+
155160
return fmt.Errorf("unexpected deal state: %s", storagemarket.DealStates[di.State])
156161
}
157162
}

ffs/rpc/rpc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,8 +728,10 @@ func toRPCCidInfo(info ffs.CidInfo) *CidInfo {
728728
},
729729
},
730730
Cold: &ColdInfo{
731+
Enabled: info.Cold.Enabled,
731732
Filecoin: &FilInfo{
732733
DataCid: info.Cold.Filecoin.DataCid.String(),
734+
Size: info.Cold.Filecoin.Size,
733735
Proposals: make([]*FilStorage, len(info.Cold.Filecoin.Proposals)),
734736
},
735737
},

ffs/rpc/rpc.pb.go

Lines changed: 353 additions & 343 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ffs/rpc/rpc.proto

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,13 @@ message FilStorage {
7878

7979
message FilInfo {
8080
string data_cid = 1;
81-
int64 size = 2;
81+
uint64 size = 2;
8282
repeated FilStorage proposals = 3;
8383
}
8484

8585
message ColdInfo {
86-
FilInfo filecoin = 1;
86+
bool enabled = 1;
87+
FilInfo filecoin = 2;
8788
}
8889

8990
message CidInfo {

ffs/scheduler/scheduler.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -644,11 +644,14 @@ func (s *Scheduler) executeColdStorage(ctx context.Context, curr ffs.CidInfo, cf
644644
}
645645

646646
// At least 1 of the proposal deals reached a successful final status.
647-
return ffs.ColdInfo{Filecoin: ffs.FilInfo{
648-
DataCid: curr.Cid,
649-
Size: size,
650-
Proposals: append(okDeals, curr.Cold.Filecoin.Proposals...), // Append to any existing other proposals
651-
}}, allErrors, nil
647+
return ffs.ColdInfo{
648+
Enabled: true,
649+
Filecoin: ffs.FilInfo{
650+
DataCid: curr.Cid,
651+
Size: size,
652+
Proposals: append(okDeals, curr.Cold.Filecoin.Proposals...), // Append to any existing other proposals
653+
},
654+
}, allErrors, nil
652655
}
653656

654657
func (s *Scheduler) waitForDeals(ctx context.Context, c cid.Cid, startedProposals []cid.Cid) ([]ffs.FilStorage, []ffs.DealError) {
@@ -676,6 +679,7 @@ func (s *Scheduler) waitForDeals(ctx context.Context, c cid.Cid, startedProposal
676679
lock.Lock()
677680
failedDeals = append(failedDeals, dealError)
678681
lock.Unlock()
682+
return
679683
}
680684
lock.Lock()
681685
okDeals = append(okDeals, res)

ffs/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,7 @@ type IpfsHotInfo struct {
374374
// ColdInfo contains information about the current storage state
375375
// of a Cid in the cold layer.
376376
type ColdInfo struct {
377+
Enabled bool
377378
Filecoin FilInfo
378379
}
379380

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,7 +1544,9 @@ github.com/urfave/cli/v2 v2.0.0 h1:+HU9SCbu8GnEUFtIBfuUNXN39ofWViIEJIp6SURMpCg=
15441544
github.com/urfave/cli/v2 v2.0.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
15451545
github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4=
15461546
github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
1547+
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
15471548
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
1549+
github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8=
15481550
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
15491551
github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU=
15501552
github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=

reputation/reputation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ func calculateScore(addr string, mi miner.IndexSnapshot, si faults.IndexSnapshot
252252
askScore = 1
253253
}
254254

255-
score := 50*faultsScore + 20*powerScore + 20*externalScore + 10*askScore
255+
score := 50*faultsScore + 20*powerScore + 20*externalScore + 10*askScore + 1000*float64(miner.ActiveDeals)
256256
return MinerScore{
257257
Addr: addr,
258258
Score: int(score),

0 commit comments

Comments
 (0)