lotus/api/api_storage.go

122 lines
3.0 KiB
Go
Raw Normal View History

2019-11-01 12:01:16 +00:00
package api
import (
2020-03-03 22:19:22 +00:00
"bytes"
2019-11-01 12:01:16 +00:00
"context"
"github.com/ipfs/go-cid"
"github.com/filecoin-project/go-address"
2020-03-13 11:59:19 +00:00
"github.com/filecoin-project/go-fil-markets/storagemarket"
2020-04-06 20:27:14 +00:00
sectorstorage "github.com/filecoin-project/sector-storage"
"github.com/filecoin-project/sector-storage/stores"
2020-02-08 02:18:32 +00:00
"github.com/filecoin-project/specs-actors/actors/abi"
"github.com/filecoin-project/lotus/chain/types"
sealing "github.com/filecoin-project/storage-fsm"
2019-11-01 12:01:16 +00:00
)
// StorageMiner is a low-level interface to the Filecoin network storage miner node
type StorageMiner interface {
Common
ActorAddress(context.Context) (address.Address, error)
ActorSectorSize(context.Context, address.Address) (abi.SectorSize, error)
2020-04-23 21:12:42 +00:00
MiningBase(context.Context) (*types.TipSet, error)
2019-11-01 12:01:16 +00:00
// Temp api for testing
PledgeSector(context.Context) error
2019-11-01 12:01:16 +00:00
// Get the status of a given sector by ID
SectorsStatus(context.Context, abi.SectorNumber) (SectorInfo, error)
2019-11-01 12:01:16 +00:00
// List all staged sectors
SectorsList(context.Context) ([]abi.SectorNumber, error)
2019-11-01 12:01:16 +00:00
SectorsRefs(context.Context) (map[string][]SealedRef, error)
2019-11-08 18:15:13 +00:00
2020-04-06 20:23:37 +00:00
SectorsUpdate(context.Context, abi.SectorNumber, sealing.SectorState) error
2020-03-16 17:50:07 +00:00
StorageList(ctx context.Context) (map[stores.ID][]stores.Decl, error)
2020-03-19 19:51:33 +00:00
StorageLocal(ctx context.Context) (map[stores.ID]string, error)
StorageStat(ctx context.Context, id stores.ID) (stores.FsStat, error)
2020-03-16 17:50:07 +00:00
2020-03-11 01:57:52 +00:00
// WorkerConnect tells the node to connect to workers RPC
WorkerConnect(context.Context, string) error
WorkerStats(context.Context) (map[uint64]sectorstorage.WorkerStats, error)
2020-03-23 14:56:22 +00:00
2020-03-13 11:59:19 +00:00
stores.SectorIndex
2019-11-21 00:52:59 +00:00
MarketImportDealData(ctx context.Context, propcid cid.Cid, path string) error
MarketListDeals(ctx context.Context) ([]storagemarket.StorageDeal, error)
MarketListIncompleteDeals(ctx context.Context) ([]storagemarket.MinerDeal, error)
2020-03-24 18:00:08 +00:00
MarketSetPrice(context.Context, types.BigInt) error
DealsImportData(ctx context.Context, dealPropCid cid.Cid, file string) error
DealsList(ctx context.Context) ([]storagemarket.StorageDeal, error)
StorageAddLocal(ctx context.Context, path string) error
2020-02-28 18:06:59 +00:00
}
type SealRes struct {
Err string
GoErr error `json:"-"`
2019-11-21 00:52:59 +00:00
2020-02-28 18:06:59 +00:00
Proof []byte
2019-11-08 18:15:13 +00:00
}
type SectorLog struct {
Kind string
Timestamp uint64
Trace string
Message string
}
2019-11-08 18:15:13 +00:00
type SectorInfo struct {
SectorID abi.SectorNumber
2020-04-06 20:23:37 +00:00
State sealing.SectorState
2020-02-27 21:45:31 +00:00
CommD *cid.Cid
CommR *cid.Cid
2019-11-08 18:15:13 +00:00
Proof []byte
Deals []abi.DealID
2020-03-03 22:19:22 +00:00
Ticket SealTicket
Seed SealSeed
2019-12-09 16:40:15 +00:00
Retries uint64
2019-12-09 16:40:15 +00:00
LastErr string
Log []SectorLog
2019-11-01 12:01:16 +00:00
}
type SealedRef struct {
2020-02-08 02:18:32 +00:00
SectorID abi.SectorNumber
2019-12-01 17:58:31 +00:00
Offset uint64
2020-02-08 02:18:32 +00:00
Size abi.UnpaddedPieceSize
2019-11-06 12:22:08 +00:00
}
type SealedRefs struct {
Refs []SealedRef
2019-11-01 12:01:16 +00:00
}
2020-03-03 22:19:22 +00:00
type SealTicket struct {
Value abi.SealRandomness
Epoch abi.ChainEpoch
}
type SealSeed struct {
Value abi.InteractiveSealRandomness
Epoch abi.ChainEpoch
}
func (st *SealTicket) Equals(ost *SealTicket) bool {
return bytes.Equal(st.Value, ost.Value) && st.Epoch == ost.Epoch
}
func (st *SealSeed) Equals(ost *SealSeed) bool {
return bytes.Equal(st.Value, ost.Value) && st.Epoch == ost.Epoch
2020-03-05 19:21:06 +00:00
}