From 70419c0f55a8cb11e93918b45224a5043e24161b Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 22 Oct 2019 19:18:06 +0200 Subject: [PATCH 1/3] Use API ListenAddress from config License: MIT Signed-off-by: Jakub Sztandera --- cmd/lotus/daemon.go | 16 ++++++++++------ cmd/lotus/rpc.go | 20 ++++++++++++++------ lotuspond/spawn.go | 13 +++++++++++-- node/repo/fsrepo.go | 2 +- 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/cmd/lotus/daemon.go b/cmd/lotus/daemon.go index 5a978a105..72f51e7fd 100644 --- a/cmd/lotus/daemon.go +++ b/cmd/lotus/daemon.go @@ -29,10 +29,6 @@ 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: "", @@ -81,6 +77,8 @@ var DaemonCmd = &cli.Command{ } var api api.FullNode + var endpoint multiaddr.Multiaddr + stop, err := node.New(ctx, node.FullAPI(&api), @@ -90,10 +88,16 @@ var DaemonCmd = &cli.Command{ genesis, node.Override(node.SetApiEndpointKey, func(lr repo.LockedRepo) error { - apima, err := multiaddr.NewMultiaddr("/ip4/127.0.0.1/tcp/" + cctx.String("api")) + 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) }), @@ -107,6 +111,6 @@ var DaemonCmd = &cli.Command{ } // TODO: properly parse api endpoint (or make it a URL) - return serveRPC(api, stop, "127.0.0.1:"+cctx.String("api")) + return serveRPC(api, stop, endpoint) }, } diff --git a/cmd/lotus/rpc.go b/cmd/lotus/rpc.go index 18337d3e4..3b203fff2 100644 --- a/cmd/lotus/rpc.go +++ b/cmd/lotus/rpc.go @@ -9,19 +9,22 @@ import ( "os/signal" "syscall" - "github.com/ipfs/go-cid" - logging "github.com/ipfs/go-log" - "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/lib/auth" "github.com/filecoin-project/lotus/lib/jsonrpc" "github.com/filecoin-project/lotus/node" "github.com/filecoin-project/lotus/node/impl" + + "github.com/ipfs/go-cid" + logging "github.com/ipfs/go-log" + "github.com/multiformats/go-multiaddr" + manet "github.com/multiformats/go-multiaddr-net" + "golang.org/x/xerrors" ) var log = logging.Logger("main") -func serveRPC(a api.FullNode, stop node.StopFunc, addr string) error { +func serveRPC(a api.FullNode, stop node.StopFunc, addr multiaddr.Multiaddr) error { rpcServer := jsonrpc.NewServer() rpcServer.Register("Filecoin", api.PermissionedFullAPI(a)) @@ -39,7 +42,12 @@ func serveRPC(a api.FullNode, stop node.StopFunc, addr string) error { http.Handle("/rest/v0/import", importAH) - srv := &http.Server{Addr: addr, Handler: http.DefaultServeMux} + lst, err := manet.Listen(addr) + if err != nil { + return xerrors.Errorf("could not listen: %w", err) + } + + srv := &http.Server{Handler: http.DefaultServeMux} sigChan := make(chan os.Signal, 2) go func() { @@ -53,7 +61,7 @@ func serveRPC(a api.FullNode, stop node.StopFunc, addr string) error { }() signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT) - return srv.ListenAndServe() + return srv.Serve(manet.NetListener(lst)) } func handleImport(a *impl.FullNodeAPI) func(w http.ResponseWriter, r *http.Request) { diff --git a/lotuspond/spawn.go b/lotuspond/spawn.go index eac9ea418..f86fc15d4 100644 --- a/lotuspond/spawn.go +++ b/lotuspond/spawn.go @@ -2,13 +2,15 @@ package main import ( "fmt" - "golang.org/x/xerrors" "io" "io/ioutil" "os" "os/exec" + "path/filepath" "sync/atomic" "time" + + "golang.org/x/xerrors" ) func (api *api) Spawn() (nodeInfo, error) { @@ -45,8 +47,15 @@ func (api *api) Spawn() (nodeInfo, error) { } mux := newWsMux() + confStr := fmt.Sprintf("[API]\nListenAddress = \"/ip6/::1/tcp/%d/http\"\n", 2500+id) + + err = ioutil.WriteFile(filepath.Join(dir, "config.toml"), []byte(confStr), 0700) + if err != nil { + return nodeInfo{}, err + } + + cmd := exec.Command("./lotus", "daemon", "--bootstrap=false", genParam) - cmd := exec.Command("./lotus", "daemon", "--bootstrap=false", genParam, "--api", fmt.Sprintf("%d", 2500+id)) cmd.Stderr = io.MultiWriter(os.Stderr, errlogfile, mux.errpw) cmd.Stdout = io.MultiWriter(os.Stdout, logfile, mux.outpw) cmd.Env = append(os.Environ(), "LOTUS_PATH="+dir) diff --git a/node/repo/fsrepo.go b/node/repo/fsrepo.go index cce67ba8a..423986899 100644 --- a/node/repo/fsrepo.go +++ b/node/repo/fsrepo.go @@ -78,7 +78,7 @@ func NewFS(path string) (*FsRepo, error) { } func (fsr *FsRepo) Exists() (bool, error) { - _, err := os.Stat(filepath.Join(fsr.path, fsConfig)) + _, err := os.Stat(filepath.Join(fsr.path, fsDatastore)) notexist := os.IsNotExist(err) if notexist { err = nil From a58e1653391bf5065941a506f6dd6044e1085ecd Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 12 Nov 2019 19:31:17 +0100 Subject: [PATCH 2/3] Restore api flags License: MIT Signed-off-by: Jakub Sztandera --- cmd/lotus-storage-miner/run.go | 34 +++++++++++++++++++++++---------- cmd/lotus/daemon.go | 35 ++++++++++++++++++---------------- node/builder.go | 9 +++++++++ node/config/def.go | 4 +++- 4 files changed, 55 insertions(+), 27 deletions(-) diff --git a/cmd/lotus-storage-miner/run.go b/cmd/lotus-storage-miner/run.go index 7f978806e..913f81288 100644 --- a/cmd/lotus-storage-miner/run.go +++ b/cmd/lotus-storage-miner/run.go @@ -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)) }, } diff --git a/cmd/lotus/daemon.go b/cmd/lotus/daemon.go index 72f51e7fd..05ca99a41 100644 --- a/cmd/lotus/daemon.go +++ b/cmd/lotus/daemon.go @@ -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) }, diff --git a/node/builder.go b/node/builder.go index 1bf6881fc..585973c0c 100644 --- a/node/builder.go +++ b/node/builder.go @@ -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)), diff --git a/node/config/def.go b/node/config/def.go index 928ea1d6d..d37703524 100644 --- a/node/config/def.go +++ b/node/config/def.go @@ -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) From d9520a05ddd14b9369917f3ca7e3e598354b9267 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Tue, 12 Nov 2019 22:42:26 +0100 Subject: [PATCH 3/3] Make sure pond works, don't override config License: MIT Signed-off-by: Jakub Sztandera --- go.sum | 20 -------------------- lotuspond/spawn.go | 2 +- node/config/def.go | 4 ++-- node/repo/fsrepo.go | 12 +++++++++++- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/go.sum b/go.sum index 2ba4fd2b6..71a254bd4 100644 --- a/go.sum +++ b/go.sum @@ -8,7 +8,6 @@ github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9 h1:HD8gA2tkBy github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/GeertJohan/go.incremental v1.0.0 h1:7AH+pY1XUgQE4Y1HcXYaMqAI0m9yrFqo/jt0CW30vsg= github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= github.com/GeertJohan/go.rice v1.0.0 h1:KkI6O9uMaQU3VEKaj01ulavtF7o1fWT7+pk/4voiMLQ= github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= @@ -22,11 +21,8 @@ github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrU github.com/Stebalien/go-bitfield v0.0.1 h1:X3kbSSPUaJK60wV2hjOPZwmpljr6VGCqdq4cBLhbQBo= github.com/Stebalien/go-bitfield v0.0.1/go.mod h1:GNjFpasyUVkHMsfEOk8EFLJ9syQ6SI+XWrX9Wf2XH0s= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw= github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/apache/thrift v0.12.0 h1:pODnxUFNcjP9UTLZGTdeh+j16A8lJbRvD3rOtrk/7bs= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -222,7 +218,6 @@ github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9 github.com/ipfs/go-log v0.0.2-0.20190920042044-a609c1ae5144 h1:5WM8S1nwquWQ3zEuNhK82NE5Di6Pd41qz9JxxvxTAIA= github.com/ipfs/go-log v0.0.2-0.20190920042044-a609c1ae5144/go.mod h1:azGN5dH7ailfREknDDNYB0Eq4qZ/4I4Y3gO0ivjJNyM= github.com/ipfs/go-merkledag v0.1.0/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk= -github.com/ipfs/go-merkledag v0.2.3 h1:aMdkK9G1hEeNvn3VXfiEMLY0iJnbiQQUHnM0HFJREsE= github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk= github.com/ipfs/go-merkledag v0.2.4 h1:ZSHQSe9BENfixUjT+MaLeHEeZGxrZQfgo3KT3SLosF8= github.com/ipfs/go-merkledag v0.2.4/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk= @@ -255,7 +250,6 @@ github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsj github.com/jbenet/goprocess v0.1.3 h1:YKyIEECS/XvcfHtBzxtjBBbWK+MbvA6dG8ASiqwvr10= github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -417,7 +411,6 @@ github.com/marten-seemann/qtls v0.2.3 h1:0yWJ43C62LsZt08vuQJDK1uC1czUc3FJeCLPoNA github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -470,8 +463,6 @@ github.com/multiformats/go-multistream v0.0.1/go.mod h1:fJTiDfXJVmItycydCnNx4+wS github.com/multiformats/go-multistream v0.1.0 h1:UpO6jrsjqs46mqAK3n6wKRYFhugss9ArzbyUzU+4wkQ= github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229 h1:E2B8qYyeSgv5MXpmzZXRNp8IAQ4vjxIjhpAf5hv/tAg= -github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229 h1:E2B8qYyeSgv5MXpmzZXRNp8IAQ4vjxIjhpAf5hv/tAg= github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229/go.mod h1:0aYXnNPJ8l7uZxf45rWW1a/uME32OF0rhiYGNQ2oF2E= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -501,7 +492,6 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVwNU= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -509,7 +499,6 @@ github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqn github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= @@ -541,12 +530,8 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= -github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830 h1:8kxMKmKzXXL4Ru1nyhvdms/JjWt+3YLpvRb/bAjO/y0= @@ -671,7 +656,6 @@ golang.org/x/sys v0.0.0-20190526052359-791d8a0f4d09/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456 h1:ng0gs1AKnRRuEMZoTLLlbOd+C17zUDepwGQBb/n+JVg= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -679,7 +663,6 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -713,10 +696,8 @@ google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRn google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -731,7 +712,6 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/urfave/cli.v2 v2.0.0-20180128182452-d3ae77c26ac8 h1:Ggy3mWN4l3PUFPfSG0YB3n5fVYggzysUmiUQ89SnX6Y= gopkg.in/urfave/cli.v2 v2.0.0-20180128182452-d3ae77c26ac8/go.mod h1:cKXr3E0k4aosgycml1b5z33BVV6hai1Kh7uDgFOkbcs= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/lotuspond/spawn.go b/lotuspond/spawn.go index f86fc15d4..a4f4c0b36 100644 --- a/lotuspond/spawn.go +++ b/lotuspond/spawn.go @@ -47,7 +47,7 @@ func (api *api) Spawn() (nodeInfo, error) { } mux := newWsMux() - confStr := fmt.Sprintf("[API]\nListenAddress = \"/ip6/::1/tcp/%d/http\"\n", 2500+id) + confStr := fmt.Sprintf("[API]\nListenAddress = \"/ip4/127.0.0.1/tcp/%d/http\"\n", 2500+id) err = ioutil.WriteFile(filepath.Join(dir, "config.toml"), []byte(confStr), 0700) if err != nil { diff --git a/node/config/def.go b/node/config/def.go index d37703524..d704b428b 100644 --- a/node/config/def.go +++ b/node/config/def.go @@ -54,7 +54,7 @@ type SectorBuilder struct { func defCommon() Common { return Common{ API: API{ - ListenAddress: "/ip6/::1/tcp/1234/http", + ListenAddress: "/ip4/127.0.0.1/tcp/1234/http", Timeout: Duration(30 * time.Second), }, Libp2p: Libp2p{ @@ -82,7 +82,7 @@ func DefaultStorageMiner() *StorageMiner { WorkerCount: 5, }, } - cfg.Common.API.ListenAddress = "/ip6/::1/tcp/2345/http" + cfg.Common.API.ListenAddress = "/ip4/127.0.0.1/tcp/2345/http" return cfg } diff --git a/node/repo/fsrepo.go b/node/repo/fsrepo.go index 423986899..b75138835 100644 --- a/node/repo/fsrepo.go +++ b/node/repo/fsrepo.go @@ -110,7 +110,17 @@ func (fsr *FsRepo) Init(t RepoType) error { } func (fsr *FsRepo) initConfig(t RepoType) error { - c, err := os.Create(filepath.Join(fsr.path, fsConfig)) + cfgP := filepath.Join(fsr.path, fsConfig) + + _, err := os.Stat(cfgP) + if err == nil { + // exists + return nil + } else if !os.IsNotExist(err) { + return err + } + + c, err := os.Create(cfgP) if err != nil { return err }