diff --git a/chain/deals/client_utils.go b/chain/deals/client_utils.go index 2e9da23dd..335356892 100644 --- a/chain/deals/client_utils.go +++ b/chain/deals/client_utils.go @@ -3,7 +3,6 @@ package deals import ( "bytes" "context" - "reflect" "runtime" "github.com/ipfs/go-cid" @@ -13,7 +12,6 @@ import ( unixfile "github.com/ipfs/go-unixfs/file" "github.com/ipld/go-ipld-prime" "github.com/libp2p/go-libp2p-core/peer" - "go.uber.org/fx" "golang.org/x/xerrors" "github.com/filecoin-project/lotus/datatransfer" @@ -117,17 +115,6 @@ type ClientRequestValidator struct { deals *statestore.StateStore } -// RegisterClientValidator is an initialization hook that registers the client -// request validator with the data transfer module as the validator for -// StorageDataTransferVoucher types -func RegisterClientValidator(lc fx.Lifecycle, crv *ClientRequestValidator, dtm datatransfer.ClientDataTransfer) { - lc.Append(fx.Hook{ - OnStart: func(ctx context.Context) error { - return dtm.RegisterVoucherType(reflect.TypeOf(StorageDataTransferVoucher{}), crv) - }, - }) -} - // NewClientRequestValidator returns a new client request validator for the // given datastore func NewClientRequestValidator(ds dtypes.MetadataDS) *ClientRequestValidator { @@ -179,7 +166,7 @@ func (c *ClientRequestValidator) ValidatePull( if !bytes.Equal(deal.Proposal.PieceRef, baseCid.Bytes()) { return xerrors.Errorf("Deal Payload CID %s, Data Transfer CID %s: %w", string(deal.Proposal.PieceRef), baseCid.String(), ErrWrongPiece) } - for _, state := range AcceptableDealStates { + for _, state := range DataTransferStates { if deal.State == state { return nil } diff --git a/chain/deals/provider_utils.go b/chain/deals/provider_utils.go index 5cf52e629..2a48f4839 100644 --- a/chain/deals/provider_utils.go +++ b/chain/deals/provider_utils.go @@ -3,14 +3,12 @@ package deals import ( "bytes" "context" - "reflect" "runtime" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/datatransfer" "github.com/filecoin-project/lotus/node/modules/dtypes" "github.com/ipld/go-ipld-prime" - "go.uber.org/fx" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/address" @@ -145,17 +143,6 @@ type ProviderRequestValidator struct { deals *statestore.StateStore } -// RegisterProviderValidator is an initialization hook that registers the provider -// request validator with the data transfer module as the validator for -// StorageDataTransferVoucher types -func RegisterProviderValidator(lc fx.Lifecycle, mrv *ProviderRequestValidator, dtm datatransfer.ProviderDataTransfer) { - lc.Append(fx.Hook{ - OnStart: func(ctx context.Context) error { - return dtm.RegisterVoucherType(reflect.TypeOf(StorageDataTransferVoucher{}), mrv) - }, - }) -} - // NewProviderRequestValidator returns a new client request validator for the // given datastore func NewProviderRequestValidator(ds dtypes.MetadataDS) *ProviderRequestValidator { @@ -196,7 +183,7 @@ func (m *ProviderRequestValidator) ValidatePush( if !bytes.Equal(deal.Proposal.PieceRef, baseCid.Bytes()) { return xerrors.Errorf("Deal Payload CID %s, Data Transfer CID %s: %w", string(deal.Proposal.PieceRef), baseCid.String(), ErrWrongPiece) } - for _, state := range AcceptableDealStates { + for _, state := range DataTransferStates { if deal.State == state { return nil } diff --git a/chain/deals/types.go b/chain/deals/types.go index 5262aee37..717594567 100644 --- a/chain/deals/types.go +++ b/chain/deals/types.go @@ -37,7 +37,7 @@ var ( // where transfer can be performed ErrInacceptableDealState = errors.New("Deal is not a in a state where deals are accepted") - // AcceptableDealStates are the states in which it would make sense to actually start a data transfer + // DataTransferStates are the states in which it would make sense to actually start a data transfer DataTransferStates = []api.DealState{api.DealAccepted, api.DealUnknown} ) diff --git a/node/builder.go b/node/builder.go index 5c78b6c7f..b688056c5 100644 --- a/node/builder.go +++ b/node/builder.go @@ -224,7 +224,7 @@ func Online() Option { Override(new(datatransfer.ClientDataTransfer), datatransfer.NewClientDAGServiceDataTransfer), Override(new(*deals.ClientRequestValidator), deals.NewClientRequestValidator), Override(new(*deals.Client), deals.NewClient), - Override(RegisterClientValidatorKey, deals.RegisterClientValidator), + Override(RegisterClientValidatorKey, modules.RegisterClientValidator), Override(RunDealClientKey, modules.RunDealClient), Override(new(*paych.Store), paych.NewStore), @@ -247,7 +247,7 @@ func Online() Option { Override(new(datatransfer.ProviderDataTransfer), datatransfer.NewProviderDAGServiceDataTransfer), Override(new(*deals.ProviderRequestValidator), deals.NewProviderRequestValidator), Override(new(*deals.Provider), deals.NewProvider), - Override(RegisterProviderValidatorKey, deals.RegisterProviderValidator), + Override(RegisterProviderValidatorKey, modules.RegisterProviderValidator), Override(HandleRetrievalKey, modules.HandleRetrieval), Override(HandleDealsKey, modules.HandleDeals), Override(RegisterMinerKey, modules.RegisterMiner), diff --git a/node/modules/client.go b/node/modules/client.go index 2171b96c3..3a6e385f4 100644 --- a/node/modules/client.go +++ b/node/modules/client.go @@ -2,12 +2,14 @@ package modules import ( "context" + "path/filepath" + "reflect" + "github.com/filecoin-project/lotus/node/modules/helpers" "github.com/ipfs/go-bitswap" "github.com/ipfs/go-bitswap/network" "github.com/libp2p/go-libp2p-core/host" "github.com/libp2p/go-libp2p-core/routing" - "path/filepath" "github.com/ipfs/go-blockservice" "github.com/ipfs/go-datastore" @@ -17,6 +19,8 @@ import ( "github.com/ipfs/go-merkledag" "go.uber.org/fx" + "github.com/filecoin-project/lotus/chain/deals" + "github.com/filecoin-project/lotus/datatransfer" "github.com/filecoin-project/lotus/node/modules/dtypes" "github.com/filecoin-project/lotus/node/repo" ) @@ -40,6 +44,13 @@ func ClientBlockstore(fstore dtypes.ClientFilestore) dtypes.ClientBlockstore { return blockstore.NewIdStore((*filestore.Filestore)(fstore)) } +// RegisterClientValidator is an initialization hook that registers the client +// request validator with the data transfer module as the validator for +// StorageDataTransferVoucher types +func RegisterClientValidator(crv *deals.ClientRequestValidator, dtm datatransfer.ClientDataTransfer) { + dtm.RegisterVoucherType(reflect.TypeOf(deals.StorageDataTransferVoucher{}), crv) +} + func ClientDAG(mctx helpers.MetricsCtx, lc fx.Lifecycle, ibs dtypes.ClientBlockstore, rt routing.Routing, h host.Host) dtypes.ClientDAG { bitswapNetwork := network.NewFromIpfsHost(h, rt) exch := bitswap.New(helpers.LifecycleCtx(mctx, lc), bitswapNetwork, ibs) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index 0c97710cb..b6ab93905 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -5,6 +5,7 @@ import ( "fmt" "math" "path/filepath" + "reflect" "github.com/ipfs/go-bitswap" "github.com/ipfs/go-bitswap/network" @@ -22,6 +23,7 @@ import ( "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/address" "github.com/filecoin-project/lotus/chain/deals" + "github.com/filecoin-project/lotus/datatransfer" "github.com/filecoin-project/lotus/lib/sectorbuilder" "github.com/filecoin-project/lotus/node/modules/dtypes" "github.com/filecoin-project/lotus/node/modules/helpers" @@ -130,6 +132,13 @@ func HandleDeals(mctx helpers.MetricsCtx, lc fx.Lifecycle, host host.Host, h *de }) } +// RegisterProviderValidator is an initialization hook that registers the provider +// request validator with the data transfer module as the validator for +// StorageDataTransferVoucher types +func RegisterProviderValidator(mrv *deals.ProviderRequestValidator, dtm datatransfer.ProviderDataTransfer) { + dtm.RegisterVoucherType(reflect.TypeOf(deals.StorageDataTransferVoucher{}), mrv) +} + func StagingDAG(mctx helpers.MetricsCtx, lc fx.Lifecycle, r repo.LockedRepo, rt routing.Routing, h host.Host) (dtypes.StagingDAG, error) { stagingds, err := r.Datastore("/staging") if err != nil {