Skip to content

Commit b3ca3c8

Browse files
committed
enable fastretrieval configuration
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
1 parent 8e3ece4 commit b3ca3c8

9 files changed

Lines changed: 519 additions & 489 deletions

File tree

api/client/ffs.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,7 @@ func fromRPCStorageConfig(config *rpc.StorageConfig) ffs.StorageConfig {
679679
TrustedMiners: config.Cold.Filecoin.TrustedMiners,
680680
Addr: config.Cold.Filecoin.Addr,
681681
MaxPrice: config.Cold.Filecoin.MaxPrice,
682+
FastRetrieval: config.Cold.Filecoin.FastRetrieval,
682683
}
683684
if config.Cold.Filecoin.Renew != nil {
684685
ret.Cold.Filecoin.Renew = ffs.FilRenew{

deals/module/deals.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ func (m *Module) Store(ctx context.Context, waddr string, dataCid cid.Cid, piece
137137
EpochPrice: big.Div(big.Mul(big.NewIntUnsigned(c.EpochPrice), big.NewIntUnsigned(pieceSize)), abi.NewTokenAmount(1<<30)),
138138
Miner: maddr,
139139
Wallet: addr,
140+
FastRetrieval: c.FastRetrieval,
140141
}
141142
p, err := lapi.ClientStartDeal(ctx, params)
142143
if err != nil {

deals/types.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import (
66

77
// StorageDealConfig contains information about a storage proposal for a miner.
88
type StorageDealConfig struct {
9-
Miner string
10-
EpochPrice uint64
9+
Miner string
10+
EpochPrice uint64
11+
FastRetrieval bool
1112
}
1213

1314
// StoreResult contains information about Executing deals.

ffs/filcold/filcold.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,10 @@ func (fc *FilCold) EnsureRenewals(ctx context.Context, c cid.Cid, inf ffs.FilInf
173173

174174
func (fc *FilCold) renewDeal(ctx context.Context, c cid.Cid, size uint64, p ffs.FilStorage, fcfg ffs.FilConfig) (ffs.FilStorage, error) {
175175
f := ffs.MinerSelectorFilter{
176-
TrustedMiners: []string{p.Miner},
177-
MaxPrice: fcfg.MaxPrice,
176+
ExcludedMiners: fcfg.ExcludedMiners,
177+
CountryCodes: fcfg.CountryCodes,
178+
TrustedMiners: []string{p.Miner},
179+
MaxPrice: fcfg.MaxPrice,
178180
}
179181
dealConfig, err := makeDealConfigs(fc.ms, 1, f)
180182
if err != nil {
@@ -316,14 +318,14 @@ func (fc *FilCold) getLinks(ctx context.Context, c cid.Cid) ([]*format.Link, err
316318
return fc.ipfs.Object().Links(ctx, path.IpfsPath(c))
317319
}
318320

319-
func makeDealConfigs(ms ffs.MinerSelector, cntMiners int, f ffs.MinerSelectorFilter) ([]deals.StorageDealConfig, error) {
321+
func makeDealConfigs(ms ffs.MinerSelector, cntMiners int, f ffs.MinerSelectorFilter, fastRetrieval bool) ([]deals.StorageDealConfig, error) {
320322
mps, err := ms.GetMiners(cntMiners, f)
321323
if err != nil {
322324
return nil, fmt.Errorf("getting miners from minerselector: %s", err)
323325
}
324326
res := make([]deals.StorageDealConfig, len(mps))
325327
for i, m := range mps {
326-
res[i] = deals.StorageDealConfig{Miner: m.Addr, EpochPrice: m.EpochPrice}
328+
res[i] = deals.StorageDealConfig{Miner: m.Addr, EpochPrice: m.EpochPrice, FastRetrieval: fastRetrieval}
327329
}
328330
return res, nil
329331
}

ffs/manager/manager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ var (
4242
RepFactor: 5,
4343
TrustedMiners: []string{"t016303", "t016304", "t016305", "t016306", "t016309"},
4444
DealMinDuration: util.MinDealDuration,
45+
FastRetrieval: true,
4546
},
4647
},
4748
}

ffs/rpc/rpc.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,8 +639,9 @@ func toRPCColdConfig(config ffs.ColdConfig) *ColdConfig {
639639
Enabled: config.Filecoin.Renew.Enabled,
640640
Threshold: int64(config.Filecoin.Renew.Threshold),
641641
},
642-
Addr: config.Filecoin.Addr,
643-
MaxPrice: config.Filecoin.MaxPrice,
642+
Addr: config.Filecoin.Addr,
643+
MaxPrice: config.Filecoin.MaxPrice,
644+
FastRetrieval: config.Filecoin.FastRetrieval,
644645
},
645646
}
646647
}
@@ -689,6 +690,7 @@ func fromRPCColdConfig(config *ColdConfig) ffs.ColdConfig {
689690
TrustedMiners: config.Filecoin.TrustedMiners,
690691
Addr: config.Filecoin.Addr,
691692
MaxPrice: config.Filecoin.MaxPrice,
693+
FastRetrieval: config.Filecoin.FastRetrieval,
692694
}
693695
if config.Filecoin.Renew != nil {
694696
renew := ffs.FilRenew{

ffs/rpc/rpc.pb.go

Lines changed: 492 additions & 481 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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ message FilConfig {
3636
FilRenew renew = 6;
3737
string addr = 7;
3838
uint64 max_price = 8;
39+
bool fast_retrieval = 9;
3940
}
4041

4142
message ColdConfig {

ffs/types.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,13 @@ func (s StorageConfig) WithColdMaxPrice(maxPrice uint64) StorageConfig {
165165
return s
166166
}
167167

168+
// WithFastRetrieval specifies if deal fast retrieval flag on new deals
169+
// is enabled.
170+
func (s StorageConfig) WithFastRetrieval(enabled bool) StorageConfig {
171+
s.Cold.Filecoin.FastRetrieval = enabled
172+
return s
173+
}
174+
168175
// WithColdAddr specifies the wallet address that should be used for transactions.
169176
func (s StorageConfig) WithColdAddr(addr string) StorageConfig {
170177
s.Cold.Filecoin.Addr = addr
@@ -291,6 +298,9 @@ type FilConfig struct {
291298
Addr string
292299
// MaxPrice is the maximum price that will be spent to store the data
293300
MaxPrice uint64
301+
// FastRetrieval indicates that created deals should enable the
302+
// fast retrieval feature.
303+
FastRetrieval bool
294304
}
295305

296306
// Validate returns a non-nil error if the configuration is invalid.

0 commit comments

Comments
 (0)