diff --git a/api/api_full.go b/api/api_full.go index 0a78bfb1c..a6763a310 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -18,7 +18,6 @@ import ( "github.com/filecoin-project/specs-actors/actors/builtin/power" "github.com/filecoin-project/specs-actors/actors/crypto" - "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/modules/dtypes" ) @@ -33,7 +32,7 @@ type FullNode interface { // ChainNotify returns channel with chain head updates // First message is guaranteed to be of len == 1, and type == 'current' - ChainNotify(context.Context) (<-chan []*store.HeadChange, error) + ChainNotify(context.Context) (<-chan []*HeadChange, error) ChainHead(context.Context) (*types.TipSet, error) ChainGetRandomness(ctx context.Context, tsk types.TipSetKey, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte) (abi.Randomness, error) ChainGetBlock(context.Context, cid.Cid) (*types.BlockHeader, error) @@ -50,7 +49,7 @@ type FullNode interface { ChainTipSetWeight(context.Context, types.TipSetKey) (types.BigInt, error) ChainGetNode(ctx context.Context, p string) (*IpldObject, error) ChainGetMessage(context.Context, cid.Cid) (*types.Message, error) - ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*store.HeadChange, error) + ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*HeadChange, error) ChainExport(context.Context, types.TipSetKey) (<-chan []byte, error) // syncer @@ -407,3 +406,7 @@ type CommPRet struct { Root cid.Cid Size abi.UnpaddedPieceSize } +type HeadChange struct { + Type string + Val *types.TipSet +} diff --git a/api/api_storage.go b/api/api_storage.go index 7b75fff60..ab75e8058 100644 --- a/api/api_storage.go +++ b/api/api_storage.go @@ -8,12 +8,11 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-fil-markets/storagemarket" - sectorstorage "github.com/filecoin-project/sector-storage" "github.com/filecoin-project/sector-storage/stores" + "github.com/filecoin-project/sector-storage/storiface" "github.com/filecoin-project/specs-actors/actors/abi" "github.com/filecoin-project/lotus/chain/types" - sealing "github.com/filecoin-project/storage-fsm" ) // StorageMiner is a low-level interface to the Filecoin network storage miner node @@ -37,7 +36,7 @@ type StorageMiner interface { SectorsRefs(context.Context) (map[string][]SealedRef, error) - SectorsUpdate(context.Context, abi.SectorNumber, sealing.SectorState) error + SectorsUpdate(context.Context, abi.SectorNumber, SectorState) error StorageList(ctx context.Context) (map[stores.ID][]stores.Decl, error) StorageLocal(ctx context.Context) (map[stores.ID]string, error) @@ -45,7 +44,7 @@ type StorageMiner interface { // WorkerConnect tells the node to connect to workers RPC WorkerConnect(context.Context, string) error - WorkerStats(context.Context) (map[uint64]sectorstorage.WorkerStats, error) + WorkerStats(context.Context) (map[uint64]storiface.WorkerStats, error) stores.SectorIndex @@ -78,7 +77,7 @@ type SectorLog struct { type SectorInfo struct { SectorID abi.SectorNumber - State sealing.SectorState + State SectorState CommD *cid.Cid CommR *cid.Cid Proof []byte @@ -119,3 +118,5 @@ func (st *SealTicket) Equals(ost *SealTicket) bool { func (st *SealSeed) Equals(ost *SealSeed) bool { return bytes.Equal(st.Value, ost.Value) && st.Epoch == ost.Epoch } + +type SectorState string diff --git a/api/api_test.go b/api/api_test.go new file mode 100644 index 000000000..1b438258a --- /dev/null +++ b/api/api_test.go @@ -0,0 +1,34 @@ +package api + +import ( + "os" + "os/exec" + "path/filepath" + "runtime" + "strings" + "testing" +) + +func goCmd() string { + var exeSuffix string + if runtime.GOOS == "windows" { + exeSuffix = ".exe" + } + path := filepath.Join(runtime.GOROOT(), "bin", "go"+exeSuffix) + if _, err := os.Stat(path); err == nil { + return path + } + return "go" +} + +func TestDoesntDependOnFFI(t *testing.T) { + deps, err := exec.Command(goCmd(), "list", "-deps", "github.com/filecoin-project/lotus/api").Output() + if err != nil { + t.Fatal(err) + } + for _, pkg := range strings.Fields(string(deps)) { + if pkg == "github.com/filecoin-project/filecoin-ffi" { + t.Fatal("api depends on filecoin-ffi") + } + } +} diff --git a/api/api_worker.go b/api/api_worker.go index f53993952..87f41b1f3 100644 --- a/api/api_worker.go +++ b/api/api_worker.go @@ -3,10 +3,10 @@ package api import ( "context" + "github.com/filecoin-project/sector-storage/storiface" "github.com/filecoin-project/specs-storage/storage" "github.com/filecoin-project/lotus/build" - "github.com/filecoin-project/sector-storage" "github.com/filecoin-project/sector-storage/sealtasks" "github.com/filecoin-project/sector-storage/stores" ) @@ -17,7 +17,7 @@ type WorkerApi interface { TaskTypes(context.Context) (map[sealtasks.TaskType]struct{}, error) // TaskType -> Weight Paths(context.Context) ([]stores.StoragePath, error) - Info(context.Context) (sectorstorage.WorkerInfo, error) + Info(context.Context) (storiface.WorkerInfo, error) storage.Sealer } diff --git a/api/apistruct/struct.go b/api/apistruct/struct.go index 826085395..285a94b2f 100644 --- a/api/apistruct/struct.go +++ b/api/apistruct/struct.go @@ -9,9 +9,9 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-fil-markets/storagemarket" - sectorstorage "github.com/filecoin-project/sector-storage" "github.com/filecoin-project/sector-storage/sealtasks" "github.com/filecoin-project/sector-storage/stores" + "github.com/filecoin-project/sector-storage/storiface" "github.com/filecoin-project/specs-actors/actors/abi" "github.com/filecoin-project/specs-actors/actors/abi/big" "github.com/filecoin-project/specs-actors/actors/builtin/miner" @@ -21,10 +21,8 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" - "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/modules/dtypes" - sealing "github.com/filecoin-project/storage-fsm" ) // All permissions are listed in permissioned.go @@ -55,7 +53,7 @@ type FullNodeStruct struct { CommonStruct Internal struct { - ChainNotify func(context.Context) (<-chan []*store.HeadChange, error) `perm:"read"` + ChainNotify func(context.Context) (<-chan []*api.HeadChange, error) `perm:"read"` ChainHead func(context.Context) (*types.TipSet, error) `perm:"read"` ChainGetRandomness func(context.Context, types.TipSetKey, crypto.DomainSeparationTag, abi.ChainEpoch, []byte) (abi.Randomness, error) `perm:"read"` ChainGetBlock func(context.Context, cid.Cid) (*types.BlockHeader, error) `perm:"read"` @@ -72,7 +70,7 @@ type FullNodeStruct struct { ChainTipSetWeight func(context.Context, types.TipSetKey) (types.BigInt, error) `perm:"read"` ChainGetNode func(ctx context.Context, p string) (*api.IpldObject, error) `perm:"read"` ChainGetMessage func(context.Context, cid.Cid) (*types.Message, error) `perm:"read"` - ChainGetPath func(context.Context, types.TipSetKey, types.TipSetKey) ([]*store.HeadChange, error) `perm:"read"` + ChainGetPath func(context.Context, types.TipSetKey, types.TipSetKey) ([]*api.HeadChange, error) `perm:"read"` ChainExport func(context.Context, types.TipSetKey) (<-chan []byte, error) `perm:"read"` SyncState func(context.Context) (*api.SyncState, error) `perm:"read"` @@ -186,13 +184,13 @@ type StorageMinerStruct struct { PledgeSector func(context.Context) error `perm:"write"` - SectorsStatus func(context.Context, abi.SectorNumber) (api.SectorInfo, error) `perm:"read"` - SectorsList func(context.Context) ([]abi.SectorNumber, error) `perm:"read"` - SectorsRefs func(context.Context) (map[string][]api.SealedRef, error) `perm:"read"` - SectorsUpdate func(context.Context, abi.SectorNumber, sealing.SectorState) error `perm:"write"` + SectorsStatus func(context.Context, abi.SectorNumber) (api.SectorInfo, error) `perm:"read"` + SectorsList func(context.Context) ([]abi.SectorNumber, error) `perm:"read"` + SectorsRefs func(context.Context) (map[string][]api.SealedRef, error) `perm:"read"` + SectorsUpdate func(context.Context, abi.SectorNumber, api.SectorState) error `perm:"write"` - WorkerConnect func(context.Context, string) error `perm:"admin"` // TODO: worker perm - WorkerStats func(context.Context) (map[uint64]sectorstorage.WorkerStats, error) `perm:"admin"` + WorkerConnect func(context.Context, string) error `perm:"admin"` // TODO: worker perm + WorkerStats func(context.Context) (map[uint64]storiface.WorkerStats, error) `perm:"admin"` StorageList func(context.Context) (map[stores.ID][]stores.Decl, error) `perm:"admin"` StorageLocal func(context.Context) (map[stores.ID]string, error) `perm:"admin"` @@ -219,7 +217,7 @@ type WorkerStruct struct { TaskTypes func(context.Context) (map[sealtasks.TaskType]struct{}, error) `perm:"admin"` Paths func(context.Context) ([]stores.StoragePath, error) `perm:"admin"` - Info func(context.Context) (sectorstorage.WorkerInfo, error) `perm:"admin"` + Info func(context.Context) (storiface.WorkerInfo, error) `perm:"admin"` SealPreCommit1 func(ctx context.Context, sector abi.SectorID, ticket abi.SealRandomness, pieces []abi.PieceInfo) (storage.PreCommit1Out, error) `perm:"admin"` SealPreCommit2 func(context.Context, abi.SectorID, storage.PreCommit1Out) (cids storage.SectorCids, err error) `perm:"admin"` @@ -429,7 +427,7 @@ func (c *FullNodeStruct) ChainGetParentMessages(ctx context.Context, b cid.Cid) return c.Internal.ChainGetParentMessages(ctx, b) } -func (c *FullNodeStruct) ChainNotify(ctx context.Context) (<-chan []*store.HeadChange, error) { +func (c *FullNodeStruct) ChainNotify(ctx context.Context) (<-chan []*api.HeadChange, error) { return c.Internal.ChainNotify(ctx) } @@ -465,7 +463,7 @@ func (c *FullNodeStruct) ChainGetMessage(ctx context.Context, mc cid.Cid) (*type return c.Internal.ChainGetMessage(ctx, mc) } -func (c *FullNodeStruct) ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*store.HeadChange, error) { +func (c *FullNodeStruct) ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*api.HeadChange, error) { return c.Internal.ChainGetPath(ctx, from, to) } @@ -695,7 +693,7 @@ func (c *StorageMinerStruct) SectorsRefs(ctx context.Context) (map[string][]api. return c.Internal.SectorsRefs(ctx) } -func (c *StorageMinerStruct) SectorsUpdate(ctx context.Context, id abi.SectorNumber, state sealing.SectorState) error { +func (c *StorageMinerStruct) SectorsUpdate(ctx context.Context, id abi.SectorNumber, state api.SectorState) error { return c.Internal.SectorsUpdate(ctx, id, state) } @@ -703,7 +701,7 @@ func (c *StorageMinerStruct) WorkerConnect(ctx context.Context, url string) erro return c.Internal.WorkerConnect(ctx, url) } -func (c *StorageMinerStruct) WorkerStats(ctx context.Context) (map[uint64]sectorstorage.WorkerStats, error) { +func (c *StorageMinerStruct) WorkerStats(ctx context.Context) (map[uint64]storiface.WorkerStats, error) { return c.Internal.WorkerStats(ctx) } @@ -783,7 +781,7 @@ func (w *WorkerStruct) Paths(ctx context.Context) ([]stores.StoragePath, error) return w.Internal.Paths(ctx) } -func (w *WorkerStruct) Info(ctx context.Context) (sectorstorage.WorkerInfo, error) { +func (w *WorkerStruct) Info(ctx context.Context) (storiface.WorkerInfo, error) { return w.Internal.Info(ctx) } diff --git a/chain/events/events.go b/chain/events/events.go index 217b6fb30..9f19b1691 100644 --- a/chain/events/events.go +++ b/chain/events/events.go @@ -32,7 +32,7 @@ type heightHandler struct { } type eventApi interface { - ChainNotify(context.Context) (<-chan []*store.HeadChange, error) + ChainNotify(context.Context) (<-chan []*api.HeadChange, error) ChainGetBlockMessages(context.Context, cid.Cid) (*api.BlockMessages, error) ChainGetTipSetByHeight(context.Context, abi.ChainEpoch, types.TipSetKey) (*types.TipSet, error) StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error) diff --git a/chain/events/events_test.go b/chain/events/events_test.go index c599b676b..bfd734281 100644 --- a/chain/events/events_test.go +++ b/chain/events/events_test.go @@ -92,21 +92,21 @@ func makeTs(t *testing.T, h abi.ChainEpoch, msgcid cid.Cid) *types.TipSet { return ts } -func (fcs *fakeCS) ChainNotify(context.Context) (<-chan []*store.HeadChange, error) { - out := make(chan []*store.HeadChange, 1) - out <- []*store.HeadChange{{Type: store.HCCurrent, Val: fcs.tsc.best()}} +func (fcs *fakeCS) ChainNotify(context.Context) (<-chan []*api.HeadChange, error) { + out := make(chan []*api.HeadChange, 1) + out <- []*api.HeadChange{{Type: store.HCCurrent, Val: fcs.tsc.best()}} fcs.sub = func(rev, app []*types.TipSet) { - notif := make([]*store.HeadChange, len(rev)+len(app)) + notif := make([]*api.HeadChange, len(rev)+len(app)) for i, r := range rev { - notif[i] = &store.HeadChange{ + notif[i] = &api.HeadChange{ Type: store.HCRevert, Val: r, } } for i, r := range app { - notif[i+len(rev)] = &store.HeadChange{ + notif[i+len(rev)] = &api.HeadChange{ Type: store.HCApply, Val: r, } diff --git a/chain/store/store.go b/chain/store/store.go index 63df6d7d9..cde8add51 100644 --- a/chain/store/store.go +++ b/chain/store/store.go @@ -17,6 +17,7 @@ import ( "github.com/filecoin-project/specs-actors/actors/runtime" "github.com/filecoin-project/specs-actors/actors/util/adt" + "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/state" "github.com/filecoin-project/lotus/chain/vm" @@ -89,16 +90,16 @@ func NewChainStore(bs bstore.Blockstore, ds dstore.Batching, vmcalls runtime.Sys cs.pubLk.Lock() defer cs.pubLk.Unlock() - notif := make([]*HeadChange, len(rev)+len(app)) + notif := make([]*api.HeadChange, len(rev)+len(app)) for i, r := range rev { - notif[i] = &HeadChange{ + notif[i] = &api.HeadChange{ Type: HCRevert, Val: r, } } for i, r := range app { - notif[i+len(rev)] = &HeadChange{ + notif[i+len(rev)] = &api.HeadChange{ Type: HCApply, Val: r, } @@ -165,19 +166,14 @@ const ( HCCurrent = "current" ) -type HeadChange struct { - Type string - Val *types.TipSet -} - -func (cs *ChainStore) SubHeadChanges(ctx context.Context) chan []*HeadChange { +func (cs *ChainStore) SubHeadChanges(ctx context.Context) chan []*api.HeadChange { cs.pubLk.Lock() subch := cs.bestTips.Sub("headchange") head := cs.GetHeaviestTipSet() cs.pubLk.Unlock() - out := make(chan []*HeadChange, 16) - out <- []*HeadChange{{ + out := make(chan []*api.HeadChange, 16) + out <- []*api.HeadChange{{ Type: HCCurrent, Val: head, }} @@ -197,7 +193,7 @@ func (cs *ChainStore) SubHeadChanges(ctx context.Context) chan []*HeadChange { log.Warnf("head change sub is slow, has %d buffered entries", len(out)) } select { - case out <- val.([]*HeadChange): + case out <- val.([]*api.HeadChange): case <-ctx.Done(): } case <-ctx.Done(): @@ -748,7 +744,7 @@ func (cs *ChainStore) readMsgMetaCids(mmc cid.Cid) ([]cid.Cid, []cid.Cid, error) return blscids, secpkcids, nil } -func (cs *ChainStore) GetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*HeadChange, error) { +func (cs *ChainStore) GetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*api.HeadChange, error) { fts, err := cs.LoadTipSet(from) if err != nil { return nil, xerrors.Errorf("loading from tipset %s: %w", from, err) @@ -762,12 +758,12 @@ func (cs *ChainStore) GetPath(ctx context.Context, from types.TipSetKey, to type return nil, xerrors.Errorf("error getting tipset branches: %w", err) } - path := make([]*HeadChange, len(revert)+len(apply)) + path := make([]*api.HeadChange, len(revert)+len(apply)) for i, r := range revert { - path[i] = &HeadChange{Type: HCRevert, Val: r} + path[i] = &api.HeadChange{Type: HCRevert, Val: r} } for j, i := 0, len(apply)-1; i >= 0; j, i = j+1, i-1 { - path[j+len(revert)] = &HeadChange{Type: HCApply, Val: apply[i]} + path[j+len(revert)] = &api.HeadChange{Type: HCApply, Val: apply[i]} } return path, nil } diff --git a/cmd/lotus-storage-miner/info.go b/cmd/lotus-storage-miner/info.go index 3a4cf8345..bab9bb84d 100644 --- a/cmd/lotus-storage-miner/info.go +++ b/cmd/lotus-storage-miner/info.go @@ -142,7 +142,7 @@ func sectorsInfo(ctx context.Context, napi api.StorageMiner) (map[sealing.Sector return nil, err } - out[st.State]++ + out[sealing.SectorState(st.State)]++ } return out, nil diff --git a/cmd/lotus-storage-miner/sectors.go b/cmd/lotus-storage-miner/sectors.go index 8200fc299..d923089ec 100644 --- a/cmd/lotus-storage-miner/sectors.go +++ b/cmd/lotus-storage-miner/sectors.go @@ -13,9 +13,9 @@ import ( "github.com/filecoin-project/specs-actors/actors/abi" + "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/chain/types" lcli "github.com/filecoin-project/lotus/cli" - sealing "github.com/filecoin-project/storage-fsm" ) var sectorsCmd = &cli.Command{ @@ -236,7 +236,7 @@ var sectorsUpdateCmd = &cli.Command{ return xerrors.Errorf("could not parse sector ID: %w", err) } - return nodeApi.SectorsUpdate(ctx, abi.SectorNumber(id), sealing.SectorState(cctx.Args().Get(1))) + return nodeApi.SectorsUpdate(ctx, abi.SectorNumber(id), api.SectorState(cctx.Args().Get(1))) }, } diff --git a/cmd/lotus-storage-miner/workers.go b/cmd/lotus-storage-miner/workers.go index 34686cdd3..b44c15af6 100644 --- a/cmd/lotus-storage-miner/workers.go +++ b/cmd/lotus-storage-miner/workers.go @@ -3,7 +3,7 @@ package main import ( "fmt" "github.com/filecoin-project/lotus/chain/types" - "github.com/filecoin-project/sector-storage" + "github.com/filecoin-project/sector-storage/storiface" "gopkg.in/urfave/cli.v2" "sort" @@ -37,7 +37,7 @@ var workersListCmd = &cli.Command{ type sortableStat struct { id uint64 - sectorstorage.WorkerStats + storiface.WorkerStats } st := make([]sortableStat, 0, len(stats)) diff --git a/go.mod b/go.mod index 6433c6444..969d95e9a 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/filecoin-project/go-padreader v0.0.0-20200210211231-548257017ca6 github.com/filecoin-project/go-paramfetch v0.0.2-0.20200218225740-47c639bab663 github.com/filecoin-project/go-statestore v0.1.0 - github.com/filecoin-project/sector-storage v0.0.0-20200417225459-e75536581a08 + github.com/filecoin-project/sector-storage v0.0.0-20200423222053-9eb049a833b9 github.com/filecoin-project/specs-actors v1.0.0 github.com/filecoin-project/specs-storage v0.0.0-20200417134612-61b2d91a6102 github.com/filecoin-project/storage-fsm v0.0.0-20200423114251-f3bea4aa8bd7 diff --git a/go.sum b/go.sum index 4661422d7..e55152cee 100644 --- a/go.sum +++ b/go.sum @@ -164,8 +164,8 @@ github.com/filecoin-project/go-statestore v0.1.0 h1:t56reH59843TwXHkMcwyuayStBIi github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZOinUJB4WARkRfNl10O7kTnI= github.com/filecoin-project/lotus v0.2.10/go.mod h1:om5PQA9ZT0lf16qI7Fz/ZGLn4LDCMqPC8ntZA9uncRE= github.com/filecoin-project/sector-storage v0.0.0-20200411000242-61616264b16d/go.mod h1:/yueJueMh0Yc+0G1adS0lhnedcSnjY86EjKsA20+DVY= -github.com/filecoin-project/sector-storage v0.0.0-20200417225459-e75536581a08 h1:X1eeuc6OR0+sDxOMI7p98oWevT5NhB7SZoHMM9+l1Ck= -github.com/filecoin-project/sector-storage v0.0.0-20200417225459-e75536581a08/go.mod h1:m5wM3aqbgDcg+mT2EW0Urv7t/sCok9TmvQqtb7Sf738= +github.com/filecoin-project/sector-storage v0.0.0-20200423222053-9eb049a833b9 h1:Nj+kxEXRZsgKUPwpH+N57SuL8zYlmqXA1E2k2r6H6Hc= +github.com/filecoin-project/sector-storage v0.0.0-20200423222053-9eb049a833b9/go.mod h1:ooso9kOFQaZwk50u+Wc/tRISeETwuDREef8pC3EHQCI= github.com/filecoin-project/specs-actors v0.0.0-20200210130641-2d1fbd8672cf/go.mod h1:xtDZUB6pe4Pksa/bAJbJ693OilaC5Wbot9jMhLm3cZA= github.com/filecoin-project/specs-actors v0.0.0-20200409043918-e569f4a2f504/go.mod h1:mdJraXq5vMy0+/FqVQIrnNlpQ/Em6zeu06G/ltQ0/lA= github.com/filecoin-project/specs-actors v1.0.0 h1:H0G6n2R8MnfvYuI0irmY7Bj5FI/JHUxnIldg/YX472I= diff --git a/lib/jsonrpc/client.go b/lib/jsonrpc/client.go index 99622733f..9532f3dce 100644 --- a/lib/jsonrpc/client.go +++ b/lib/jsonrpc/client.go @@ -183,7 +183,11 @@ func (c *client) makeOutChan(ctx context.Context, ftyp reflect.Type, valOut int) buf.PushBack(val) if buf.Len() > 1 { - log.Warnw("rpc output message buffer", "n", buf.Len()) + if buf.Len() > 10 { + log.Warnw("rpc output message buffer", "n", buf.Len()) + } else { + log.Infow("rpc output message buffer", "n", buf.Len()) + } bufLk.Unlock() return } diff --git a/node/impl/full/chain.go b/node/impl/full/chain.go index 3ddc516c0..076968987 100644 --- a/node/impl/full/chain.go +++ b/node/impl/full/chain.go @@ -45,7 +45,7 @@ type ChainAPI struct { Chain *store.ChainStore } -func (a *ChainAPI) ChainNotify(ctx context.Context) (<-chan []*store.HeadChange, error) { +func (a *ChainAPI) ChainNotify(ctx context.Context) (<-chan []*api.HeadChange, error) { return a.Chain.SubHeadChanges(ctx), nil } @@ -98,7 +98,7 @@ func (a *ChainAPI) ChainGetBlockMessages(ctx context.Context, msg cid.Cid) (*api }, nil } -func (a *ChainAPI) ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*store.HeadChange, error) { +func (a *ChainAPI) ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*api.HeadChange, error) { return a.Chain.GetPath(ctx, from, to) } diff --git a/node/impl/storminer.go b/node/impl/storminer.go index 3fe15d919..cf4017740 100644 --- a/node/impl/storminer.go +++ b/node/impl/storminer.go @@ -15,7 +15,9 @@ import ( sectorstorage "github.com/filecoin-project/sector-storage" "github.com/filecoin-project/sector-storage/ffiwrapper" "github.com/filecoin-project/sector-storage/stores" + "github.com/filecoin-project/sector-storage/storiface" "github.com/filecoin-project/specs-actors/actors/abi" + sealing "github.com/filecoin-project/storage-fsm" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/api/apistruct" @@ -24,7 +26,6 @@ import ( "github.com/filecoin-project/lotus/node/impl/common" "github.com/filecoin-project/lotus/storage" "github.com/filecoin-project/lotus/storage/sectorblocks" - sealing "github.com/filecoin-project/storage-fsm" ) type StorageMinerAPI struct { @@ -51,7 +52,7 @@ func (sm *StorageMinerAPI) ServeRemote(w http.ResponseWriter, r *http.Request) { sm.StorageMgr.ServeHTTP(w, r) } -func (sm *StorageMinerAPI) WorkerStats(context.Context) (map[uint64]sectorstorage.WorkerStats, error) { +func (sm *StorageMinerAPI) WorkerStats(context.Context) (map[uint64]storiface.WorkerStats, error) { return sm.StorageMgr.WorkerStats(), nil } @@ -105,7 +106,7 @@ func (sm *StorageMinerAPI) SectorsStatus(ctx context.Context, sid abi.SectorNumb return api.SectorInfo{ SectorID: sid, - State: info.State, + State: api.SectorState(info.State), CommD: info.CommD, CommR: info.CommR, Proof: info.Proof, @@ -163,8 +164,8 @@ func (sm *StorageMinerAPI) StorageStat(ctx context.Context, id stores.ID) (store return sm.StorageMgr.FsStat(ctx, id) } -func (sm *StorageMinerAPI) SectorsUpdate(ctx context.Context, id abi.SectorNumber, state sealing.SectorState) error { - return sm.Miner.ForceSectorState(ctx, id, state) +func (sm *StorageMinerAPI) SectorsUpdate(ctx context.Context, id abi.SectorNumber, state api.SectorState) error { + return sm.Miner.ForceSectorState(ctx, id, sealing.SectorState(state)) } func (sm *StorageMinerAPI) WorkerConnect(ctx context.Context, url string) error { diff --git a/storage/miner.go b/storage/miner.go index 78f88d797..c3b9d404f 100644 --- a/storage/miner.go +++ b/storage/miner.go @@ -23,7 +23,6 @@ import ( "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/events" "github.com/filecoin-project/lotus/chain/gen" - "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/modules/dtypes" sealing "github.com/filecoin-project/storage-fsm" @@ -62,7 +61,7 @@ type storageMinerApi interface { MpoolPushMessage(context.Context, *types.Message) (*types.SignedMessage, error) ChainHead(context.Context) (*types.TipSet, error) - ChainNotify(context.Context) (<-chan []*store.HeadChange, error) + ChainNotify(context.Context) (<-chan []*api.HeadChange, error) ChainGetRandomness(ctx context.Context, tsk types.TipSetKey, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte) (abi.Randomness, error) ChainGetTipSetByHeight(context.Context, abi.ChainEpoch, types.TipSetKey) (*types.TipSet, error) ChainGetBlockMessages(context.Context, cid.Cid) (*api.BlockMessages, error) diff --git a/storage/wdpost_sched.go b/storage/wdpost_sched.go index 1f41418a2..81fc7bc5d 100644 --- a/storage/wdpost_sched.go +++ b/storage/wdpost_sched.go @@ -13,6 +13,7 @@ import ( "github.com/filecoin-project/specs-actors/actors/builtin/miner" "github.com/filecoin-project/specs-storage/storage" + "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" ) @@ -67,7 +68,7 @@ func deadlineEquals(a, b *miner.DeadlineInfo) bool { func (s *WindowPoStScheduler) Run(ctx context.Context) { defer s.abortActivePoSt() - var notifs <-chan []*store.HeadChange + var notifs <-chan []*api.HeadChange var err error var gotCur bool diff --git a/tools/stats/head_buffer.go b/tools/stats/head_buffer.go index 77102e034..08a817233 100644 --- a/tools/stats/head_buffer.go +++ b/tools/stats/head_buffer.go @@ -3,7 +3,7 @@ package main import ( "container/list" - "github.com/filecoin-project/lotus/chain/store" + "github.com/filecoin-project/lotus/api" ) type headBuffer struct { @@ -21,12 +21,12 @@ func NewHeadBuffer(size int) *headBuffer { } } -func (h *headBuffer) Push(hc *store.HeadChange) (rethc *store.HeadChange) { +func (h *headBuffer) Push(hc *api.HeadChange) (rethc *api.HeadChange) { if h.buffer.Len() == h.size { var ok bool el := h.buffer.Front() - rethc, ok = el.Value.(*store.HeadChange) + rethc, ok = el.Value.(*api.HeadChange) if !ok { panic("Value from list is not the correct type") } diff --git a/tools/stats/head_buffer_test.go b/tools/stats/head_buffer_test.go index 3ae7d749c..6266f35fd 100644 --- a/tools/stats/head_buffer_test.go +++ b/tools/stats/head_buffer_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/filecoin-project/lotus/chain/store" + "github.com/filecoin-project/lotus/api" "github.com/stretchr/testify/require" ) @@ -11,33 +11,33 @@ func TestHeadBuffer(t *testing.T) { t.Run("Straight push through", func(t *testing.T) { hb := NewHeadBuffer(5) - require.Nil(t, hb.Push(&store.HeadChange{Type: "1"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "2"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "3"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "4"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "5"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "1"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "2"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "3"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "4"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "5"})) - hc := hb.Push(&store.HeadChange{Type: "6"}) + hc := hb.Push(&api.HeadChange{Type: "6"}) require.Equal(t, hc.Type, "1") }) t.Run("Reverts", func(t *testing.T) { hb := NewHeadBuffer(5) - require.Nil(t, hb.Push(&store.HeadChange{Type: "1"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "2"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "3"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "1"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "2"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "3"})) hb.Pop() - require.Nil(t, hb.Push(&store.HeadChange{Type: "3a"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "3a"})) hb.Pop() - require.Nil(t, hb.Push(&store.HeadChange{Type: "3b"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "4"})) - require.Nil(t, hb.Push(&store.HeadChange{Type: "5"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "3b"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "4"})) + require.Nil(t, hb.Push(&api.HeadChange{Type: "5"})) - hc := hb.Push(&store.HeadChange{Type: "6"}) + hc := hb.Push(&api.HeadChange{Type: "6"}) require.Equal(t, hc.Type, "1") - hc = hb.Push(&store.HeadChange{Type: "7"}) + hc = hb.Push(&api.HeadChange{Type: "7"}) require.Equal(t, hc.Type, "2") - hc = hb.Push(&store.HeadChange{Type: "8"}) + hc = hb.Push(&api.HeadChange{Type: "8"}) require.Equal(t, hc.Type, "3b") }) }