diff --git a/examples/basecoin/cmd/basecoind/main.go b/examples/basecoin/cmd/basecoind/main.go index b25847358..6a4f45956 100644 --- a/examples/basecoin/cmd/basecoind/main.go +++ b/examples/basecoin/cmd/basecoind/main.go @@ -69,6 +69,7 @@ func main() { server.StartCmd(generateApp, logger), server.UnsafeResetAllCmd(logger), server.ShowNodeIdCmd(logger), + server.ShowValidatorCmd(logger), version.VersionCmd, ) diff --git a/server/show_validator.go b/server/show_validator.go new file mode 100644 index 000000000..d2c7705d6 --- /dev/null +++ b/server/show_validator.go @@ -0,0 +1,40 @@ +package server + +import ( + "fmt" + + "github.com/spf13/cobra" + + "github.com/tendermint/go-wire/data" + tcmd "github.com/tendermint/tendermint/cmd/tendermint/commands" + "github.com/tendermint/tendermint/types" + "github.com/tendermint/tmlibs/log" +) + +// ShowValidator - ported from Tendermint, show this node's validator info +func ShowValidatorCmd(logger log.Logger) *cobra.Command { + cmd := showValidator{logger} + return &cobra.Command{ + Use: "show_validator", + Short: "Show this node's validator info", + RunE: cmd.run, + } +} + +type showValidator struct { + logger log.Logger +} + +func (s showValidator) run(cmd *cobra.Command, args []string) error { + cfg, err := tcmd.ParseConfig() + if err != nil { + return err + } + privValidator := types.LoadOrGenPrivValidatorFS(cfg.PrivValidatorFile()) + pubKeyJSONBytes, err := data.ToJSON(privValidator.PubKey) + if err != nil { + return err + } + fmt.Println(string(pubKeyJSONBytes)) + return nil +}