From d28302a2c768b04481c6723fbfb70306aa9dfcb9 Mon Sep 17 00:00:00 2001 From: Pietralberto Mazza Date: Fri, 10 May 2019 19:04:41 +0200 Subject: [PATCH] Expose electrum RPC port and log service addresses at start (#26) * move resources/ outside cli/ & expose electrs RPC port * log service addresses when starting nigiri & minor fixes --- cli/cmd/start.go | 55 ++++++++++++++++--- cli/config/main.go | 1 - .../docker-compose-regtest-liquid.yml | 6 ++ .../docker-compose-regtest.yml | 5 +- .../volumes/liquidregtest/config/bitcoin.conf | 0 .../liquidregtest/liquid-config/liquid.conf | 0 .../volumes/regtest/config/bitcoin.conf | 0 scripts/install | 2 +- 8 files changed, 59 insertions(+), 10 deletions(-) rename {cli/resources => resources}/docker-compose-regtest-liquid.yml (95%) rename {cli/resources => resources}/docker-compose-regtest.yml (94%) rename {cli/resources => resources}/volumes/liquidregtest/config/bitcoin.conf (100%) rename {cli/resources => resources}/volumes/liquidregtest/liquid-config/liquid.conf (100%) rename {cli/resources => resources}/volumes/regtest/config/bitcoin.conf (100%) diff --git a/cli/cmd/start.go b/cli/cmd/start.go index f6c72cd..de6aa27 100644 --- a/cli/cmd/start.go +++ b/cli/cmd/start.go @@ -9,6 +9,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/client" + log "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/vulpemventures/nigiri/cli/config" ) @@ -40,6 +41,14 @@ func startChecks(cmd *cobra.Command, args []string) error { return err } + // if datadir is set we must copy the resources directory from ~/.nigiri + // to the new one + if datadir != getDefaultDir() { + if err := copyResources(datadir); err != nil { + return err + } + } + // if nigiri is already running return error isRunning, err := nigiriIsRunning() if err != nil { @@ -74,16 +83,48 @@ func start(cmd *cobra.Command, args []string) error { return err } - return bashCmd.Run() + err = bashCmd.Run() + if err != nil { + return err + } + + log.WithFields(log.Fields{ + "node": "localhost:19001", + "electrm_RPC": "localhost:60401", + "electrum_API": "localhost:3002", + "esplora": "localhost:5000", + "chopsticks": "localhost:3000", + }).Info("Bitcoin services:") + + viper := config.Viper() + if viper.GetBool(config.AttachLiquid) { + log.WithFields(log.Fields{ + "node": "localhost:18884", + "electrum_RPC": "localhost:60411", + "electrum_API": "localhost:3022", + "esplora": "localhost:5001", + "chopsticks": "localhost:3001", + }).Info("Liquid services:") + } + + return nil } var images = map[string]bool{ - "vulpemventures/electrs-liquid:latest": true, - "vulpemventures/electrs:latest": true, - "vulpemventures/esplora:latest": true, - "vulpemventures/liquid:latest": true, - "vulpemventures/bitcoin:latest": true, - "vulpemventures/esplora-liquid:latest": true, + "vulpemventures/bitcoin:latest": true, + "vulpemventures/liquid:latest": true, + "vulpemventures/electrs:latest": true, + "vulpemventures/electrs-liquid:latest": true, + "vulpemventures/esplora:latest": true, + "vulpemventures/esplora-liquid:latest": true, + "vulpemventures/nigiri-chopsticks:latest": true, +} + +func copyResources(datadir string) error { + defaultDatadir := getDefaultDir() + cmd := exec.Command("cp", "-R", filepath.Join(defaultDatadir, "resources"), datadir) + return cmd.Run() + } func nigiriExists(listAll bool) (bool, error) { diff --git a/cli/config/main.go b/cli/config/main.go index ab14900..6d19fa4 100644 --- a/cli/config/main.go +++ b/cli/config/main.go @@ -26,7 +26,6 @@ func init() { defaults := viper.New() newDefaultConfig(defaults) setConfigFromDefaults(vip, defaults) - // vip.SetConfigFile(GetFullPath()) } func Viper() *viper.Viper { diff --git a/cli/resources/docker-compose-regtest-liquid.yml b/resources/docker-compose-regtest-liquid.yml similarity index 95% rename from cli/resources/docker-compose-regtest-liquid.yml rename to resources/docker-compose-regtest-liquid.yml index f4574fe..a679792 100644 --- a/cli/resources/docker-compose-regtest-liquid.yml +++ b/resources/docker-compose-regtest-liquid.yml @@ -36,6 +36,8 @@ services: - admin1:123 - --http-addr - 0.0.0.0:3002 + - --electrum-rpc-addr + - 0.0.0.0:60401 - --cors - "*" networks: @@ -46,6 +48,7 @@ services: depends_on: - bitcoin ports: + - 60401:60401 - 3002:3002 volumes: - ./volumes/liquidregtest/config/:/config @@ -65,6 +68,8 @@ services: - admin1:123 - --http-addr - 0.0.0.0:3002 + - --electrum-rpc-addr + - 0.0.0.0:60401 - --cors - "*" networks: @@ -75,6 +80,7 @@ services: depends_on: - liquid ports: + - 60411:60401 - 3022:3002 volumes: - ./volumes/liquidregtest/liquid-config/:/config diff --git a/cli/resources/docker-compose-regtest.yml b/resources/docker-compose-regtest.yml similarity index 94% rename from cli/resources/docker-compose-regtest.yml rename to resources/docker-compose-regtest.yml index c9d9a4c..72c680e 100644 --- a/cli/resources/docker-compose-regtest.yml +++ b/resources/docker-compose-regtest.yml @@ -10,7 +10,7 @@ services: - 19001:19001 volumes: - ./volumes/regtest/config/:/config - # Block explorer REST server + # Block explorer server electrs: image: vulpemventures/electrs:latest entrypoint: @@ -27,6 +27,8 @@ services: - admin1:123 - --http-addr - 0.0.0.0:3002 + - --electrum-rpc-addr + - 0.0.0.0:60401 - --cors - "*" networks: @@ -37,6 +39,7 @@ services: depends_on: - bitcoin ports: + - 60401:60401 - 3002:3002 volumes: - ./volumes/regtest/config/:/config diff --git a/cli/resources/volumes/liquidregtest/config/bitcoin.conf b/resources/volumes/liquidregtest/config/bitcoin.conf similarity index 100% rename from cli/resources/volumes/liquidregtest/config/bitcoin.conf rename to resources/volumes/liquidregtest/config/bitcoin.conf diff --git a/cli/resources/volumes/liquidregtest/liquid-config/liquid.conf b/resources/volumes/liquidregtest/liquid-config/liquid.conf similarity index 100% rename from cli/resources/volumes/liquidregtest/liquid-config/liquid.conf rename to resources/volumes/liquidregtest/liquid-config/liquid.conf diff --git a/cli/resources/volumes/regtest/config/bitcoin.conf b/resources/volumes/regtest/config/bitcoin.conf similarity index 100% rename from cli/resources/volumes/regtest/config/bitcoin.conf rename to resources/volumes/regtest/config/bitcoin.conf diff --git a/scripts/install b/scripts/install index d5856a0..60e0d25 100644 --- a/scripts/install +++ b/scripts/install @@ -9,5 +9,5 @@ dep ensure -v go generate ./... mkdir -p $HOME/.nigiri -cp -R cli/resources $HOME/.nigiri +cp -R resources $HOME/.nigiri popd \ No newline at end of file