Separate API for storageminer

This commit is contained in:
Łukasz Magiera
2019-07-24 02:09:34 +02:00
parent d0cbf02d36
commit eda03095b0
11 changed files with 112 additions and 116 deletions
+27 -47
View File
@@ -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)
}