Restore api flags

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
This commit is contained in:
Jakub Sztandera 2019-11-12 19:31:17 +01:00
parent 70419c0f55
commit a58e165339
No known key found for this signature in database
GPG Key ID: 9A9AF56F8B3879BA
4 changed files with 55 additions and 27 deletions

View File

@ -9,6 +9,7 @@ import (
"syscall" "syscall"
"github.com/multiformats/go-multiaddr" "github.com/multiformats/go-multiaddr"
manet "github.com/multiformats/go-multiaddr-net"
"golang.org/x/xerrors" "golang.org/x/xerrors"
"gopkg.in/urfave/cli.v2" "gopkg.in/urfave/cli.v2"
@ -27,7 +28,7 @@ var runCmd = &cli.Command{
Flags: []cli.Flag{ Flags: []cli.Flag{
&cli.StringFlag{ &cli.StringFlag{
Name: "api", Name: "api",
Value: "2345", Value: "",
}, },
&cli.BoolFlag{ &cli.BoolFlag{
Name: "enable-gpu-proving", Name: "enable-gpu-proving",
@ -75,19 +76,27 @@ var runCmd = &cli.Command{
node.Online(), node.Online(),
node.Repo(r), node.Repo(r),
node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error { node.ApplyIf(func(s *node.Settings) bool { return cctx.IsSet("api") },
apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" + cctx.String("api")) node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error {
if err != nil { apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" +
return err cctx.String("api"))
} if err != nil {
return lr.SetAPIEndpoint(apima) return err
}), }
return lr.SetAPIEndpoint(apima)
})),
node.Override(new(api.FullNode), nodeApi), node.Override(new(api.FullNode), nodeApi),
) )
if err != nil { if err != nil {
return err return err
} }
endpoint, err := r.APIEndpoint()
if err != nil {
return err
}
// Bootstrap with full node // Bootstrap with full node
remoteAddrs, err := nodeApi.NetAddrsListen(ctx) remoteAddrs, err := nodeApi.NetAddrsListen(ctx)
if err != nil { if err != nil {
@ -100,6 +109,11 @@ var runCmd = &cli.Command{
log.Infof("Remote version %s", v) log.Infof("Remote version %s", v)
lst, err := manet.Listen(endpoint)
if err != nil {
return xerrors.Errorf("could not listen: %w", err)
}
rpcServer := jsonrpc.NewServer() rpcServer := jsonrpc.NewServer()
rpcServer.Register("Filecoin", api.PermissionedStorMinerAPI(minerapi)) rpcServer.Register("Filecoin", api.PermissionedStorMinerAPI(minerapi))
@ -110,7 +124,7 @@ var runCmd = &cli.Command{
http.Handle("/rpc/v0", ah) http.Handle("/rpc/v0", ah)
srv := &http.Server{Addr: "127.0.0.1:" + cctx.String("api"), Handler: http.DefaultServeMux} srv := &http.Server{Handler: http.DefaultServeMux}
sigChan := make(chan os.Signal, 2) sigChan := make(chan os.Signal, 2)
go func() { go func() {
@ -126,6 +140,6 @@ var runCmd = &cli.Command{
}() }()
signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT) signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT)
return srv.ListenAndServe() return srv.Serve(manet.NetListener(lst))
}, },
} }

View File

@ -7,8 +7,8 @@ import (
"io/ioutil" "io/ioutil"
"github.com/filecoin-project/lotus/peermgr" "github.com/filecoin-project/lotus/peermgr"
"github.com/multiformats/go-multiaddr" "github.com/multiformats/go-multiaddr"
"golang.org/x/xerrors" "golang.org/x/xerrors"
"gopkg.in/urfave/cli.v2" "gopkg.in/urfave/cli.v2"
@ -29,6 +29,10 @@ var DaemonCmd = &cli.Command{
Name: "daemon", Name: "daemon",
Usage: "Start a lotus daemon process", Usage: "Start a lotus daemon process",
Flags: []cli.Flag{ Flags: []cli.Flag{
&cli.StringFlag{
Name: "api",
Value: "1234",
},
&cli.StringFlag{ &cli.StringFlag{
Name: makeGenFlag, Name: makeGenFlag,
Value: "", Value: "",
@ -77,7 +81,6 @@ var DaemonCmd = &cli.Command{
} }
var api api.FullNode var api api.FullNode
var endpoint multiaddr.Multiaddr
stop, err := node.New(ctx, stop, err := node.New(ctx,
node.FullAPI(&api), node.FullAPI(&api),
@ -87,20 +90,15 @@ var DaemonCmd = &cli.Command{
genesis, genesis,
node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error { node.ApplyIf(func(s *node.Settings) bool { return cctx.IsSet("api") },
cfg, err := lr.Config() node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error {
if err != nil { apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" +
return xerrors.Errorf("could not get config: %w", err) cctx.String("api"))
} if err != nil {
return err
apima, err := multiaddr.NewMultiaddr(cfg.API.ListenAddress) }
if err != nil { return lr.SetAPIEndpoint(apima)
return err })),
}
endpoint = apima
return lr.SetAPIEndpoint(apima)
}),
node.ApplyIf(func(s *node.Settings) bool { return !cctx.Bool("bootstrap") }, node.ApplyIf(func(s *node.Settings) bool { return !cctx.Bool("bootstrap") },
node.Unset(node.RunPeerMgrKey), node.Unset(node.RunPeerMgrKey),
node.Unset(new(*peermgr.PeerMgr)), node.Unset(new(*peermgr.PeerMgr)),
@ -110,6 +108,11 @@ var DaemonCmd = &cli.Command{
return err return err
} }
endpoint, err := r.APIEndpoint()
if err != nil {
return err
}
// TODO: properly parse api endpoint (or make it a URL) // TODO: properly parse api endpoint (or make it a URL)
return serveRPC(api, stop, endpoint) return serveRPC(api, stop, endpoint)
}, },

View File

@ -14,6 +14,7 @@ import (
"github.com/libp2p/go-libp2p-peerstore/pstoremem" "github.com/libp2p/go-libp2p-peerstore/pstoremem"
pubsub "github.com/libp2p/go-libp2p-pubsub" pubsub "github.com/libp2p/go-libp2p-pubsub"
record "github.com/libp2p/go-libp2p-record" record "github.com/libp2p/go-libp2p-record"
"github.com/multiformats/go-multiaddr"
"go.uber.org/fx" "go.uber.org/fx"
"golang.org/x/xerrors" "golang.org/x/xerrors"
@ -284,6 +285,14 @@ func ConfigCommon(cfg *config.Common) Option {
return Options( return Options(
func(s *Settings) error { s.Config = true; return nil }, func(s *Settings) error { s.Config = true; return nil },
Override(SetApiEndpointKey, func(lr repo.LockedRepo) error {
apima, err := multiaddr.NewMultiaddr(cfg.API.ListenAddress)
if err != nil {
return err
}
return lr.SetAPIEndpoint(apima)
}),
ApplyIf(func(s *Settings) bool { return s.Online }, ApplyIf(func(s *Settings) bool { return s.Online },
Override(StartListeningKey, lp2p.StartListening(cfg.Libp2p.ListenAddresses)), Override(StartListeningKey, lp2p.StartListening(cfg.Libp2p.ListenAddresses)),

View File

@ -75,13 +75,15 @@ func DefaultFullNode() *FullNode {
} }
func DefaultStorageMiner() *StorageMiner { func DefaultStorageMiner() *StorageMiner {
return &StorageMiner{ cfg := &StorageMiner{
Common: defCommon(), Common: defCommon(),
SectorBuilder: SectorBuilder{ SectorBuilder: SectorBuilder{
WorkerCount: 5, WorkerCount: 5,
}, },
} }
cfg.Common.API.ListenAddress = "/ip6/::1/tcp/2345/http"
return cfg
} }
var _ encoding.TextMarshaler = (*Duration)(nil) var _ encoding.TextMarshaler = (*Duration)(nil)