Skip to content

Commit

Permalink
feat: add any cmds of storage-market
Browse files Browse the repository at this point in the history
  • Loading branch information
ta0li committed Nov 17, 2022
1 parent bc93872 commit 9c32e76
Show file tree
Hide file tree
Showing 2 changed files with 198 additions and 22 deletions.
16 changes: 8 additions & 8 deletions api/impl/venus_market.go
Original file line number Diff line number Diff line change
Expand Up @@ -468,26 +468,26 @@ func (m *MarketNodeImpl) DealsSetMaxStartDelay(ctx context.Context, mAddr addres
return m.SetMaxDealStartDelayFunc(mAddr, duration)
}

func (m *MarketNodeImpl) MarketDataTransferPath(ctx context.Context, mAddr address.Address) (string, error) {
return m.TransferPathFunc(mAddr)
func (m *MarketNodeImpl) DealsPublishMsgPeriod(ctx context.Context, mAddr address.Address) (time.Duration, error) {
return m.PublishMsgPeriodConfigFunc(mAddr)
}

func (m *MarketNodeImpl) MarketDataSetTransferPath(ctx context.Context, mAddr address.Address, path string) error {
func (m *MarketNodeImpl) DealsSetPublishMsgPeriod(ctx context.Context, mAddr address.Address, duration time.Duration) error {
if err := m.permissionVerify(ctx, mAddr); err != nil {
return err
}
return m.SetTransferPathFunc(mAddr, path)
return m.SetPublishMsgPeriodConfigFunc(mAddr, duration)
}

func (m *MarketNodeImpl) DealsPublishMsgPeriod(ctx context.Context, mAddr address.Address) (time.Duration, error) {
return m.PublishMsgPeriodConfigFunc(mAddr)
func (m *MarketNodeImpl) MarketDataTransferPath(ctx context.Context, mAddr address.Address) (string, error) {
return m.TransferPathFunc(mAddr)
}

func (m *MarketNodeImpl) DealsSetPublishMsgPeriod(ctx context.Context, mAddr address.Address, duration time.Duration) error {
func (m *MarketNodeImpl) MarketDataSetTransferPath(ctx context.Context, mAddr address.Address, path string) error {
if err := m.permissionVerify(ctx, mAddr); err != nil {
return err
}
return m.SetPublishMsgPeriodConfigFunc(mAddr, duration)
return m.SetTransferPathFunc(mAddr, path)
}

func (m *MarketNodeImpl) MarketMaxDealsPerPublishMsg(ctx context.Context, mAddr address.Address) (uint64, error) {
Expand Down
204 changes: 190 additions & 14 deletions cli/market.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ import (
var storageDealSelectionCmd = &cli.Command{
Name: "selection",
Usage: "Configure acceptance criteria for storage deal proposals",
Flags: []cli.Flag{
minerFlag,
},
Subcommands: []*cli.Command{
storageDealSelectionShowCmd,
storageDealSelectionResetCmd,
Expand All @@ -49,9 +52,6 @@ var storageDealSelectionCmd = &cli.Command{
var storageDealSelectionShowCmd = &cli.Command{
Name: "list",
Usage: "List storage deal proposal selection criteria",
Flags: []cli.Flag{
minerFlag,
},
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
Expand All @@ -74,8 +74,20 @@ var storageDealSelectionShowCmd = &cli.Command{
return err
}

verifiedOk, err := smapi.DealsConsiderVerifiedStorageDeals(DaemonContext(cctx), mAddr)
if err != nil {
return err
}

unverifiedOk, err := smapi.DealsConsiderUnverifiedStorageDeals(DaemonContext(cctx), mAddr)
if err != nil {
return err
}

fmt.Printf("considering online storage deals: %t\n", onlineOk)
fmt.Printf("considering offline storage deals: %t\n", offlineOk)
fmt.Printf("considering verified storage deals: %t\n", verifiedOk)
fmt.Printf("considering unverified storage deals: %t\n", unverifiedOk)

return nil
},
Expand All @@ -84,9 +96,6 @@ var storageDealSelectionShowCmd = &cli.Command{
var storageDealSelectionResetCmd = &cli.Command{
Name: "reset",
Usage: "Reset storage deal proposal selection criteria to default values",
Flags: []cli.Flag{
minerFlag,
},
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
Expand Down Expand Up @@ -139,7 +148,6 @@ var storageDealSelectionRejectCmd = &cli.Command{
&cli.BoolFlag{
Name: "unverified",
},
minerFlag,
},
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
Expand Down Expand Up @@ -356,7 +364,9 @@ var StorageDealsCmd = &cli.Command{
setBlocklistCmd,
getBlocklistCmd,
resetBlocklistCmd,
setSealDurationCmd,
expectedSealDurationCmd,
maxDealStartDelayCmd,
dealsPublishMsgPeriodCmd,
dealsPendingPublish,
},
}
Expand Down Expand Up @@ -787,9 +797,110 @@ var resetBlocklistCmd = &cli.Command{
},
}

var setSealDurationCmd = &cli.Command{
var expectedSealDurationCmd = &cli.Command{
Name: "seal-duration",
Usage: "Configure the expected time, that you expect sealing sectors to take. Deals that start before this duration will be rejected.",
Flags: []cli.Flag{
minerFlag,
},
Subcommands: []*cli.Command{
expectedSealDurationGetCmd,
expectedSealDurationSetCmd,
},
}

var expectedSealDurationGetCmd = &cli.Command{
Name: "get",
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
return fmt.Errorf("invalid miner address: %w", err)
}

marketApi, closer, err := NewMarketNode(cctx)
if err != nil {
return err
}
defer closer()

ctx := ReqContext(cctx)
t, err := marketApi.SectorGetExpectedSealDuration(ctx, mAddr)
if err != nil {
return err
}
fmt.Println("seal-duration: ", t.String())
return nil
},
}

var expectedSealDurationSetCmd = &cli.Command{
Name: "set-seal-duration",
Usage: "Set the expected time, in minutes, that you expect sealing sectors to take. Deals that start before this duration will be rejected.",
Usage: "eg. '1m','30s',...",
ArgsUsage: "<duration>",
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
return fmt.Errorf("invalid miner address: %w", err)
}

marketApi, closer, err := NewMarketNode(cctx)
if err != nil {
return err
}
defer closer()
ctx := ReqContext(cctx)
if cctx.Args().Len() != 1 {
return fmt.Errorf("must pass duration")
}

d, err := time.ParseDuration(cctx.Args().Get(0))
if err != nil {
return fmt.Errorf("could not parse duration: %w", err)
}

return marketApi.SectorSetExpectedSealDuration(ctx, mAddr, d)
},
}

var maxDealStartDelayCmd = &cli.Command{
Name: "max-start-delay",
Usage: "Configure the maximum amount of time proposed deal StartEpoch can be in future.",
Flags: []cli.Flag{
minerFlag,
},
Subcommands: []*cli.Command{
maxDealStartDelayGetCmd,
maxDealStartDelaySetCmd,
},
}

var maxDealStartDelayGetCmd = &cli.Command{
Name: "get",
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
return fmt.Errorf("invalid miner address: %w", err)
}

marketApi, closer, err := NewMarketNode(cctx)
if err != nil {
return err
}
defer closer()

ctx := ReqContext(cctx)
t, err := marketApi.DealsMaxStartDelay(ctx, mAddr)
if err != nil {
return err
}
fmt.Println("max start delay: ", t.String())
return nil
},
}

var maxDealStartDelaySetCmd = &cli.Command{
Name: "set",
Usage: "eg. '1m','30s',...",
ArgsUsage: "<minutes>",
Flags: []cli.Flag{
minerFlag,
Expand All @@ -807,17 +918,82 @@ var setSealDurationCmd = &cli.Command{
defer closer()
ctx := ReqContext(cctx)
if cctx.Args().Len() != 1 {
return fmt.Errorf("must pass duration in minutes")
return fmt.Errorf("must pass duration")
}

hs, err := strconv.ParseUint(cctx.Args().Get(0), 10, 64)
delay, err := time.ParseDuration(cctx.Args().Get(0))
if err != nil {
return fmt.Errorf("could not parse duration: %w", err)
}

delay := hs * uint64(time.Minute)
return marketApi.DealsSetMaxStartDelay(ctx, mAddr, delay)
},
}

var dealsPublishMsgPeriodCmd = &cli.Command{
Name: "max-start-delay",
Usage: "Configure the the amount of time to wait for more deals to be ready to publish before publishing them all as a batch.",
Flags: []cli.Flag{
minerFlag,
},
Subcommands: []*cli.Command{
dealsPublishMsgPeriodGetCmd,
dealsPublishMsgPeriodSetCmd,
},
}

var dealsPublishMsgPeriodGetCmd = &cli.Command{
Name: "get",
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
return fmt.Errorf("invalid miner address: %w", err)
}

marketApi, closer, err := NewMarketNode(cctx)
if err != nil {
return err
}
defer closer()

ctx := ReqContext(cctx)
t, err := marketApi.DealsPublishMsgPeriod(ctx, mAddr)
if err != nil {
return err
}
fmt.Println("publish msg period: ", t.String())
return nil
},
}

var dealsPublishMsgPeriodSetCmd = &cli.Command{
Name: "set",
Usage: "eg. '1m','30s',...",
ArgsUsage: "<duration>",
Flags: []cli.Flag{
minerFlag,
},
Action: func(cctx *cli.Context) error {
mAddr, err := shouldAddress(cctx.String("miner"), false, false)
if err != nil {
return fmt.Errorf("invalid miner address: %w", err)
}

marketApi, closer, err := NewMarketNode(cctx)
if err != nil {
return err
}
defer closer()
ctx := ReqContext(cctx)
if cctx.Args().Len() != 1 {
return fmt.Errorf("must pass duration")
}

return marketApi.SectorSetExpectedSealDuration(ctx, mAddr, time.Duration(delay))
period, err := time.ParseDuration(cctx.Args().Get(0))
if err != nil {
return fmt.Errorf("could not parse duration: %w", err)
}
return marketApi.DealsSetPublishMsgPeriod(ctx, mAddr, period)
},
}

Expand Down

0 comments on commit 9c32e76

Please sign in to comment.