Separate API for storageminer
This commit is contained in:
+27
-47
@@ -3,13 +3,14 @@ package api
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/libp2p/go-libp2p-core/peer"
|
||||
|
||||
"github.com/filecoin-project/go-lotus/chain"
|
||||
"github.com/filecoin-project/go-lotus/chain/address"
|
||||
"github.com/filecoin-project/go-lotus/chain/types"
|
||||
|
||||
"github.com/ipfs/go-cid"
|
||||
"github.com/ipfs/go-filestore"
|
||||
"github.com/libp2p/go-libp2p-core/peer"
|
||||
)
|
||||
|
||||
// Version provides various build-time information
|
||||
@@ -37,14 +38,30 @@ type MsgWait struct {
|
||||
Receipt types.MessageReceipt
|
||||
}
|
||||
|
||||
// API is a low-level interface to the Filecoin network
|
||||
type API interface {
|
||||
type Common interface {
|
||||
// Auth
|
||||
AuthVerify(ctx context.Context, token string) ([]string, error)
|
||||
AuthNew(ctx context.Context, perms []string) ([]byte, error)
|
||||
|
||||
// chain
|
||||
// network
|
||||
|
||||
NetPeers(context.Context) ([]peer.AddrInfo, error)
|
||||
NetConnect(context.Context, peer.AddrInfo) error
|
||||
NetAddrsListen(context.Context) (peer.AddrInfo, error)
|
||||
|
||||
// ID returns peerID of libp2p node backing this API
|
||||
ID(context.Context) (peer.ID, error)
|
||||
|
||||
// Version provides information about API provider
|
||||
Version(context.Context) (Version, error)
|
||||
|
||||
}
|
||||
|
||||
// FullNode API is a low-level interface to the Filecoin network full node
|
||||
type FullNode interface {
|
||||
Common
|
||||
|
||||
// chain
|
||||
ChainHead(context.Context) (*chain.TipSet, error) // TODO: check serialization
|
||||
ChainSubmitBlock(ctx context.Context, blk *chain.BlockMsg) error // TODO: check serialization
|
||||
ChainGetRandomness(context.Context, *chain.TipSet) ([]byte, error)
|
||||
@@ -54,35 +71,13 @@ type API interface {
|
||||
|
||||
// messages
|
||||
|
||||
// // wait
|
||||
// // send
|
||||
// // status
|
||||
// // mpool
|
||||
// // // ls / show / rm
|
||||
MpoolPending(context.Context, *chain.TipSet) ([]*chain.SignedMessage, error)
|
||||
MpoolPush(context.Context, *chain.SignedMessage) error
|
||||
|
||||
// dag
|
||||
|
||||
// // get block
|
||||
// // (cli: show / info)
|
||||
|
||||
// network
|
||||
|
||||
NetPeers(context.Context) ([]peer.AddrInfo, error)
|
||||
NetConnect(context.Context, peer.AddrInfo) error
|
||||
NetAddrsListen(context.Context) (peer.AddrInfo, error)
|
||||
// // ping
|
||||
|
||||
// Struct
|
||||
// FullNodeStruct
|
||||
|
||||
// miner
|
||||
|
||||
// // create
|
||||
// // owner
|
||||
// // power
|
||||
// // set-price
|
||||
// // set-perrid
|
||||
MinerStart(context.Context, address.Address) error
|
||||
MinerCreateBlock(context.Context, address.Address, *chain.TipSet, []chain.Ticket, chain.ElectionProof, []*chain.SignedMessage) (*chain.BlockMsg, error)
|
||||
|
||||
@@ -99,22 +94,6 @@ type API interface {
|
||||
// Really not sure where this belongs. It could go on the wallet, or the message pool, or the chain...
|
||||
MpoolGetNonce(context.Context, address.Address) (uint64, error)
|
||||
|
||||
// // import
|
||||
// // export
|
||||
// // (on cli - cmd to list associations)
|
||||
|
||||
// dht
|
||||
|
||||
// // need ?
|
||||
|
||||
// paych
|
||||
|
||||
// // todo
|
||||
|
||||
// retrieval
|
||||
|
||||
// // retrieve piece
|
||||
|
||||
// Other
|
||||
|
||||
// ClientImport imports file under the specified path into filestore
|
||||
@@ -127,10 +106,11 @@ type API interface {
|
||||
ClientListImports(ctx context.Context) ([]Import, error)
|
||||
|
||||
//ClientListAsks() []Ask
|
||||
}
|
||||
|
||||
// ID returns peerID of libp2p node backing this API
|
||||
ID(context.Context) (peer.ID, error)
|
||||
// Full API is a low-level interface to the Filecoin network storage miner node
|
||||
type StorageMiner interface {
|
||||
Common
|
||||
|
||||
// Version provides information about API provider
|
||||
Version(context.Context) (Version, error)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user