From 028bfa35d1bdb4f4ec3cc9e17be70f7458e2c126 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Mon, 22 Nov 2021 13:41:59 +0100 Subject: [PATCH 01/15] Initial setup for go CLI --- apps/lukso-cli/flags.go | 21 +++++++++++++++++++++ apps/lukso-cli/go.mod | 3 +++ apps/lukso-cli/main.go | 11 +++++++++++ 3 files changed, 35 insertions(+) create mode 100644 apps/lukso-cli/flags.go create mode 100644 apps/lukso-cli/go.mod create mode 100644 apps/lukso-cli/main.go diff --git a/apps/lukso-cli/flags.go b/apps/lukso-cli/flags.go new file mode 100644 index 0000000..e4cdc23 --- /dev/null +++ b/apps/lukso-cli/flags.go @@ -0,0 +1,21 @@ +package main + +import ( + "flag" + "fmt" +) + + +func initFlags() { + + help := map[string]string{ + "help" + "pandora": "sets pandora tag to be used", + } + + + var nFlag = flag.Int("pandora", 1234, help["pandora"]) + var nFlag = flag.Int("pandora", 1234, help["config"]) + flag.Parse() + fmt.Println(*nFlag) +} diff --git a/apps/lukso-cli/go.mod b/apps/lukso-cli/go.mod new file mode 100644 index 0000000..74306dd --- /dev/null +++ b/apps/lukso-cli/go.mod @@ -0,0 +1,3 @@ +module lukso-cli + +go 1.16 diff --git a/apps/lukso-cli/main.go b/apps/lukso-cli/main.go new file mode 100644 index 0000000..8b819bd --- /dev/null +++ b/apps/lukso-cli/main.go @@ -0,0 +1,11 @@ +package main + +import ( + "fmt" + //"os" +) + +func main() { + fmt.Println("works") + initFlags() +} From 0a7a3153913bbc7eb42e76d5b36080cb476b85fe Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Wed, 24 Nov 2021 09:45:39 +0100 Subject: [PATCH 02/15] Change CLI library --- apps/lukso-cli/flags.go | 36 ++++++++++++++++++++++++++---------- apps/lukso-cli/go.mod | 4 +++- apps/lukso-cli/go.sum | 12 ++++++++++++ apps/lukso-cli/main.go | 6 ------ 4 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 apps/lukso-cli/go.sum diff --git a/apps/lukso-cli/flags.go b/apps/lukso-cli/flags.go index e4cdc23..fca5265 100644 --- a/apps/lukso-cli/flags.go +++ b/apps/lukso-cli/flags.go @@ -1,21 +1,37 @@ package main import ( - "flag" - "fmt" -) + "log" + "os" + "github.com/urfave/cli" +) func initFlags() { - help := map[string]string{ - "help" - "pandora": "sets pandora tag to be used", + app := cli.NewApp() + app.Name = "LUKSO CLI" + app.Usage = "Tool for managing LUKSO node" + app.UsageText = "lukso [--flags]" + + luksoFlags := []cli.Flag{ + cli.StringFlag{ + Name: "pandora", + }, } + app.Commands = []cli.Command{ + { + Name: "start", + Usage: "Starts up the client", + UsageText: "lukso", + Flags: luksoFlags, + }, + } + + err := app.Run(os.Args) + if err != nil { + log.Fatal(err) + } - var nFlag = flag.Int("pandora", 1234, help["pandora"]) - var nFlag = flag.Int("pandora", 1234, help["config"]) - flag.Parse() - fmt.Println(*nFlag) } diff --git a/apps/lukso-cli/go.mod b/apps/lukso-cli/go.mod index 74306dd..d56f8ad 100644 --- a/apps/lukso-cli/go.mod +++ b/apps/lukso-cli/go.mod @@ -1,3 +1,5 @@ -module lukso-cli +module lukso go 1.16 + +require github.com/urfave/cli v1.22.5 // indirect diff --git a/apps/lukso-cli/go.sum b/apps/lukso-cli/go.sum new file mode 100644 index 0000000..a621ebb --- /dev/null +++ b/apps/lukso-cli/go.sum @@ -0,0 +1,12 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU= +github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/apps/lukso-cli/main.go b/apps/lukso-cli/main.go index 8b819bd..10783b9 100644 --- a/apps/lukso-cli/main.go +++ b/apps/lukso-cli/main.go @@ -1,11 +1,5 @@ package main -import ( - "fmt" - //"os" -) - func main() { - fmt.Println("works") initFlags() } From bb3c5424fcb8042ad9c338c8db7d415e95911f92 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Wed, 24 Nov 2021 12:49:12 +0100 Subject: [PATCH 03/15] Add arguments --- apps/lukso-cli/config/config.go | 7 ++++++ apps/lukso-cli/config/defaults.go | 12 ++++++++++ apps/lukso-cli/flags.go | 37 ------------------------------ apps/lukso-cli/flags/flags.go | 28 ++++++++++++++++++++++ apps/lukso-cli/flags/luksoFlags.go | 28 ++++++++++++++++++++++ apps/lukso-cli/flags/start.go | 28 ++++++++++++++++++++++ apps/lukso-cli/flags/stop.go | 28 ++++++++++++++++++++++ apps/lukso-cli/go.mod | 7 ++++-- apps/lukso-cli/go.sum | 3 +++ apps/lukso-cli/lukso-cli.go | 18 +++++++++++++++ apps/lukso-cli/main.go | 5 ---- 11 files changed, 157 insertions(+), 44 deletions(-) create mode 100644 apps/lukso-cli/config/config.go create mode 100644 apps/lukso-cli/config/defaults.go delete mode 100644 apps/lukso-cli/flags.go create mode 100644 apps/lukso-cli/flags/flags.go create mode 100644 apps/lukso-cli/flags/luksoFlags.go create mode 100644 apps/lukso-cli/flags/start.go create mode 100644 apps/lukso-cli/flags/stop.go create mode 100644 apps/lukso-cli/lukso-cli.go delete mode 100644 apps/lukso-cli/main.go diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/config.go new file mode 100644 index 0000000..0e6d7c8 --- /dev/null +++ b/apps/lukso-cli/config/config.go @@ -0,0 +1,7 @@ +package config + +var ConfigValues LuksoValues + +func LoadConfig(configFilePath string) { + println(configFilePath) +} diff --git a/apps/lukso-cli/config/defaults.go b/apps/lukso-cli/config/defaults.go new file mode 100644 index 0000000..7cb4d75 --- /dev/null +++ b/apps/lukso-cli/config/defaults.go @@ -0,0 +1,12 @@ +package config + +type LuksoValues struct { + Network string `yaml:"NETWORK"` + Config string +} + +var DefaultValues LuksoValues + +func LoadDefaults() { + DefaultValues.Network = "l15" +} diff --git a/apps/lukso-cli/flags.go b/apps/lukso-cli/flags.go deleted file mode 100644 index fca5265..0000000 --- a/apps/lukso-cli/flags.go +++ /dev/null @@ -1,37 +0,0 @@ -package main - -import ( - "log" - "os" - - "github.com/urfave/cli" -) - -func initFlags() { - - app := cli.NewApp() - app.Name = "LUKSO CLI" - app.Usage = "Tool for managing LUKSO node" - app.UsageText = "lukso [--flags]" - - luksoFlags := []cli.Flag{ - cli.StringFlag{ - Name: "pandora", - }, - } - - app.Commands = []cli.Command{ - { - Name: "start", - Usage: "Starts up the client", - UsageText: "lukso", - Flags: luksoFlags, - }, - } - - err := app.Run(os.Args) - if err != nil { - log.Fatal(err) - } - -} diff --git a/apps/lukso-cli/flags/flags.go b/apps/lukso-cli/flags/flags.go new file mode 100644 index 0000000..2b9aa39 --- /dev/null +++ b/apps/lukso-cli/flags/flags.go @@ -0,0 +1,28 @@ +package flags + +import ( + "log" + "os" + + "github.com/urfave/cli" +) + +func InitFlags() { + + app := cli.NewApp() + app.Name = "LUKSO CLI" + app.Usage = "Tool for managing LUKSO node" + app.UsageText = "lukso [argument] [--flags]" + app.Flags = getLuksoFlags() + + app.Commands = []cli.Command{ + getStartCommand(), + getStopCommand(), + } + + err := app.Run(os.Args) + if err != nil { + log.Fatal(err) + } + +} diff --git a/apps/lukso-cli/flags/luksoFlags.go b/apps/lukso-cli/flags/luksoFlags.go new file mode 100644 index 0000000..d083e65 --- /dev/null +++ b/apps/lukso-cli/flags/luksoFlags.go @@ -0,0 +1,28 @@ +package flags +import ( + + "github.com/urfave/cli" + + "lukso-cli/config" +) + +var FlagValues config.LuksoValues +var luksoFlags []cli.Flag + +func getLuksoFlags () []cli.Flag { + luksoFlags = []cli.Flag{ + cli.StringFlag{ + Name: "config", + Value: "", + Usage: "Loads config file", + Destination: &FlagValues.Config, + }, + cli.StringFlag{ + Name: "network", + Value: "l15", + Usage: "Picks which setup to use", + Destination: &FlagValues.Network, + }, + } + return luksoFlags +} \ No newline at end of file diff --git a/apps/lukso-cli/flags/start.go b/apps/lukso-cli/flags/start.go new file mode 100644 index 0000000..67e770b --- /dev/null +++ b/apps/lukso-cli/flags/start.go @@ -0,0 +1,28 @@ +package flags + +import "github.com/urfave/cli" + +func getStartCommand() cli.Command { + startCommands := []cli.Command{ + { + Name: "vanguard", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) { + println("Starting Vanguard") + }, + }, + } + + start := cli.Command{ + Name: "start", + Usage: "Starts up all or specific client(s)", + UsageText: "lukso start [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) { + println("Starting all") + }, + Subcommands: startCommands, + } + + return start +} diff --git a/apps/lukso-cli/flags/stop.go b/apps/lukso-cli/flags/stop.go new file mode 100644 index 0000000..f2bfec5 --- /dev/null +++ b/apps/lukso-cli/flags/stop.go @@ -0,0 +1,28 @@ +package flags + +import "github.com/urfave/cli" + +func getStopCommand() cli.Command { + stopSubCommands := []cli.Command{ + { + Name: "vanguard", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) { + println("Stopping Vanguard") + }, + }, + } + + stop := cli.Command{ + Name: "stop", + Usage: "Stop up all or specific client(s)", + UsageText: "lukso stop [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) { + println("Stopping all") + }, + Subcommands: stopSubCommands, + } + + return stop +} diff --git a/apps/lukso-cli/go.mod b/apps/lukso-cli/go.mod index d56f8ad..765a08d 100644 --- a/apps/lukso-cli/go.mod +++ b/apps/lukso-cli/go.mod @@ -1,5 +1,8 @@ -module lukso +module lukso-cli go 1.16 -require github.com/urfave/cli v1.22.5 // indirect +require ( + github.com/urfave/cli v1.22.5 // indirect + github.com/urfave/cli/v2 v2.3.0 // indirect +) diff --git a/apps/lukso-cli/go.sum b/apps/lukso-cli/go.sum index a621ebb..2cbdf69 100644 --- a/apps/lukso-cli/go.sum +++ b/apps/lukso-cli/go.sum @@ -8,5 +8,8 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5I github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU= github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go new file mode 100644 index 0000000..159ce1b --- /dev/null +++ b/apps/lukso-cli/lukso-cli.go @@ -0,0 +1,18 @@ +package main + +import ( + "lukso-cli/config" + "lukso-cli/flags" +) + +func main() { + flags.InitFlags() + + if flags.FlagValues.Config != "" { + println("works") + config.LoadConfig(flags.FlagValues.Config) + } + + // var LuksoSettings config.LuksoValues + +} diff --git a/apps/lukso-cli/main.go b/apps/lukso-cli/main.go deleted file mode 100644 index 10783b9..0000000 --- a/apps/lukso-cli/main.go +++ /dev/null @@ -1,5 +0,0 @@ -package main - -func main() { - initFlags() -} From 45e0a094e602d0cb9df65eb7b06467497dd7b619 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Wed, 24 Nov 2021 15:55:44 +0100 Subject: [PATCH 04/15] Add Loading from YAML --- apps/lukso-cli/config/config.go | 22 ++++++++++++++-- apps/lukso-cli/config/defaults.go | 8 +++++- apps/lukso-cli/flags/luksoFlags.go | 14 ++++++++++- apps/lukso-cli/go.mod | 1 + apps/lukso-cli/go.sum | 2 ++ apps/lukso-cli/lukso-cli.go | 32 ++++++++++++++++++++++-- apps/lukso-cli/runner/pandora/pandora.go | 5 ++++ 7 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 apps/lukso-cli/runner/pandora/pandora.go diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/config.go index 0e6d7c8..790fa14 100644 --- a/apps/lukso-cli/config/config.go +++ b/apps/lukso-cli/config/config.go @@ -1,7 +1,25 @@ package config +import ( + "fmt" + "io/ioutil" + + "gopkg.in/yaml.v3" +) + var ConfigValues LuksoValues -func LoadConfig(configFilePath string) { - println(configFilePath) +func LoadConfig(configFilePath string) error { + buf, err := ioutil.ReadFile(configFilePath) + if err != nil { + return err + } + + c := &ConfigValues + err = yaml.Unmarshal(buf, c) + if err != nil { + return fmt.Errorf("in file %q: %v", configFilePath, err) + } + + return nil } diff --git a/apps/lukso-cli/config/defaults.go b/apps/lukso-cli/config/defaults.go index 7cb4d75..6d9f99d 100644 --- a/apps/lukso-cli/config/defaults.go +++ b/apps/lukso-cli/config/defaults.go @@ -3,10 +3,16 @@ package config type LuksoValues struct { Network string `yaml:"NETWORK"` Config string + OrchestratorTag string `yaml:"ORCHESTRATOR_TAG"` + PandoraTag string `yaml:"PANDORA_TAG"` + VanguardTag string `yaml:"VANGUARD_TAG"` + ValidatorTag string `yaml:"VALIDATOR_TAG"` + } var DefaultValues LuksoValues -func LoadDefaults() { +func LoadDefaults() LuksoValues { DefaultValues.Network = "l15" + return DefaultValues } diff --git a/apps/lukso-cli/flags/luksoFlags.go b/apps/lukso-cli/flags/luksoFlags.go index d083e65..d0804f9 100644 --- a/apps/lukso-cli/flags/luksoFlags.go +++ b/apps/lukso-cli/flags/luksoFlags.go @@ -19,10 +19,22 @@ func getLuksoFlags () []cli.Flag { }, cli.StringFlag{ Name: "network", - Value: "l15", + Value: "", Usage: "Picks which setup to use", Destination: &FlagValues.Network, }, + cli.BoolFlag{ + Name: "l15-prod", + Usage: "Alias for --network l15-prod", + }, + cli.BoolFlag{ + Name: "l15-staging", + Usage: "Alias for --network l15-staging", + }, + cli.BoolFlag{ + Name: "l15-dev", + Usage: "Alias for --network l15-dev", + }, } return luksoFlags } \ No newline at end of file diff --git a/apps/lukso-cli/go.mod b/apps/lukso-cli/go.mod index 765a08d..51dc2b4 100644 --- a/apps/lukso-cli/go.mod +++ b/apps/lukso-cli/go.mod @@ -5,4 +5,5 @@ go 1.16 require ( github.com/urfave/cli v1.22.5 // indirect github.com/urfave/cli/v2 v2.3.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/apps/lukso-cli/go.sum b/apps/lukso-cli/go.sum index 2cbdf69..2e8fa88 100644 --- a/apps/lukso-cli/go.sum +++ b/apps/lukso-cli/go.sum @@ -13,3 +13,5 @@ github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/X gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go index 159ce1b..9576936 100644 --- a/apps/lukso-cli/lukso-cli.go +++ b/apps/lukso-cli/lukso-cli.go @@ -1,18 +1,46 @@ package main import ( + "fmt" + "reflect" + "lukso-cli/config" "lukso-cli/flags" ) +var LuksoSettings config.LuksoValues + func main() { flags.InitFlags() if flags.FlagValues.Config != "" { - println("works") + println("Config loaded") config.LoadConfig(flags.FlagValues.Config) } - // var LuksoSettings config.LuksoValues + config.LoadDefaults() + + // Build Settings + + v := reflect.ValueOf(LuksoSettings) + typeOfS := v.Type() + + // Awful but works + for i := 0; i < v.NumField(); i++ { + fmt.Printf("Field: %s\tValue: %v\n", typeOfS.Field(i).Name, v.Field(i).Interface()) + + r := reflect.ValueOf(&flags.FlagValues) + f := reflect.Indirect(r).FieldByName(typeOfS.Field(i).Name) + println(f.String()) + + if f.String() != "" { + println(flags.FlagValues.Network) + } else if config.ConfigValues.Network != "" { + println(config.ConfigValues.Network) + } else { + println(config.DefaultValues.Network) + } + + } } diff --git a/apps/lukso-cli/runner/pandora/pandora.go b/apps/lukso-cli/runner/pandora/pandora.go new file mode 100644 index 0000000..4be3558 --- /dev/null +++ b/apps/lukso-cli/runner/pandora/pandora.go @@ -0,0 +1,5 @@ +package pandora + +func Start() { + +} \ No newline at end of file From e3232b66fc1a5edc640e52f9c19e12a05d93938f Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Wed, 24 Nov 2021 17:46:14 +0100 Subject: [PATCH 05/15] Add proper flag priortiy --- apps/lukso-cli/config/config.go | 4 +- apps/lukso-cli/config/defaults.go | 61 ++++++++++++++++++++++++------ apps/lukso-cli/flags/flags.go | 44 +++++++++++++++++++++ apps/lukso-cli/flags/luksoFlags.go | 30 ++++++++++----- apps/lukso-cli/lukso-cli.go | 41 +++++++------------- 5 files changed, 128 insertions(+), 52 deletions(-) diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/config.go index 790fa14..a3d7894 100644 --- a/apps/lukso-cli/config/config.go +++ b/apps/lukso-cli/config/config.go @@ -9,13 +9,13 @@ import ( var ConfigValues LuksoValues -func LoadConfig(configFilePath string) error { +func LoadConfig(LuksoSettings *LuksoValues, configFilePath string) error { buf, err := ioutil.ReadFile(configFilePath) if err != nil { return err } - c := &ConfigValues + c := &LuksoSettings err = yaml.Unmarshal(buf, c) if err != nil { return fmt.Errorf("in file %q: %v", configFilePath, err) diff --git a/apps/lukso-cli/config/defaults.go b/apps/lukso-cli/config/defaults.go index 6d9f99d..e3f039f 100644 --- a/apps/lukso-cli/config/defaults.go +++ b/apps/lukso-cli/config/defaults.go @@ -1,18 +1,55 @@ package config type LuksoValues struct { - Network string `yaml:"NETWORK"` - Config string - OrchestratorTag string `yaml:"ORCHESTRATOR_TAG"` - PandoraTag string `yaml:"PANDORA_TAG"` - VanguardTag string `yaml:"VANGUARD_TAG"` - ValidatorTag string `yaml:"VALIDATOR_TAG"` - -} + Force bool `yaml:"FORCE"` + Network string `yaml:"NETWORK"` + Coinbase string `yaml:"COINBASE"` + NodeName string `yaml:"NODE_NAME"` + LogsDir string `yaml:"LOGSDIR"` + DataDir string `yaml:"DATADIR"` + + Orchestrator struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + } `yaml:"ORCHESTRATOR"` + + Pandora struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + Bootnodes string `yaml:"BOOTNODES"` + HttpPort string `yaml:"HTTP_PORT"` + // TODO: find different name + UPExpose bool `yaml:"UP_EXPOSE"` + UnsafeExpose bool `yaml:"UNSAFE_EXPOSE"` + } `yaml:"PANDORA"` -var DefaultValues LuksoValues + Vanguard struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + Bootnodes string `yaml:"BOOTNODES"` + P2PPrivKEY string `yaml:"P2P_PRIVKEY"` + ExternalIP string `yaml:"EXTERNAL_IP"` + P2PHostDNS string `yaml:"P2PHostDNS"` + RPCHost string `yaml:"RPCHost"` + RPCPort string `yaml:"RPCPort"` + UDPPort string `yaml:"UDPPort"` + TCPPort string `yaml:"TCPPort"` + MonitoringHost string `yaml:"MONITORING_HOST"` + HTTPWeb3Provider string `yaml:"HTTP_WEB3_PROVIDER"` + } + + Validator struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + } + + WalletDir string `yaml:"WALLET_DIR"` + WalletPasswordFile string `yaml:"WALLET_PASSWORD_FILE"` +} -func LoadDefaults() LuksoValues { - DefaultValues.Network = "l15" - return DefaultValues +func LoadDefaults(LuksoSettings *LuksoValues) { + LuksoSettings.Force = false + LuksoSettings.Network = "l15" + LuksoSettings.Orchestrator.Verbosity = "info" + LuksoSettings.Pandora.Verbosity = "info" } diff --git a/apps/lukso-cli/flags/flags.go b/apps/lukso-cli/flags/flags.go index 2b9aa39..cafccc1 100644 --- a/apps/lukso-cli/flags/flags.go +++ b/apps/lukso-cli/flags/flags.go @@ -5,6 +5,8 @@ import ( "os" "github.com/urfave/cli" + + "lukso-cli/config" ) func InitFlags() { @@ -26,3 +28,45 @@ func InitFlags() { } } + +func LoadFlags(LuksoSettings *config.LuksoValues) { + + networksNum := 0 + + if FlagValues.Network != "" { + networksNum++ + } + + if FlagValues.l15_prod { + networksNum++ + } + + if FlagValues.l15_staging { + networksNum++ + } + + if FlagValues.l15_dev { + networksNum++ + } + + if networksNum > 1 { + log.Fatal("ERROR: You cannot connect to multiple networks, please choose only one.") + } + + if FlagValues.Network != "" { + LuksoSettings.Network = FlagValues.Network + } + + if FlagValues.l15_prod { + LuksoSettings.Network = "l15-prod" + } + + if FlagValues.l15_staging { + LuksoSettings.Network = "l15-staging" + } + + if FlagValues.l15_dev { + LuksoSettings.Network = "l15-dev" + } + +} diff --git a/apps/lukso-cli/flags/luksoFlags.go b/apps/lukso-cli/flags/luksoFlags.go index d0804f9..51f752a 100644 --- a/apps/lukso-cli/flags/luksoFlags.go +++ b/apps/lukso-cli/flags/luksoFlags.go @@ -1,15 +1,22 @@ package flags -import ( +import ( "github.com/urfave/cli" "lukso-cli/config" ) -var FlagValues config.LuksoValues +var FlagValues struct { + config.LuksoValues + Config string + l15_prod bool + l15_staging bool + l15_dev bool +} + var luksoFlags []cli.Flag -func getLuksoFlags () []cli.Flag { +func getLuksoFlags() []cli.Flag { luksoFlags = []cli.Flag{ cli.StringFlag{ Name: "config", @@ -24,17 +31,20 @@ func getLuksoFlags () []cli.Flag { Destination: &FlagValues.Network, }, cli.BoolFlag{ - Name: "l15-prod", - Usage: "Alias for --network l15-prod", + Name: "l15-prod", + Usage: "Alias for --network l15-prod", + Destination: &FlagValues.l15_prod, }, cli.BoolFlag{ - Name: "l15-staging", - Usage: "Alias for --network l15-staging", + Name: "l15-staging", + Usage: "Alias for --network l15-staging", + Destination: &FlagValues.l15_staging, }, cli.BoolFlag{ - Name: "l15-dev", - Usage: "Alias for --network l15-dev", + Name: "l15-dev", + Usage: "Alias for --network l15-dev", + Destination: &FlagValues.l15_dev, }, } return luksoFlags -} \ No newline at end of file +} diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go index 9576936..7f4e03c 100644 --- a/apps/lukso-cli/lukso-cli.go +++ b/apps/lukso-cli/lukso-cli.go @@ -1,9 +1,6 @@ package main import ( - "fmt" - "reflect" - "lukso-cli/config" "lukso-cli/flags" ) @@ -13,34 +10,22 @@ var LuksoSettings config.LuksoValues func main() { flags.InitFlags() - if flags.FlagValues.Config != "" { - println("Config loaded") - config.LoadConfig(flags.FlagValues.Config) - } - - config.LoadDefaults() - // Build Settings - v := reflect.ValueOf(LuksoSettings) - typeOfS := v.Type() - - // Awful but works - for i := 0; i < v.NumField(); i++ { - fmt.Printf("Field: %s\tValue: %v\n", typeOfS.Field(i).Name, v.Field(i).Interface()) - - r := reflect.ValueOf(&flags.FlagValues) - f := reflect.Indirect(r).FieldByName(typeOfS.Field(i).Name) - println(f.String()) - - if f.String() != "" { - println(flags.FlagValues.Network) - } else if config.ConfigValues.Network != "" { - println(config.ConfigValues.Network) - } else { - println(config.DefaultValues.Network) - } + //Load from default first + config.LoadDefaults(&LuksoSettings) + //Overwrite with config + if flags.FlagValues.Config != "" { + println("Config loaded") + config.LoadConfig(&LuksoSettings, flags.FlagValues.Config) } + //Overwrite with flags + flags.LoadFlags(&LuksoSettings) + + //check + println(LuksoSettings.Network) + println(LuksoSettings.Orchestrator.Verbosity) + println(LuksoSettings.Pandora.Verbosity) } From feffbf561697c84faf464dbaafa96a5f2fbfc1f6 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Thu, 25 Nov 2021 13:15:17 +0100 Subject: [PATCH 06/15] Add runner --- apps/lukso-cli/config/defaultConfig.yaml | 0 apps/lukso-cli/config/defaults.go | 81 +++++++++++++++--------- apps/lukso-cli/flags/flags.go | 8 +++ apps/lukso-cli/flags/luksoFlags.go | 37 ++++++++++- apps/lukso-cli/flags/start.go | 11 +++- apps/lukso-cli/lukso-cli.go | 10 +-- apps/lukso-cli/runner/pandora/pandora.go | 12 +++- apps/lukso-cli/runner/runner.go | 22 +++++++ 8 files changed, 141 insertions(+), 40 deletions(-) create mode 100644 apps/lukso-cli/config/defaultConfig.yaml create mode 100644 apps/lukso-cli/runner/runner.go diff --git a/apps/lukso-cli/config/defaultConfig.yaml b/apps/lukso-cli/config/defaultConfig.yaml new file mode 100644 index 0000000..e69de29 diff --git a/apps/lukso-cli/config/defaults.go b/apps/lukso-cli/config/defaults.go index e3f039f..510e5b0 100644 --- a/apps/lukso-cli/config/defaults.go +++ b/apps/lukso-cli/config/defaults.go @@ -1,50 +1,73 @@ package config type LuksoValues struct { - Force bool `yaml:"FORCE"` - Network string `yaml:"NETWORK"` - Coinbase string `yaml:"COINBASE"` - NodeName string `yaml:"NODE_NAME"` - LogsDir string `yaml:"LOGSDIR"` - DataDir string `yaml:"DATADIR"` + Force bool `yaml:"FORCE"` + Network string `yaml:"NETWORK"` + Validate bool `yaml:"VALIDATE"` + Coinbase string `yaml:"COINBASE"` + NodeName string `yaml:"NODE_NAME"` + LogsDir string `yaml:"LOGSDIR"` + DataDir string `yaml:"DATADIR"` + KeysDir string `yaml:"KEYSDIR"` + KeysPassFile string `yaml:"KEYS_PASSWORD_FILE"` + WalletDir string `yaml:"WALLET_DIR"` + WalletPasswordFile string `yaml:"WALLET_PASSWORD_FILE"` Orchestrator struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + VanguardRPCEndpoint string `yaml:"VanguardRPCEndpoint"` + PandoraRPCEndpoint string `yaml:"PandoraRPCEndpoint"` } `yaml:"ORCHESTRATOR"` Pandora struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` - Bootnodes string `yaml:"BOOTNODES"` - HttpPort string `yaml:"HTTP_PORT"` + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + Bootnodes string `yaml:"BOOTNODES"` + Port int `yaml:"PORT"` + HttpAddr string `yaml:"HTTP_ADDR"` + HttpPort int `yaml:"HTTP_PORT"` + WebsocketsAddr string `yaml:"WS_ADDR"` + WebsocketsPort int `yaml:"WS_PORT"` + HTTPMinerAddr string `yaml:"HTTP_MINER_ADDR"` + WebsocketsMinerAddr string `yaml:"WS_MINER_ADDR"` + Ethstats string `yaml:"ETHSTATS"` // TODO: find different name UPExpose bool `yaml:"UP_EXPOSE"` UnsafeExpose bool `yaml:"UNSAFE_EXPOSE"` } `yaml:"PANDORA"` Vanguard struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` - Bootnodes string `yaml:"BOOTNODES"` - P2PPrivKEY string `yaml:"P2P_PRIVKEY"` - ExternalIP string `yaml:"EXTERNAL_IP"` - P2PHostDNS string `yaml:"P2PHostDNS"` - RPCHost string `yaml:"RPCHost"` - RPCPort string `yaml:"RPCPort"` - UDPPort string `yaml:"UDPPort"` - TCPPort string `yaml:"TCPPort"` - MonitoringHost string `yaml:"MONITORING_HOST"` - HTTPWeb3Provider string `yaml:"HTTP_WEB3_PROVIDER"` + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + Bootnodes string `yaml:"BOOTNODES"` + P2PPrivKEY string `yaml:"P2P_PRIVKEY"` + ExternalIP string `yaml:"EXTERNAL_IP"` + P2PHostDNS string `yaml:"P2PHostDNS"` + RPCHost string `yaml:"RPCHost"` + RPCPort int `yaml:"RPCPort"` + UDPPort int `yaml:"UDPPort"` + TCPPort int `yaml:"TCPPort"` + MonitoringHost string `yaml:"MONITORING_HOST"` + HTTPWeb3Provider string `yaml:"HTTP_WEB3_PROVIDER"` + GRPCGatewayPort int `yaml:"GRPC_GATEWAY_PORT"` + OrchestratorRPCProvider string `yaml:"ORCHESTRATOR_RPC_PROVIDER"` + MinSyncPeers int `yaml:"MIN_SYNC_PEERS"` + MaxP2PPeers int `yaml:"MAX_P2P_PEERS"` + Ethstats string `yaml:"ETHSTATS"` + EthstatsMetrics string `yaml:"ETHSTATS_METRICS"` } Validator struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + HttpPort int `yaml:"HTTP_PORT"` + HttpAddr string `yaml:"HTTP_ADDR"` + WebsocketsPort int `yaml:"WS_PORT"` + WebsocketsAddr string `yaml:"WS_ADDR"` + BeaconRPCProvider string `yaml:"BEACON_RPC_PROVIDER"` + PandoraHTTPProvider string `yaml:"PANDORA_HTTP_PROVIDER"` } - - WalletDir string `yaml:"WALLET_DIR"` - WalletPasswordFile string `yaml:"WALLET_PASSWORD_FILE"` } func LoadDefaults(LuksoSettings *LuksoValues) { diff --git a/apps/lukso-cli/flags/flags.go b/apps/lukso-cli/flags/flags.go index cafccc1..84387e3 100644 --- a/apps/lukso-cli/flags/flags.go +++ b/apps/lukso-cli/flags/flags.go @@ -9,6 +9,9 @@ import ( "lukso-cli/config" ) +var Cmd string +var Arg string + func InitFlags() { app := cli.NewApp() @@ -16,6 +19,7 @@ func InitFlags() { app.Usage = "Tool for managing LUKSO node" app.UsageText = "lukso [argument] [--flags]" app.Flags = getLuksoFlags() + app.EnableBashCompletion = true app.Commands = []cli.Command{ getStartCommand(), @@ -69,4 +73,8 @@ func LoadFlags(LuksoSettings *config.LuksoValues) { LuksoSettings.Network = "l15-dev" } + if FlagValues.Orchestrator.Verbosity != "" { + LuksoSettings.Orchestrator.Verbosity = FlagValues.Orchestrator.Verbosity + } + } diff --git a/apps/lukso-cli/flags/luksoFlags.go b/apps/lukso-cli/flags/luksoFlags.go index 51f752a..5802662 100644 --- a/apps/lukso-cli/flags/luksoFlags.go +++ b/apps/lukso-cli/flags/luksoFlags.go @@ -17,17 +17,22 @@ var FlagValues struct { var luksoFlags []cli.Flag func getLuksoFlags() []cli.Flag { + + var DefaultValues config.LuksoValues + config.LoadDefaults(&DefaultValues) + luksoFlags = []cli.Flag{ cli.StringFlag{ Name: "config", Value: "", Usage: "Loads config file", + TakesFile: true, Destination: &FlagValues.Config, }, cli.StringFlag{ Name: "network", Value: "", - Usage: "Picks which setup to use", + Usage: "Picks which setup to use default: " + DefaultValues.Network, Destination: &FlagValues.Network, }, cli.BoolFlag{ @@ -45,6 +50,36 @@ func getLuksoFlags() []cli.Flag { Usage: "Alias for --network l15-dev", Destination: &FlagValues.l15_dev, }, + cli.BoolFlag{ + Name: "validate", + Usage: "Starts validator", + Destination: &FlagValues.Validate, + }, + cli.StringFlag{ + Name: "coinbase", + Usage: "Sets pandora coinbase. This is public address for block mining rewards (default = first account created) (default: \"0\")", + Destination: &FlagValues.Coinbase, + }, + cli.StringFlag{ + Name: "node-name", + Usage: "Name of node that's shown on pandora stats and vanguard stats", + Destination: &FlagValues.NodeName, + }, + cli.StringFlag{ + Name: "logsdir", + Usage: "Sets the logs path", + Destination: &FlagValues.LogsDir, + }, + cli.StringFlag{ + Name: "datadir", + Usage: "Sets datadir path", + Destination: &FlagValues.DataDir, + }, + cli.StringFlag{ + Name: "orchestrator-verbosity, orc-verbosity", + Usage: "Sets orchestrator logging depth", + Destination: &FlagValues.Orchestrator.Verbosity, + }, } return luksoFlags } diff --git a/apps/lukso-cli/flags/start.go b/apps/lukso-cli/flags/start.go index 67e770b..e92a4e8 100644 --- a/apps/lukso-cli/flags/start.go +++ b/apps/lukso-cli/flags/start.go @@ -8,7 +8,14 @@ func getStartCommand() cli.Command { Name: "vanguard", Flags: getLuksoFlags(), Action: func(c *cli.Context) { - println("Starting Vanguard") + Cmd, Arg = "start", "vanguard" + }, + }, + { + Name: "pandora", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) { + Cmd, Arg = "start", "pandora" }, }, } @@ -19,7 +26,7 @@ func getStartCommand() cli.Command { UsageText: "lukso start [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", Flags: getLuksoFlags(), Action: func(c *cli.Context) { - println("Starting all") + Cmd, Arg = "start", "all" }, Subcommands: startCommands, } diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go index 7f4e03c..17b3df5 100644 --- a/apps/lukso-cli/lukso-cli.go +++ b/apps/lukso-cli/lukso-cli.go @@ -3,6 +3,7 @@ package main import ( "lukso-cli/config" "lukso-cli/flags" + "lukso-cli/runner" ) var LuksoSettings config.LuksoValues @@ -17,15 +18,14 @@ func main() { //Overwrite with config if flags.FlagValues.Config != "" { - println("Config loaded") config.LoadConfig(&LuksoSettings, flags.FlagValues.Config) } //Overwrite with flags flags.LoadFlags(&LuksoSettings) - //check - println(LuksoSettings.Network) - println(LuksoSettings.Orchestrator.Verbosity) - println(LuksoSettings.Pandora.Verbosity) + // RUN + + runner.Action(flags.Cmd, flags.Arg, &LuksoSettings) + } diff --git a/apps/lukso-cli/runner/pandora/pandora.go b/apps/lukso-cli/runner/pandora/pandora.go index 4be3558..83dcd12 100644 --- a/apps/lukso-cli/runner/pandora/pandora.go +++ b/apps/lukso-cli/runner/pandora/pandora.go @@ -1,5 +1,11 @@ package pandora -func Start() { - -} \ No newline at end of file +import "lukso-cli/config" + +func Start(LuksoSettings *config.LuksoValues) { + println("Starting Pandora") +} + +func Stop(LuksoSettings *config.LuksoValues) { + println("Stopping Pandora") +} diff --git a/apps/lukso-cli/runner/runner.go b/apps/lukso-cli/runner/runner.go new file mode 100644 index 0000000..9c3501a --- /dev/null +++ b/apps/lukso-cli/runner/runner.go @@ -0,0 +1,22 @@ +package runner + +import ( + "lukso-cli/config" + "lukso-cli/runner/pandora" +) + +func Start(arg string, LuksoSettings *config.LuksoValues) { + switch arg { + case "pandora": + pandora.Start(LuksoSettings) + } +} + +func Action(cmd string, arg string, LuksoSettings *config.LuksoValues) { + + switch cmd { + case "start": + Start(arg, LuksoSettings) + } + +} From 0d5b8345a32f05ab25e92cff7ea91e2801dd2573 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Thu, 25 Nov 2021 18:02:45 +0100 Subject: [PATCH 07/15] Check directory existence --- apps/lukso-cli/flags/luksoFlags.go | 14 ++++++++-- .../runner/orchestrator/orchestrator.go | 13 +++++++++ apps/lukso-cli/runner/pandora/pandora.go | 27 ++++++++++++++++++- apps/lukso-cli/runner/runner.go | 20 ++++++++++++++ apps/lukso-cli/runner/validator/validator.go | 11 ++++++++ apps/lukso-cli/runner/vanguard/vanguard.go | 11 ++++++++ 6 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 apps/lukso-cli/runner/orchestrator/orchestrator.go create mode 100644 apps/lukso-cli/runner/validator/validator.go create mode 100644 apps/lukso-cli/runner/vanguard/vanguard.go diff --git a/apps/lukso-cli/flags/luksoFlags.go b/apps/lukso-cli/flags/luksoFlags.go index 5802662..54959de 100644 --- a/apps/lukso-cli/flags/luksoFlags.go +++ b/apps/lukso-cli/flags/luksoFlags.go @@ -57,7 +57,7 @@ func getLuksoFlags() []cli.Flag { }, cli.StringFlag{ Name: "coinbase", - Usage: "Sets pandora coinbase. This is public address for block mining rewards (default = first account created) (default: \"0\")", + Usage: "Sets pandora coinbase. This is public address for block mining rewards", Destination: &FlagValues.Coinbase, }, cli.StringFlag{ @@ -77,9 +77,19 @@ func getLuksoFlags() []cli.Flag { }, cli.StringFlag{ Name: "orchestrator-verbosity, orc-verbosity", - Usage: "Sets orchestrator logging depth", + Usage: "Sets orchestrator logging depth (Default: " + DefaultValues.Orchestrator.Verbosity + ")", Destination: &FlagValues.Orchestrator.Verbosity, }, + cli.StringFlag{ + Name: "orchestrator-vanguard-rpc-endpoint, orc-vanguard-rpc-endpoint", + Usage: "Enables Vanguard node RPC provider endpoint.", + Destination: &FlagValues.Orchestrator.VanguardRPCEndpoint, + }, + cli.StringFlag{ + Name: "orchestrator-pandora-rpc-endpoint, orc-pandora-rpc-endpoint", + Usage: "Pandora node RP provider endpoint.", + Destination: &FlagValues.Orchestrator.PandoraRPCEndpoint, + }, } return luksoFlags } diff --git a/apps/lukso-cli/runner/orchestrator/orchestrator.go b/apps/lukso-cli/runner/orchestrator/orchestrator.go new file mode 100644 index 0000000..a1bcb29 --- /dev/null +++ b/apps/lukso-cli/runner/orchestrator/orchestrator.go @@ -0,0 +1,13 @@ +package orchestrator + +import "lukso-cli/config" + +func Start(LuksoSettings *config.LuksoValues) { + println("Starting Pandora") +} + +func Stop(LuksoSettings *config.LuksoValues) { + println("Stopping Pandora") +} + + diff --git a/apps/lukso-cli/runner/pandora/pandora.go b/apps/lukso-cli/runner/pandora/pandora.go index 83dcd12..5dd763f 100644 --- a/apps/lukso-cli/runner/pandora/pandora.go +++ b/apps/lukso-cli/runner/pandora/pandora.go @@ -1,9 +1,34 @@ package pandora -import "lukso-cli/config" +import ( + "log" + "lukso-cli/config" + "os" + "os/exec" +) + +func Prepare(LuksoSettings *config.LuksoValues) { + + if _, err := os.Stat(LuksoSettings.LogsDir); err != nil { + if os.IsNotExist(err) { + // file does not exist + } else { + // other error + } + } + +} func Start(LuksoSettings *config.LuksoValues) { + Prepare(LuksoSettings) println("Starting Pandora") + command := exec.Command("pandora") + if startError := command.Start(); startError != nil { + log.Fatal(startError) + return + } + + // command.Wait() } func Stop(LuksoSettings *config.LuksoValues) { diff --git a/apps/lukso-cli/runner/runner.go b/apps/lukso-cli/runner/runner.go index 9c3501a..fe27701 100644 --- a/apps/lukso-cli/runner/runner.go +++ b/apps/lukso-cli/runner/runner.go @@ -2,13 +2,33 @@ package runner import ( "lukso-cli/config" + "lukso-cli/runner/orchestrator" "lukso-cli/runner/pandora" + "lukso-cli/runner/validator" + "lukso-cli/runner/vanguard" ) func Start(arg string, LuksoSettings *config.LuksoValues) { switch arg { + case "all": + orchestrator.Start(LuksoSettings) + pandora.Start(LuksoSettings) + vanguard.Start(LuksoSettings) + if LuksoSettings.Validate { + validator.Start(LuksoSettings) + } + + case "orchestrator": + orchestrator.Start(LuksoSettings) + case "pandora": pandora.Start(LuksoSettings) + + case "vanguard": + vanguard.Start(LuksoSettings) + + case "validator": + validator.Start(LuksoSettings) } } diff --git a/apps/lukso-cli/runner/validator/validator.go b/apps/lukso-cli/runner/validator/validator.go new file mode 100644 index 0000000..594059f --- /dev/null +++ b/apps/lukso-cli/runner/validator/validator.go @@ -0,0 +1,11 @@ +package validator + +import "lukso-cli/config" + +func Start(LuksoSettings *config.LuksoValues) { + println("Starting Pandora") +} + +func Stop(LuksoSettings *config.LuksoValues) { + println("Stopping Pandora") +} diff --git a/apps/lukso-cli/runner/vanguard/vanguard.go b/apps/lukso-cli/runner/vanguard/vanguard.go new file mode 100644 index 0000000..7f31a03 --- /dev/null +++ b/apps/lukso-cli/runner/vanguard/vanguard.go @@ -0,0 +1,11 @@ +package vanguard + +import "lukso-cli/config" + +func Start(LuksoSettings *config.LuksoValues) { + println("Starting Pandora") +} + +func Stop(LuksoSettings *config.LuksoValues) { + println("Stopping Pandora") +} From bb2a0fa8c60cfcb64b61a3d934f65030fa9ff336 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Thu, 2 Dec 2021 11:46:41 +0100 Subject: [PATCH 08/15] Rename file Delete unused var --- apps/lukso-cli/config/{config.go => configFile.go} | 1 - 1 file changed, 1 deletion(-) rename apps/lukso-cli/config/{config.go => configFile.go} (92%) diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/configFile.go similarity index 92% rename from apps/lukso-cli/config/config.go rename to apps/lukso-cli/config/configFile.go index a3d7894..d41edcf 100644 --- a/apps/lukso-cli/config/config.go +++ b/apps/lukso-cli/config/configFile.go @@ -7,7 +7,6 @@ import ( "gopkg.in/yaml.v3" ) -var ConfigValues LuksoValues func LoadConfig(LuksoSettings *LuksoValues, configFilePath string) error { buf, err := ioutil.ReadFile(configFilePath) From b51740fadceefba23d573d73c5b9522dec3d0e44 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Fri, 3 Dec 2021 17:51:04 +0100 Subject: [PATCH 09/15] Rename package --- apps/lukso-cli/{flags => cli}/flags.go | 2 +- apps/lukso-cli/{flags => cli}/luksoFlags.go | 2 +- apps/lukso-cli/{flags => cli}/start.go | 2 +- apps/lukso-cli/{flags => cli}/stop.go | 2 +- apps/lukso-cli/config/config.go | 83 +++++++++++++++---- apps/lukso-cli/config/configFile.go | 25 ++++++ apps/lukso-cli/config/defaults.go | 78 ----------------- apps/lukso-cli/lukso-cli.go | 12 +-- .../runner/orchestrator/orchestrator.go | 4 +- apps/lukso-cli/runner/pandora/pandora.go | 2 +- apps/lukso-cli/runner/runner.go | 20 ++--- apps/lukso-cli/runner/validator/validator.go | 4 +- apps/lukso-cli/runner/vanguard/vanguard.go | 30 ++++++- 13 files changed, 146 insertions(+), 120 deletions(-) rename apps/lukso-cli/{flags => cli}/flags.go (98%) rename apps/lukso-cli/{flags => cli}/luksoFlags.go (99%) rename apps/lukso-cli/{flags => cli}/start.go (98%) rename apps/lukso-cli/{flags => cli}/stop.go (97%) create mode 100644 apps/lukso-cli/config/configFile.go delete mode 100644 apps/lukso-cli/config/defaults.go diff --git a/apps/lukso-cli/flags/flags.go b/apps/lukso-cli/cli/flags.go similarity index 98% rename from apps/lukso-cli/flags/flags.go rename to apps/lukso-cli/cli/flags.go index 84387e3..d79d4e4 100644 --- a/apps/lukso-cli/flags/flags.go +++ b/apps/lukso-cli/cli/flags.go @@ -1,4 +1,4 @@ -package flags +package cli import ( "log" diff --git a/apps/lukso-cli/flags/luksoFlags.go b/apps/lukso-cli/cli/luksoFlags.go similarity index 99% rename from apps/lukso-cli/flags/luksoFlags.go rename to apps/lukso-cli/cli/luksoFlags.go index 54959de..e0fd083 100644 --- a/apps/lukso-cli/flags/luksoFlags.go +++ b/apps/lukso-cli/cli/luksoFlags.go @@ -1,4 +1,4 @@ -package flags +package cli import ( "github.com/urfave/cli" diff --git a/apps/lukso-cli/flags/start.go b/apps/lukso-cli/cli/start.go similarity index 98% rename from apps/lukso-cli/flags/start.go rename to apps/lukso-cli/cli/start.go index e92a4e8..fc8bc7b 100644 --- a/apps/lukso-cli/flags/start.go +++ b/apps/lukso-cli/cli/start.go @@ -1,4 +1,4 @@ -package flags +package cli import "github.com/urfave/cli" diff --git a/apps/lukso-cli/flags/stop.go b/apps/lukso-cli/cli/stop.go similarity index 97% rename from apps/lukso-cli/flags/stop.go rename to apps/lukso-cli/cli/stop.go index f2bfec5..c8495c8 100644 --- a/apps/lukso-cli/flags/stop.go +++ b/apps/lukso-cli/cli/stop.go @@ -1,4 +1,4 @@ -package flags +package cli import "github.com/urfave/cli" diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/config.go index a3d7894..510e5b0 100644 --- a/apps/lukso-cli/config/config.go +++ b/apps/lukso-cli/config/config.go @@ -1,25 +1,78 @@ package config -import ( - "fmt" - "io/ioutil" +type LuksoValues struct { + Force bool `yaml:"FORCE"` + Network string `yaml:"NETWORK"` + Validate bool `yaml:"VALIDATE"` + Coinbase string `yaml:"COINBASE"` + NodeName string `yaml:"NODE_NAME"` + LogsDir string `yaml:"LOGSDIR"` + DataDir string `yaml:"DATADIR"` + KeysDir string `yaml:"KEYSDIR"` + KeysPassFile string `yaml:"KEYS_PASSWORD_FILE"` + WalletDir string `yaml:"WALLET_DIR"` + WalletPasswordFile string `yaml:"WALLET_PASSWORD_FILE"` - "gopkg.in/yaml.v3" -) + Orchestrator struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + VanguardRPCEndpoint string `yaml:"VanguardRPCEndpoint"` + PandoraRPCEndpoint string `yaml:"PandoraRPCEndpoint"` + } `yaml:"ORCHESTRATOR"` -var ConfigValues LuksoValues + Pandora struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + Bootnodes string `yaml:"BOOTNODES"` + Port int `yaml:"PORT"` + HttpAddr string `yaml:"HTTP_ADDR"` + HttpPort int `yaml:"HTTP_PORT"` + WebsocketsAddr string `yaml:"WS_ADDR"` + WebsocketsPort int `yaml:"WS_PORT"` + HTTPMinerAddr string `yaml:"HTTP_MINER_ADDR"` + WebsocketsMinerAddr string `yaml:"WS_MINER_ADDR"` + Ethstats string `yaml:"ETHSTATS"` + // TODO: find different name + UPExpose bool `yaml:"UP_EXPOSE"` + UnsafeExpose bool `yaml:"UNSAFE_EXPOSE"` + } `yaml:"PANDORA"` -func LoadConfig(LuksoSettings *LuksoValues, configFilePath string) error { - buf, err := ioutil.ReadFile(configFilePath) - if err != nil { - return err + Vanguard struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + Bootnodes string `yaml:"BOOTNODES"` + P2PPrivKEY string `yaml:"P2P_PRIVKEY"` + ExternalIP string `yaml:"EXTERNAL_IP"` + P2PHostDNS string `yaml:"P2PHostDNS"` + RPCHost string `yaml:"RPCHost"` + RPCPort int `yaml:"RPCPort"` + UDPPort int `yaml:"UDPPort"` + TCPPort int `yaml:"TCPPort"` + MonitoringHost string `yaml:"MONITORING_HOST"` + HTTPWeb3Provider string `yaml:"HTTP_WEB3_PROVIDER"` + GRPCGatewayPort int `yaml:"GRPC_GATEWAY_PORT"` + OrchestratorRPCProvider string `yaml:"ORCHESTRATOR_RPC_PROVIDER"` + MinSyncPeers int `yaml:"MIN_SYNC_PEERS"` + MaxP2PPeers int `yaml:"MAX_P2P_PEERS"` + Ethstats string `yaml:"ETHSTATS"` + EthstatsMetrics string `yaml:"ETHSTATS_METRICS"` } - c := &LuksoSettings - err = yaml.Unmarshal(buf, c) - if err != nil { - return fmt.Errorf("in file %q: %v", configFilePath, err) + Validator struct { + Tag string `yaml:"TAG"` + Verbosity string `yaml:"VERBOSITY"` + HttpPort int `yaml:"HTTP_PORT"` + HttpAddr string `yaml:"HTTP_ADDR"` + WebsocketsPort int `yaml:"WS_PORT"` + WebsocketsAddr string `yaml:"WS_ADDR"` + BeaconRPCProvider string `yaml:"BEACON_RPC_PROVIDER"` + PandoraHTTPProvider string `yaml:"PANDORA_HTTP_PROVIDER"` } +} - return nil +func LoadDefaults(LuksoSettings *LuksoValues) { + LuksoSettings.Force = false + LuksoSettings.Network = "l15" + LuksoSettings.Orchestrator.Verbosity = "info" + LuksoSettings.Pandora.Verbosity = "info" } diff --git a/apps/lukso-cli/config/configFile.go b/apps/lukso-cli/config/configFile.go new file mode 100644 index 0000000..a3d7894 --- /dev/null +++ b/apps/lukso-cli/config/configFile.go @@ -0,0 +1,25 @@ +package config + +import ( + "fmt" + "io/ioutil" + + "gopkg.in/yaml.v3" +) + +var ConfigValues LuksoValues + +func LoadConfig(LuksoSettings *LuksoValues, configFilePath string) error { + buf, err := ioutil.ReadFile(configFilePath) + if err != nil { + return err + } + + c := &LuksoSettings + err = yaml.Unmarshal(buf, c) + if err != nil { + return fmt.Errorf("in file %q: %v", configFilePath, err) + } + + return nil +} diff --git a/apps/lukso-cli/config/defaults.go b/apps/lukso-cli/config/defaults.go deleted file mode 100644 index 510e5b0..0000000 --- a/apps/lukso-cli/config/defaults.go +++ /dev/null @@ -1,78 +0,0 @@ -package config - -type LuksoValues struct { - Force bool `yaml:"FORCE"` - Network string `yaml:"NETWORK"` - Validate bool `yaml:"VALIDATE"` - Coinbase string `yaml:"COINBASE"` - NodeName string `yaml:"NODE_NAME"` - LogsDir string `yaml:"LOGSDIR"` - DataDir string `yaml:"DATADIR"` - KeysDir string `yaml:"KEYSDIR"` - KeysPassFile string `yaml:"KEYS_PASSWORD_FILE"` - WalletDir string `yaml:"WALLET_DIR"` - WalletPasswordFile string `yaml:"WALLET_PASSWORD_FILE"` - - Orchestrator struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` - VanguardRPCEndpoint string `yaml:"VanguardRPCEndpoint"` - PandoraRPCEndpoint string `yaml:"PandoraRPCEndpoint"` - } `yaml:"ORCHESTRATOR"` - - Pandora struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` - Bootnodes string `yaml:"BOOTNODES"` - Port int `yaml:"PORT"` - HttpAddr string `yaml:"HTTP_ADDR"` - HttpPort int `yaml:"HTTP_PORT"` - WebsocketsAddr string `yaml:"WS_ADDR"` - WebsocketsPort int `yaml:"WS_PORT"` - HTTPMinerAddr string `yaml:"HTTP_MINER_ADDR"` - WebsocketsMinerAddr string `yaml:"WS_MINER_ADDR"` - Ethstats string `yaml:"ETHSTATS"` - // TODO: find different name - UPExpose bool `yaml:"UP_EXPOSE"` - UnsafeExpose bool `yaml:"UNSAFE_EXPOSE"` - } `yaml:"PANDORA"` - - Vanguard struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` - Bootnodes string `yaml:"BOOTNODES"` - P2PPrivKEY string `yaml:"P2P_PRIVKEY"` - ExternalIP string `yaml:"EXTERNAL_IP"` - P2PHostDNS string `yaml:"P2PHostDNS"` - RPCHost string `yaml:"RPCHost"` - RPCPort int `yaml:"RPCPort"` - UDPPort int `yaml:"UDPPort"` - TCPPort int `yaml:"TCPPort"` - MonitoringHost string `yaml:"MONITORING_HOST"` - HTTPWeb3Provider string `yaml:"HTTP_WEB3_PROVIDER"` - GRPCGatewayPort int `yaml:"GRPC_GATEWAY_PORT"` - OrchestratorRPCProvider string `yaml:"ORCHESTRATOR_RPC_PROVIDER"` - MinSyncPeers int `yaml:"MIN_SYNC_PEERS"` - MaxP2PPeers int `yaml:"MAX_P2P_PEERS"` - Ethstats string `yaml:"ETHSTATS"` - EthstatsMetrics string `yaml:"ETHSTATS_METRICS"` - } - - Validator struct { - Tag string `yaml:"TAG"` - Verbosity string `yaml:"VERBOSITY"` - HttpPort int `yaml:"HTTP_PORT"` - HttpAddr string `yaml:"HTTP_ADDR"` - WebsocketsPort int `yaml:"WS_PORT"` - WebsocketsAddr string `yaml:"WS_ADDR"` - BeaconRPCProvider string `yaml:"BEACON_RPC_PROVIDER"` - PandoraHTTPProvider string `yaml:"PANDORA_HTTP_PROVIDER"` - } -} - -func LoadDefaults(LuksoSettings *LuksoValues) { - LuksoSettings.Force = false - LuksoSettings.Network = "l15" - LuksoSettings.Orchestrator.Verbosity = "info" - LuksoSettings.Pandora.Verbosity = "info" -} diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go index 17b3df5..00a5b79 100644 --- a/apps/lukso-cli/lukso-cli.go +++ b/apps/lukso-cli/lukso-cli.go @@ -2,14 +2,14 @@ package main import ( "lukso-cli/config" - "lukso-cli/flags" + "lukso-cli/cli" "lukso-cli/runner" ) var LuksoSettings config.LuksoValues func main() { - flags.InitFlags() + cli.InitFlags() // Build Settings @@ -17,15 +17,15 @@ func main() { config.LoadDefaults(&LuksoSettings) //Overwrite with config - if flags.FlagValues.Config != "" { - config.LoadConfig(&LuksoSettings, flags.FlagValues.Config) + if cli.FlagValues.Config != "" { + config.LoadConfig(&LuksoSettings, cli.FlagValues.Config) } //Overwrite with flags - flags.LoadFlags(&LuksoSettings) + cli.LoadFlags(&LuksoSettings) // RUN - runner.Action(flags.Cmd, flags.Arg, &LuksoSettings) + runner.Action(cli.Cmd, cli.Arg, &LuksoSettings) } diff --git a/apps/lukso-cli/runner/orchestrator/orchestrator.go b/apps/lukso-cli/runner/orchestrator/orchestrator.go index a1bcb29..f8103c6 100644 --- a/apps/lukso-cli/runner/orchestrator/orchestrator.go +++ b/apps/lukso-cli/runner/orchestrator/orchestrator.go @@ -3,11 +3,11 @@ package orchestrator import "lukso-cli/config" func Start(LuksoSettings *config.LuksoValues) { - println("Starting Pandora") + println("Starting Orchestrator") } func Stop(LuksoSettings *config.LuksoValues) { - println("Stopping Pandora") + println("Stopping Orchestrator") } diff --git a/apps/lukso-cli/runner/pandora/pandora.go b/apps/lukso-cli/runner/pandora/pandora.go index 5dd763f..2aa237f 100644 --- a/apps/lukso-cli/runner/pandora/pandora.go +++ b/apps/lukso-cli/runner/pandora/pandora.go @@ -20,7 +20,7 @@ func Prepare(LuksoSettings *config.LuksoValues) { } func Start(LuksoSettings *config.LuksoValues) { - Prepare(LuksoSettings) + Prepare(&*LuksoSettings) println("Starting Pandora") command := exec.Command("pandora") if startError := command.Start(); startError != nil { diff --git a/apps/lukso-cli/runner/runner.go b/apps/lukso-cli/runner/runner.go index fe27701..94a5d28 100644 --- a/apps/lukso-cli/runner/runner.go +++ b/apps/lukso-cli/runner/runner.go @@ -9,34 +9,34 @@ import ( ) func Start(arg string, LuksoSettings *config.LuksoValues) { + switch arg { case "all": - orchestrator.Start(LuksoSettings) - pandora.Start(LuksoSettings) - vanguard.Start(LuksoSettings) + orchestrator.Start(&*LuksoSettings) + pandora.Start(&*LuksoSettings) + vanguard.Start(&*LuksoSettings) if LuksoSettings.Validate { - validator.Start(LuksoSettings) + validator.Start(&*LuksoSettings) } case "orchestrator": - orchestrator.Start(LuksoSettings) + orchestrator.Start(&*LuksoSettings) case "pandora": - pandora.Start(LuksoSettings) + pandora.Start(&*LuksoSettings) case "vanguard": - vanguard.Start(LuksoSettings) + vanguard.Start(&*LuksoSettings) case "validator": - validator.Start(LuksoSettings) + validator.Start(&*LuksoSettings) } } func Action(cmd string, arg string, LuksoSettings *config.LuksoValues) { - switch cmd { case "start": - Start(arg, LuksoSettings) + Start(arg, &*LuksoSettings) } } diff --git a/apps/lukso-cli/runner/validator/validator.go b/apps/lukso-cli/runner/validator/validator.go index 594059f..9857441 100644 --- a/apps/lukso-cli/runner/validator/validator.go +++ b/apps/lukso-cli/runner/validator/validator.go @@ -3,9 +3,9 @@ package validator import "lukso-cli/config" func Start(LuksoSettings *config.LuksoValues) { - println("Starting Pandora") + println("Starting Validator") } func Stop(LuksoSettings *config.LuksoValues) { - println("Stopping Pandora") + println("Stopping Validator") } diff --git a/apps/lukso-cli/runner/vanguard/vanguard.go b/apps/lukso-cli/runner/vanguard/vanguard.go index 7f31a03..3cc87a2 100644 --- a/apps/lukso-cli/runner/vanguard/vanguard.go +++ b/apps/lukso-cli/runner/vanguard/vanguard.go @@ -1,9 +1,35 @@ package vanguard -import "lukso-cli/config" +import ( + "fmt" + "lukso-cli/config" + "os" +) + +func prepare(LuksoSettings *config.LuksoValues) error { + + err := os.Mkdir(LuksoSettings.Network+"/vanguard", 0755) + println(LuksoSettings.DataDir) + + if err != nil { + return fmt.Errorf("") + } + + return nil + +} func Start(LuksoSettings *config.LuksoValues) { - println("Starting Pandora") + + err := prepare(&*LuksoSettings) + + if err != nil { + fmt.Println("Cannot start vanguard") + // os.Exit(1) + } + + println("Starting Vanguard...") + } func Stop(LuksoSettings *config.LuksoValues) { From 018c668b71e5fe90532291d4df29102ff5e83a7e Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Mon, 6 Dec 2021 10:57:38 +0100 Subject: [PATCH 10/15] Add function body --- apps/lukso-cli/runner/validator/validator.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/lukso-cli/runner/validator/validator.go b/apps/lukso-cli/runner/validator/validator.go index 7804aec..8cbd7b7 100644 --- a/apps/lukso-cli/runner/validator/validator.go +++ b/apps/lukso-cli/runner/validator/validator.go @@ -2,7 +2,9 @@ package validator import "lukso-cli/config" -func CheckValidatorRequirements(LuksoSettings config.LuksoValues) +func CheckValidatorRequirements(LuksoSettings config.LuksoValues) { + println("checking") +} func Start(LuksoSettings *config.LuksoValues) { println("Starting Validator") From 81e7e2be4a82fa0cbac957a56156652452e2df30 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Mon, 6 Dec 2021 11:20:19 +0100 Subject: [PATCH 11/15] Update cli library to v2 --- apps/lukso-cli/cli/flags.go | 4 +- apps/lukso-cli/cli/luksoFlags.go | 43 +++++++++++++--------- apps/lukso-cli/cli/start.go | 17 +++++---- apps/lukso-cli/cli/stop.go | 14 ++++--- apps/lukso-cli/go.mod | 5 +-- apps/lukso-cli/go.sum | 5 +-- apps/lukso-cli/runner/vanguard/vanguard.go | 2 +- 7 files changed, 51 insertions(+), 39 deletions(-) diff --git a/apps/lukso-cli/cli/flags.go b/apps/lukso-cli/cli/flags.go index 1d000e4..b9021c8 100644 --- a/apps/lukso-cli/cli/flags.go +++ b/apps/lukso-cli/cli/flags.go @@ -4,7 +4,7 @@ import ( "log" "os" - "github.com/urfave/cli" + "github.com/urfave/cli/v2" "lukso-cli/config" ) @@ -21,7 +21,7 @@ func InitFlags() { app.Flags = getLuksoFlags() app.EnableBashCompletion = true - app.Commands = []cli.Command{ + app.Commands = []*cli.Command{ getStartCommand(), getStopCommand(), } diff --git a/apps/lukso-cli/cli/luksoFlags.go b/apps/lukso-cli/cli/luksoFlags.go index e0fd083..7326afb 100644 --- a/apps/lukso-cli/cli/luksoFlags.go +++ b/apps/lukso-cli/cli/luksoFlags.go @@ -1,7 +1,7 @@ package cli import ( - "github.com/urfave/cli" + "github.com/urfave/cli/v2" "lukso-cli/config" ) @@ -22,71 +22,80 @@ func getLuksoFlags() []cli.Flag { config.LoadDefaults(&DefaultValues) luksoFlags = []cli.Flag{ - cli.StringFlag{ + &cli.StringFlag{ Name: "config", Value: "", Usage: "Loads config file", TakesFile: true, Destination: &FlagValues.Config, }, - cli.StringFlag{ + &cli.StringFlag{ Name: "network", Value: "", Usage: "Picks which setup to use default: " + DefaultValues.Network, Destination: &FlagValues.Network, }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "l15-prod", Usage: "Alias for --network l15-prod", Destination: &FlagValues.l15_prod, }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "l15-staging", Usage: "Alias for --network l15-staging", Destination: &FlagValues.l15_staging, }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "l15-dev", Usage: "Alias for --network l15-dev", Destination: &FlagValues.l15_dev, }, - cli.BoolFlag{ + &cli.BoolFlag{ Name: "validate", Usage: "Starts validator", Destination: &FlagValues.Validate, }, - cli.StringFlag{ + &cli.StringFlag{ Name: "coinbase", Usage: "Sets pandora coinbase. This is public address for block mining rewards", Destination: &FlagValues.Coinbase, }, - cli.StringFlag{ + &cli.StringFlag{ Name: "node-name", Usage: "Name of node that's shown on pandora stats and vanguard stats", Destination: &FlagValues.NodeName, }, - cli.StringFlag{ + &cli.StringFlag{ Name: "logsdir", Usage: "Sets the logs path", Destination: &FlagValues.LogsDir, }, - cli.StringFlag{ + &cli.StringFlag{ Name: "datadir", Usage: "Sets datadir path", Destination: &FlagValues.DataDir, }, - cli.StringFlag{ - Name: "orchestrator-verbosity, orc-verbosity", + &cli.StringFlag{ + Name: "orchestrator-tag", + Aliases: []string{"orchestrator", "orc-tag"}, + Usage: "download and set orchestrator to given tag", + Destination: &FlagValues.Orchestrator.Tag, + }, + &cli.StringFlag{ + Name: "orchestrator-verbosity", + Aliases: []string{"orc-verbosity"}, Usage: "Sets orchestrator logging depth (Default: " + DefaultValues.Orchestrator.Verbosity + ")", Destination: &FlagValues.Orchestrator.Verbosity, }, - cli.StringFlag{ - Name: "orchestrator-vanguard-rpc-endpoint, orc-vanguard-rpc-endpoint", + &cli.StringFlag{ + Name: "orchestrator-vanguard-rpc-endpoint", + Aliases: []string{"orc-vanguard-rpc-endpoint"}, Usage: "Enables Vanguard node RPC provider endpoint.", Destination: &FlagValues.Orchestrator.VanguardRPCEndpoint, }, - cli.StringFlag{ - Name: "orchestrator-pandora-rpc-endpoint, orc-pandora-rpc-endpoint", + &cli.StringFlag{ + Name: "orchestrator-pandora-rpc-endpoint", + Aliases: []string{"orc-pandora-rpc-endpoint"}, Usage: "Pandora node RP provider endpoint.", Destination: &FlagValues.Orchestrator.PandoraRPCEndpoint, }, diff --git a/apps/lukso-cli/cli/start.go b/apps/lukso-cli/cli/start.go index fc8bc7b..a8a510e 100644 --- a/apps/lukso-cli/cli/start.go +++ b/apps/lukso-cli/cli/start.go @@ -1,21 +1,23 @@ package cli -import "github.com/urfave/cli" +import "github.com/urfave/cli/v2" -func getStartCommand() cli.Command { - startCommands := []cli.Command{ +func getStartCommand() *cli.Command { + startCommands := []*cli.Command{ { Name: "vanguard", Flags: getLuksoFlags(), - Action: func(c *cli.Context) { + Action: func(c *cli.Context) error { Cmd, Arg = "start", "vanguard" + return nil }, }, { Name: "pandora", Flags: getLuksoFlags(), - Action: func(c *cli.Context) { + Action: func(c *cli.Context) error { Cmd, Arg = "start", "pandora" + return nil }, }, } @@ -25,11 +27,12 @@ func getStartCommand() cli.Command { Usage: "Starts up all or specific client(s)", UsageText: "lukso start [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", Flags: getLuksoFlags(), - Action: func(c *cli.Context) { + Action: func(c *cli.Context) error { Cmd, Arg = "start", "all" + return nil }, Subcommands: startCommands, } - return start + return &start } diff --git a/apps/lukso-cli/cli/stop.go b/apps/lukso-cli/cli/stop.go index c8495c8..3889be7 100644 --- a/apps/lukso-cli/cli/stop.go +++ b/apps/lukso-cli/cli/stop.go @@ -1,14 +1,15 @@ package cli -import "github.com/urfave/cli" +import "github.com/urfave/cli/v2" -func getStopCommand() cli.Command { - stopSubCommands := []cli.Command{ +func getStopCommand() *cli.Command { + stopSubCommands := []*cli.Command{ { Name: "vanguard", Flags: getLuksoFlags(), - Action: func(c *cli.Context) { + Action: func(c *cli.Context) error { println("Stopping Vanguard") + return nil }, }, } @@ -18,11 +19,12 @@ func getStopCommand() cli.Command { Usage: "Stop up all or specific client(s)", UsageText: "lukso stop [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", Flags: getLuksoFlags(), - Action: func(c *cli.Context) { + Action: func(c *cli.Context) error { println("Stopping all") + return nil }, Subcommands: stopSubCommands, } - return stop + return &stop } diff --git a/apps/lukso-cli/go.mod b/apps/lukso-cli/go.mod index 51dc2b4..9b2950d 100644 --- a/apps/lukso-cli/go.mod +++ b/apps/lukso-cli/go.mod @@ -3,7 +3,6 @@ module lukso-cli go 1.16 require ( - github.com/urfave/cli v1.22.5 // indirect - github.com/urfave/cli/v2 v2.3.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + github.com/urfave/cli/v2 v2.3.0 + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b ) diff --git a/apps/lukso-cli/go.sum b/apps/lukso-cli/go.sum index 2e8fa88..1b2baa6 100644 --- a/apps/lukso-cli/go.sum +++ b/apps/lukso-cli/go.sum @@ -1,17 +1,16 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/urfave/cli v1.22.5 h1:lNq9sAHXK2qfdI8W+GRItjCEkI+2oR4d+MEHy1CKXoU= -github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/apps/lukso-cli/runner/vanguard/vanguard.go b/apps/lukso-cli/runner/vanguard/vanguard.go index ae7e618..ae4e477 100644 --- a/apps/lukso-cli/runner/vanguard/vanguard.go +++ b/apps/lukso-cli/runner/vanguard/vanguard.go @@ -11,7 +11,7 @@ func prepare(LuksoSettings *config.LuksoValues) error { println(LuksoSettings.Network) err := os.MkdirAll(LuksoSettings.DataDir+"/vanguard", 0755) - + if err != nil { println(err.Error()) return err From 405ac5493a597a37d12424b628e0eb2aa908ae31 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Mon, 6 Dec 2021 13:18:35 +0100 Subject: [PATCH 12/15] Add version command --- apps/lukso-cli/cli/flags.go | 1 + apps/lukso-cli/cli/luksoFlags.go | 1 + apps/lukso-cli/cli/stop.go | 4 +- apps/lukso-cli/cli/version.go | 38 +++++++++++ apps/lukso-cli/config/config.go | 81 ++++++++++++++++++++++-- apps/lukso-cli/lukso-cli.go | 11 +++- apps/lukso-cli/runner/pandora/pandora.go | 16 ++++- apps/lukso-cli/runner/runner.go | 19 ++++++ 8 files changed, 162 insertions(+), 9 deletions(-) create mode 100644 apps/lukso-cli/cli/version.go diff --git a/apps/lukso-cli/cli/flags.go b/apps/lukso-cli/cli/flags.go index b9021c8..edd9619 100644 --- a/apps/lukso-cli/cli/flags.go +++ b/apps/lukso-cli/cli/flags.go @@ -24,6 +24,7 @@ func InitFlags() { app.Commands = []*cli.Command{ getStartCommand(), getStopCommand(), + getVersionCommand(), } err := app.Run(os.Args) diff --git a/apps/lukso-cli/cli/luksoFlags.go b/apps/lukso-cli/cli/luksoFlags.go index 7326afb..4edf91f 100644 --- a/apps/lukso-cli/cli/luksoFlags.go +++ b/apps/lukso-cli/cli/luksoFlags.go @@ -12,6 +12,7 @@ var FlagValues struct { l15_prod bool l15_staging bool l15_dev bool + GUI bool } var luksoFlags []cli.Flag diff --git a/apps/lukso-cli/cli/stop.go b/apps/lukso-cli/cli/stop.go index 3889be7..93634a1 100644 --- a/apps/lukso-cli/cli/stop.go +++ b/apps/lukso-cli/cli/stop.go @@ -8,7 +8,7 @@ func getStopCommand() *cli.Command { Name: "vanguard", Flags: getLuksoFlags(), Action: func(c *cli.Context) error { - println("Stopping Vanguard") + Cmd, Arg = "stop", "vanguard" return nil }, }, @@ -20,7 +20,7 @@ func getStopCommand() *cli.Command { UsageText: "lukso stop [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", Flags: getLuksoFlags(), Action: func(c *cli.Context) error { - println("Stopping all") + Cmd, Arg = "stop", "all" return nil }, Subcommands: stopSubCommands, diff --git a/apps/lukso-cli/cli/version.go b/apps/lukso-cli/cli/version.go new file mode 100644 index 0000000..97b6713 --- /dev/null +++ b/apps/lukso-cli/cli/version.go @@ -0,0 +1,38 @@ +package cli + +import "github.com/urfave/cli/v2" + +func getVersionCommand() *cli.Command { + VersionCommands := []*cli.Command{ + { + Name: "vanguard", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) error { + Cmd, Arg = "version", "vanguard" + return nil + }, + }, + { + Name: "pandora", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) error { + Cmd, Arg = "varsion", "pandora" + return nil + }, + }, + } + + version := cli.Command{ + Name: "version", + Usage: "Shows version of all or specific client(s)", + UsageText: "lukso version [client]\n [orchestrator, pandora, vanguard, validator, eth2stats-client, lukso-status, all]", + Flags: getLuksoFlags(), + Action: func(c *cli.Context) error { + Cmd, Arg = "version", "all" + return nil + }, + Subcommands: VersionCommands, + } + + return &version +} diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/config.go index d0df82b..2556f26 100644 --- a/apps/lukso-cli/config/config.go +++ b/apps/lukso-cli/config/config.go @@ -1,6 +1,12 @@ package config -import "os" +import ( + "fmt" + "io/ioutil" + "os" + + "gopkg.in/yaml.v3" +) type LuksoValues struct { Force bool `yaml:"FORCE"` @@ -8,10 +14,10 @@ type LuksoValues struct { Validate bool `yaml:"VALIDATE"` Coinbase string `yaml:"COINBASE"` NodeName string `yaml:"NODE_NAME"` - LogsDir string `yaml:"LOGSDIR"` DataDir string `yaml:"DATADIR"` + LogsDir string `yaml:"LOGSDIR"` KeysDir string `yaml:"KEYSDIR"` - KeysPassFile string `yaml:"KEYS_PASSWORD_FILE"` + KeysPasswordFile string `yaml:"KEYS_PASSWORD_FILE"` WalletDir string `yaml:"WALLET_DIR"` WalletPasswordFile string `yaml:"WALLET_PASSWORD_FILE"` @@ -72,11 +78,76 @@ type LuksoValues struct { } } +type NetworkValues struct { + ChainID int `yaml:"CHAIN_ID"` + NetworkID int `yaml:"NETWORK_ID"` + ForkChoice int `yaml:"FORK_CHOICE"` + PandoraBootnodes string `yaml:"PANDORA_BOOTNODES"` + VanguardBootnodes string `yaml:"VANGUARD_BOOTNODES"` +} + +func LoadNetworkConfig(Network string) (error, NetworkValues) { + var NetworkConfig NetworkValues + configFilePath := "/opt/lukso/networks/" + Network + "/config/network-config.yaml" + + buf, err := ioutil.ReadFile(configFilePath) + if err != nil { + return err, NetworkConfig + } + + c := &NetworkConfig + err = yaml.Unmarshal(buf, c) + if err != nil { + return fmt.Errorf("in file %q: %v", configFilePath, err), NetworkConfig + } + + return nil, NetworkConfig +} + func LoadDefaults(LuksoSettings *LuksoValues) { LuksoSettings.Force = false LuksoSettings.Network = "l15" - homeDir, _ := os.UserHomeDir() - LuksoSettings.DataDir = homeDir + "/.lukso/" + LuksoSettings.Network + "/datadir" + LuksoSettings.Validate = false + LuksoSettings.Coinbase = "" + LuksoSettings.NodeName = "" + + homeDir, err := os.UserHomeDir() + if err != nil { + LuksoSettings.DataDir = homeDir + "/.lukso/" + LuksoSettings.Network + "/datadir" + LuksoSettings.LogsDir = homeDir + "/.lukso/" + LuksoSettings.Network + "/logs" + LuksoSettings.KeysDir = homeDir + "/.lukso/" + LuksoSettings.Network + "/validator_keys" + LuksoSettings.WalletDir = homeDir + "/.lukso/" + LuksoSettings.Network + "/wallet" + } + + LuksoSettings.KeysPasswordFile = "" + LuksoSettings.WalletPasswordFile = "" + + LuksoSettings.Orchestrator.Tag = "" LuksoSettings.Orchestrator.Verbosity = "info" + LuksoSettings.Orchestrator.VanguardRPCEndpoint = "" + LuksoSettings.Orchestrator.PandoraRPCEndpoint = "" + + LuksoSettings.Pandora.Tag = "" LuksoSettings.Pandora.Verbosity = "info" + LuksoSettings.Pandora.Bootnodes = "" + LuksoSettings.Pandora.Port = 30303 + LuksoSettings.Pandora.HttpAddr = "127.0.0.1" + LuksoSettings.Pandora.HttpPort = 8545 + LuksoSettings.Pandora.WebsocketsAddr = "127.0.0.1" + LuksoSettings.Pandora.WebsocketsPort = 8546 + LuksoSettings.Pandora.Ethstats = "" + LuksoSettings.Pandora.UPExpose = false + LuksoSettings.Pandora.UnsafeExpose = false + + LuksoSettings.Vanguard.Tag = "" + LuksoSettings.Vanguard.Verbosity = "info" + LuksoSettings.Vanguard.Bootnodes = "" + LuksoSettings.Vanguard.P2PPrivKEY = "" + LuksoSettings.Vanguard.ExternalIP = "" + LuksoSettings.Vanguard.P2PHostDNS = "" + LuksoSettings.Vanguard.RPCHost = "127.0.0.1" + LuksoSettings.Vanguard.RPCPort = 4000 + LuksoSettings.Vanguard.UDPPort = 12000 + LuksoSettings.Vanguard.TCPPort = 13000 + } diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go index 2b4405b..cd23dfc 100644 --- a/apps/lukso-cli/lukso-cli.go +++ b/apps/lukso-cli/lukso-cli.go @@ -21,11 +21,20 @@ func main() { config.LoadConfig(&LuksoSettings, cli.FlagValues.Config) } + if cli.FlagValues.GUI { + // gui.Start() + } + //Overwrite with flags cli.LoadFlags(&LuksoSettings) + //Download binaries if missing + + if LuksoSettings.Orchestrator.Tag != "" { + //runner.Action("download", "orchestrator", &LuksoSettings) + } + // RUN - println(LuksoSettings.Network) runner.Action(cli.Cmd, cli.Arg, &LuksoSettings) } diff --git a/apps/lukso-cli/runner/pandora/pandora.go b/apps/lukso-cli/runner/pandora/pandora.go index 2aa237f..a8fb374 100644 --- a/apps/lukso-cli/runner/pandora/pandora.go +++ b/apps/lukso-cli/runner/pandora/pandora.go @@ -5,6 +5,8 @@ import ( "lukso-cli/config" "os" "os/exec" + "strconv" + "strings" ) func Prepare(LuksoSettings *config.LuksoValues) { @@ -22,7 +24,19 @@ func Prepare(LuksoSettings *config.LuksoValues) { func Start(LuksoSettings *config.LuksoValues) { Prepare(&*LuksoSettings) println("Starting Pandora") - command := exec.Command("pandora") + + err, NetworkConfig := config.LoadNetworkConfig(LuksoSettings.Network) + if err != nil { + log.Fatal("Config not loaded") + } + + args := []string{ + "--datadir=" + LuksoSettings.DataDir + "/pandora", + "--chainid=" + strconv.Itoa(NetworkConfig.ChainID), + "--port=" + strconv.Itoa(LuksoSettings.Pandora.Port), + } + + command := exec.Command("pandora" + strings.Join(args, " ")) if startError := command.Start(); startError != nil { log.Fatal(startError) return diff --git a/apps/lukso-cli/runner/runner.go b/apps/lukso-cli/runner/runner.go index 94a5d28..a9d3ef8 100644 --- a/apps/lukso-cli/runner/runner.go +++ b/apps/lukso-cli/runner/runner.go @@ -1,6 +1,7 @@ package runner import ( + "fmt" "lukso-cli/config" "lukso-cli/runner/orchestrator" "lukso-cli/runner/pandora" @@ -33,10 +34,28 @@ func Start(arg string, LuksoSettings *config.LuksoValues) { } } +func Stop(arg string, LuksoSettings *config.LuksoValues) error { + return nil +} + +func Reset(arg string, LuksoSettings *config.LuksoValues) error { + return nil +} + +func Version() { + fmt.Println("v0.0.1") +} + func Action(cmd string, arg string, LuksoSettings *config.LuksoValues) { switch cmd { case "start": Start(arg, &*LuksoSettings) + case "stop": + Stop(arg, &*LuksoSettings) + case "reset": + Reset(arg, &*LuksoSettings) + case "version": + Version() } } From 81b645da7c1de6bdf446f592e00709ae83faecc2 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Mon, 6 Dec 2021 17:02:25 +0100 Subject: [PATCH 13/15] Correct redundant reference --- apps/lukso-cli/cli/{flags.go => cli.go} | 2 +- apps/lukso-cli/cli/luksoFlags.go | 11 +++++++++-- apps/lukso-cli/config/config.go | 21 +++++++++++++++------ apps/lukso-cli/lukso-cli.go | 18 +++++++++++++----- apps/lukso-cli/runner/pandora/pandora.go | 2 +- apps/lukso-cli/runner/runner.go | 22 +++++++++++----------- apps/lukso-cli/runner/vanguard/vanguard.go | 2 +- 7 files changed, 51 insertions(+), 27 deletions(-) rename apps/lukso-cli/cli/{flags.go => cli.go} (98%) diff --git a/apps/lukso-cli/cli/flags.go b/apps/lukso-cli/cli/cli.go similarity index 98% rename from apps/lukso-cli/cli/flags.go rename to apps/lukso-cli/cli/cli.go index edd9619..1449eca 100644 --- a/apps/lukso-cli/cli/flags.go +++ b/apps/lukso-cli/cli/cli.go @@ -12,7 +12,7 @@ import ( var Cmd string var Arg string -func InitFlags() { +func Init() { app := cli.NewApp() app.Name = "LUKSO CLI" diff --git a/apps/lukso-cli/cli/luksoFlags.go b/apps/lukso-cli/cli/luksoFlags.go index 4edf91f..59786ff 100644 --- a/apps/lukso-cli/cli/luksoFlags.go +++ b/apps/lukso-cli/cli/luksoFlags.go @@ -13,6 +13,7 @@ var FlagValues struct { l15_staging bool l15_dev bool GUI bool + ApiServer bool } var luksoFlags []cli.Flag @@ -23,6 +24,11 @@ func getLuksoFlags() []cli.Flag { config.LoadDefaults(&DefaultValues) luksoFlags = []cli.Flag{ + &cli.BoolFlag{ + Name: "gui", + Usage: "Starts GUI", + Destination: &FlagValues.GUI, + }, &cli.StringFlag{ Name: "config", Value: "", @@ -35,6 +41,7 @@ func getLuksoFlags() []cli.Flag { Value: "", Usage: "Picks which setup to use default: " + DefaultValues.Network, Destination: &FlagValues.Network, + EnvVars: []string{"NETWORK"}, }, &cli.BoolFlag{ Name: "l15-prod", @@ -78,7 +85,7 @@ func getLuksoFlags() []cli.Flag { }, &cli.StringFlag{ Name: "orchestrator-tag", - Aliases: []string{"orchestrator", "orc-tag"}, + Aliases: []string{"orc-tag", "orchestrator"}, Usage: "download and set orchestrator to given tag", Destination: &FlagValues.Orchestrator.Tag, }, @@ -97,7 +104,7 @@ func getLuksoFlags() []cli.Flag { &cli.StringFlag{ Name: "orchestrator-pandora-rpc-endpoint", Aliases: []string{"orc-pandora-rpc-endpoint"}, - Usage: "Pandora node RP provider endpoint.", + Usage: "Pandora node RPC provider endpoint.", Destination: &FlagValues.Orchestrator.PandoraRPCEndpoint, }, } diff --git a/apps/lukso-cli/config/config.go b/apps/lukso-cli/config/config.go index 2556f26..ca93342 100644 --- a/apps/lukso-cli/config/config.go +++ b/apps/lukso-cli/config/config.go @@ -69,10 +69,6 @@ type LuksoValues struct { Validator struct { Tag string `yaml:"TAG"` Verbosity string `yaml:"VERBOSITY"` - HttpPort int `yaml:"HTTP_PORT"` - HttpAddr string `yaml:"HTTP_ADDR"` - WebsocketsPort int `yaml:"WS_PORT"` - WebsocketsAddr string `yaml:"WS_ADDR"` BeaconRPCProvider string `yaml:"BEACON_RPC_PROVIDER"` PandoraHTTPProvider string `yaml:"PANDORA_HTTP_PROVIDER"` } @@ -124,8 +120,8 @@ func LoadDefaults(LuksoSettings *LuksoValues) { LuksoSettings.Orchestrator.Tag = "" LuksoSettings.Orchestrator.Verbosity = "info" - LuksoSettings.Orchestrator.VanguardRPCEndpoint = "" - LuksoSettings.Orchestrator.PandoraRPCEndpoint = "" + LuksoSettings.Orchestrator.VanguardRPCEndpoint = "127.0.0.1:4000" + LuksoSettings.Orchestrator.PandoraRPCEndpoint = "ws://127.0.0.1:8546" LuksoSettings.Pandora.Tag = "" LuksoSettings.Pandora.Verbosity = "info" @@ -149,5 +145,18 @@ func LoadDefaults(LuksoSettings *LuksoValues) { LuksoSettings.Vanguard.RPCPort = 4000 LuksoSettings.Vanguard.UDPPort = 12000 LuksoSettings.Vanguard.TCPPort = 13000 + LuksoSettings.Vanguard.MonitoringHost = "127.0.0.1" + LuksoSettings.Vanguard.HTTPWeb3Provider = "http://127.0.0.1:8545" + LuksoSettings.Vanguard.GRPCGatewayPort = 3500 + LuksoSettings.Vanguard.OrchestratorRPCProvider = "http://127.0.0.1:7877" + LuksoSettings.Vanguard.MinSyncPeers = 2 + LuksoSettings.Vanguard.MaxP2PPeers = 50 + LuksoSettings.Vanguard.Ethstats = "" + LuksoSettings.Vanguard.EthstatsMetrics = "" + + LuksoSettings.Validator.Tag = "" + LuksoSettings.Validator.Verbosity = "info" + LuksoSettings.Validator.BeaconRPCProvider = "127.0.0.1:4000" + LuksoSettings.Validator.PandoraHTTPProvider = "http://127.0.0.1:8545" } diff --git a/apps/lukso-cli/lukso-cli.go b/apps/lukso-cli/lukso-cli.go index cd23dfc..4b84b24 100644 --- a/apps/lukso-cli/lukso-cli.go +++ b/apps/lukso-cli/lukso-cli.go @@ -9,7 +9,9 @@ import ( var LuksoSettings config.LuksoValues func main() { - cli.InitFlags() + + // Initialize CLI, read values from flags + cli.Init() // Build Settings @@ -21,10 +23,6 @@ func main() { config.LoadConfig(&LuksoSettings, cli.FlagValues.Config) } - if cli.FlagValues.GUI { - // gui.Start() - } - //Overwrite with flags cli.LoadFlags(&LuksoSettings) @@ -37,4 +35,14 @@ func main() { // RUN runner.Action(cli.Cmd, cli.Arg, &LuksoSettings) + if cli.FlagValues.ApiServer || cli.FlagValues.GUI { + //Start API server + //HTTPApi.Start() + } + + if cli.FlagValues.GUI { + // Start Frontend Server + // gui.Start() + } + } diff --git a/apps/lukso-cli/runner/pandora/pandora.go b/apps/lukso-cli/runner/pandora/pandora.go index a8fb374..89a64d0 100644 --- a/apps/lukso-cli/runner/pandora/pandora.go +++ b/apps/lukso-cli/runner/pandora/pandora.go @@ -22,7 +22,7 @@ func Prepare(LuksoSettings *config.LuksoValues) { } func Start(LuksoSettings *config.LuksoValues) { - Prepare(&*LuksoSettings) + Prepare(LuksoSettings) println("Starting Pandora") err, NetworkConfig := config.LoadNetworkConfig(LuksoSettings.Network) diff --git a/apps/lukso-cli/runner/runner.go b/apps/lukso-cli/runner/runner.go index a9d3ef8..f4fb786 100644 --- a/apps/lukso-cli/runner/runner.go +++ b/apps/lukso-cli/runner/runner.go @@ -13,24 +13,24 @@ func Start(arg string, LuksoSettings *config.LuksoValues) { switch arg { case "all": - orchestrator.Start(&*LuksoSettings) - pandora.Start(&*LuksoSettings) - vanguard.Start(&*LuksoSettings) + orchestrator.Start(LuksoSettings) + pandora.Start(LuksoSettings) + vanguard.Start(LuksoSettings) if LuksoSettings.Validate { - validator.Start(&*LuksoSettings) + validator.Start(LuksoSettings) } case "orchestrator": - orchestrator.Start(&*LuksoSettings) + orchestrator.Start(LuksoSettings) case "pandora": - pandora.Start(&*LuksoSettings) + pandora.Start(LuksoSettings) case "vanguard": - vanguard.Start(&*LuksoSettings) + vanguard.Start(LuksoSettings) case "validator": - validator.Start(&*LuksoSettings) + validator.Start(LuksoSettings) } } @@ -49,11 +49,11 @@ func Version() { func Action(cmd string, arg string, LuksoSettings *config.LuksoValues) { switch cmd { case "start": - Start(arg, &*LuksoSettings) + Start(arg, LuksoSettings) case "stop": - Stop(arg, &*LuksoSettings) + Stop(arg, LuksoSettings) case "reset": - Reset(arg, &*LuksoSettings) + Reset(arg, LuksoSettings) case "version": Version() } diff --git a/apps/lukso-cli/runner/vanguard/vanguard.go b/apps/lukso-cli/runner/vanguard/vanguard.go index ae4e477..70c280a 100644 --- a/apps/lukso-cli/runner/vanguard/vanguard.go +++ b/apps/lukso-cli/runner/vanguard/vanguard.go @@ -23,7 +23,7 @@ func prepare(LuksoSettings *config.LuksoValues) error { func Start(LuksoSettings *config.LuksoValues) { - err := prepare(&*LuksoSettings) + err := prepare(LuksoSettings) if err != nil { println(err) From a61a2682882e3003ad0457d0c93dcf853b65fc17 Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Tue, 7 Dec 2021 15:46:10 +0100 Subject: [PATCH 14/15] Add more flags --- apps/lukso-cli/cli/luksoFlags.go | 82 ++++++++++++++++++++++++++++---- 1 file changed, 72 insertions(+), 10 deletions(-) diff --git a/apps/lukso-cli/cli/luksoFlags.go b/apps/lukso-cli/cli/luksoFlags.go index 59786ff..79481f3 100644 --- a/apps/lukso-cli/cli/luksoFlags.go +++ b/apps/lukso-cli/cli/luksoFlags.go @@ -1,6 +1,8 @@ package cli import ( + "strconv" + "github.com/urfave/cli/v2" "lukso-cli/config" @@ -24,6 +26,11 @@ func getLuksoFlags() []cli.Flag { config.LoadDefaults(&DefaultValues) luksoFlags = []cli.Flag{ + &cli.BoolFlag{ + Name: "api", + Usage: "Starts API server", + Destination: &FlagValues.ApiServer, + }, &cli.BoolFlag{ Name: "gui", Usage: "Starts GUI", @@ -36,13 +43,6 @@ func getLuksoFlags() []cli.Flag { TakesFile: true, Destination: &FlagValues.Config, }, - &cli.StringFlag{ - Name: "network", - Value: "", - Usage: "Picks which setup to use default: " + DefaultValues.Network, - Destination: &FlagValues.Network, - EnvVars: []string{"NETWORK"}, - }, &cli.BoolFlag{ Name: "l15-prod", Usage: "Alias for --network l15-prod", @@ -58,6 +58,18 @@ func getLuksoFlags() []cli.Flag { Usage: "Alias for --network l15-dev", Destination: &FlagValues.l15_dev, }, + &cli.BoolFlag{ + Name: "force", + Usage: "Enables force mode", + Destination: &FlagValues.Force, + }, + &cli.StringFlag{ + Name: "network", + Value: "", + Usage: "Picks which setup to use default: " + DefaultValues.Network, + Destination: &FlagValues.Network, + EnvVars: []string{"NETWORK"}, + }, &cli.BoolFlag{ Name: "validate", Usage: "Starts validator", @@ -73,15 +85,35 @@ func getLuksoFlags() []cli.Flag { Usage: "Name of node that's shown on pandora stats and vanguard stats", Destination: &FlagValues.NodeName, }, + &cli.StringFlag{ + Name: "datadir", + Usage: "Sets datadir path", + Destination: &FlagValues.DataDir, + }, &cli.StringFlag{ Name: "logsdir", Usage: "Sets the logs path", Destination: &FlagValues.LogsDir, }, &cli.StringFlag{ - Name: "datadir", - Usage: "Sets datadir path", - Destination: &FlagValues.DataDir, + Name: "keys-dir", + Usage: "Sets directory of lukso-deposit-cli keys (can be used with \"keygen\" or \"wallet\")", + Destination: &FlagValues.LogsDir, + }, + &cli.StringFlag{ + Name: "keys-password-file", + Usage: "Sets path to lukso-deposit-cli keys (can be used with \"keygen\" or \"wallet\")", + Destination: &FlagValues.LogsDir, + }, + &cli.StringFlag{ + Name: "wallet-dir", + Usage: "Sets directory of lukso-validator wallet", + Destination: &FlagValues.LogsDir, + }, + &cli.StringFlag{ + Name: "wallet-password-file", + Usage: "Password for lukso-validator", + Destination: &FlagValues.LogsDir, }, &cli.StringFlag{ Name: "orchestrator-tag", @@ -107,6 +139,36 @@ func getLuksoFlags() []cli.Flag { Usage: "Pandora node RPC provider endpoint.", Destination: &FlagValues.Orchestrator.PandoraRPCEndpoint, }, + &cli.StringFlag{ + Name: "pandora-tag", + Aliases: []string{"pan-tag", "pandora"}, + Usage: "download and set pandora to given tag", + Destination: &FlagValues.Pandora.Tag, + }, + &cli.StringFlag{ + Name: "pandora-verbosity", + Aliases: []string{"pan-verbosity"}, + Usage: "Sets pandora logging depth (Default: " + DefaultValues.Pandora.Verbosity + ")", + Destination: &FlagValues.Pandora.Verbosity, + }, + &cli.StringFlag{ + Name: "pandora-bootnodes", + Aliases: []string{"pan-bootnodes"}, + Usage: "Sets pandora bootnodes (Default: " + DefaultValues.Pandora.Verbosity + ")", + Destination: &FlagValues.Pandora.Bootnodes, + }, + &cli.IntFlag{ + Name: "pandora-port", + Aliases: []string{"pan-port"}, + Usage: "Pandora client TCP/UDP port exposed. (Default: " + strconv.Itoa(DefaultValues.Pandora.Port) + ")", + Destination: &FlagValues.Pandora.Port, + }, + &cli.StringFlag{ + Name: "pandora-http-addr", + Aliases: []string{"pan-http-addr"}, + Usage: "Pandora client http address exposed. (Default: " + DefaultValues.Pandora.HttpAddr + ")", + Destination: &FlagValues.Pandora.Bootnodes, + }, } return luksoFlags } From 5d6fb1c4b9dd6be91256aa9029ea69315f962c4d Mon Sep 17 00:00:00 2001 From: Patryk Krakos Date: Tue, 7 Dec 2021 17:06:29 +0100 Subject: [PATCH 15/15] Add more flags --- apps/lukso-cli/cli/luksoFlags.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apps/lukso-cli/cli/luksoFlags.go b/apps/lukso-cli/cli/luksoFlags.go index 79481f3..bfc6548 100644 --- a/apps/lukso-cli/cli/luksoFlags.go +++ b/apps/lukso-cli/cli/luksoFlags.go @@ -169,6 +169,24 @@ func getLuksoFlags() []cli.Flag { Usage: "Pandora client http address exposed. (Default: " + DefaultValues.Pandora.HttpAddr + ")", Destination: &FlagValues.Pandora.Bootnodes, }, + &cli.IntFlag{ + Name: "pandora-http-port", + Aliases: []string{"pan-http-port"}, + Usage: "Pandora client http port exposed. (Default: " + strconv.Itoa(DefaultValues.Pandora.HttpPort) + ")", + Destination: &FlagValues.Pandora.HttpPort, + }, + &cli.StringFlag{ + Name: "pandora-ws-addr", + Aliases: []string{"pan-ws-addr"}, + Usage: "Pandora client websocket address exposed. (Default: " + DefaultValues.Pandora.WebsocketsAddr + ")", + Destination: &FlagValues.Pandora.Bootnodes, + }, + &cli.IntFlag{ + Name: "pandora-ws-port", + Aliases: []string{"pan-ws-port"}, + Usage: "Pandora client websocket port exposed. (Default: " + strconv.Itoa(DefaultValues.Pandora.WebsocketsPort) + ")", + Destination: &FlagValues.Pandora.HttpPort, + }, } return luksoFlags }