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"
"github.com/multiformats/go-multiaddr"
manet "github.com/multiformats/go-multiaddr-net"
"golang.org/x/xerrors"
"gopkg.in/urfave/cli.v2"
@ -27,7 +28,7 @@ var runCmd = &cli.Command{
Flags: []cli.Flag{
&cli.StringFlag{
Name: "api",
Value: "2345",
Value: "",
},
&cli.BoolFlag{
Name: "enable-gpu-proving",
@ -75,19 +76,27 @@ var runCmd = &cli.Command{
node.Online(),
node.Repo(r),
node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error {
apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" + cctx.String("api"))
if err != nil {
return err
}
return lr.SetAPIEndpoint(apima)
}),
node.ApplyIf(func(s *node.Settings) bool { return cctx.IsSet("api") },
node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error {
apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" +
cctx.String("api"))
if err != nil {
return err
}
return lr.SetAPIEndpoint(apima)
})),
node.Override(new(api.FullNode), nodeApi),
)
if err != nil {
return err
}
endpoint, err := r.APIEndpoint()
if err != nil {
return err
}
// Bootstrap with full node
remoteAddrs, err := nodeApi.NetAddrsListen(ctx)
if err != nil {
@ -100,6 +109,11 @@ var runCmd = &cli.Command{
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.Register("Filecoin", api.PermissionedStorMinerAPI(minerapi))
@ -110,7 +124,7 @@ var runCmd = &cli.Command{
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)
go func() {
@ -126,6 +140,6 @@ var runCmd = &cli.Command{
}()
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"
"github.com/filecoin-project/lotus/peermgr"
"github.com/multiformats/go-multiaddr"
"golang.org/x/xerrors"
"gopkg.in/urfave/cli.v2"
@ -29,6 +29,10 @@ var DaemonCmd = &cli.Command{
Name: "daemon",
Usage: "Start a lotus daemon process",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "api",
Value: "1234",
},
&cli.StringFlag{
Name: makeGenFlag,
Value: "",
@ -77,7 +81,6 @@ var DaemonCmd = &cli.Command{
}
var api api.FullNode
var endpoint multiaddr.Multiaddr
stop, err := node.New(ctx,
node.FullAPI(&api),
@ -87,20 +90,15 @@ var DaemonCmd = &cli.Command{
genesis,
node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error {
cfg, err := lr.Config()
if err != nil {
return xerrors.Errorf("could not get config: %w", err)
}
apima, err := multiaddr.NewMultiaddr(cfg.API.ListenAddress)
if err != nil {
return err
}
endpoint = apima
return lr.SetAPIEndpoint(apima)
}),
node.ApplyIf(func(s *node.Settings) bool { return cctx.IsSet("api") },
node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error {
apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" +
cctx.String("api"))
if err != nil {
return err
}
return lr.SetAPIEndpoint(apima)
})),
node.ApplyIf(func(s *node.Settings) bool { return !cctx.Bool("bootstrap") },
node.Unset(node.RunPeerMgrKey),
node.Unset(new(*peermgr.PeerMgr)),
@ -110,6 +108,11 @@ var DaemonCmd = &cli.Command{
return err
}
endpoint, err := r.APIEndpoint()
if err != nil {
return err
}
// TODO: properly parse api endpoint (or make it a URL)
return serveRPC(api, stop, endpoint)
},

View File

@ -14,6 +14,7 @@ import (
"github.com/libp2p/go-libp2p-peerstore/pstoremem"
pubsub "github.com/libp2p/go-libp2p-pubsub"
record "github.com/libp2p/go-libp2p-record"
"github.com/multiformats/go-multiaddr"
"go.uber.org/fx"
"golang.org/x/xerrors"
@ -284,6 +285,14 @@ func ConfigCommon(cfg *config.Common) Option {
return Options(
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 },
Override(StartListeningKey, lp2p.StartListening(cfg.Libp2p.ListenAddresses)),

View File

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