diff --git a/client/context/context.go b/client/context/context.go index d28cc34f87..2d9c9b90c9 100644 --- a/client/context/context.go +++ b/client/context/context.go @@ -9,8 +9,12 @@ import ( "github.com/spf13/viper" + "github.com/tendermint/tendermint/libs/cli" + tendermintLite "github.com/tendermint/tendermint/lite" tmlite "github.com/tendermint/tendermint/lite" + tendermintLiteProxy "github.com/tendermint/tendermint/lite/proxy" rpcclient "github.com/tendermint/tendermint/rpc/client" + "fmt" ) const ctxAccStoreName = "acc" @@ -46,6 +50,22 @@ func NewCLIContext() CLIContext { rpc = rpcclient.NewHTTP(nodeURI, "/websocket") } + trustNode := viper.GetBool(client.FlagTrustNode) + var certifier tendermintLite.Certifier + if !trustNode { + chainID := viper.GetString(client.FlagChainID) + home := viper.GetString(cli.HomeFlag) + if chainID != "" && home != "" && nodeURI != "" { + var err error + certifier, err = tendermintLiteProxy.GetCertifier(chainID, home, nodeURI) + if err != nil { + panic(err) + } + } else { + panic(fmt.Errorf("can't create certifier for distrust mode, values from these options may be empty: --chain-id, --home or --node")) + } + } + return CLIContext{ Client: rpc, NodeURI: nodeURI, @@ -54,11 +74,12 @@ func NewCLIContext() CLIContext { Height: viper.GetInt64(client.FlagHeight), Gas: viper.GetInt64(client.FlagGas), GasAdjustment: viper.GetFloat64(client.FlagGasAdjustment), - TrustNode: viper.GetBool(client.FlagTrustNode), + TrustNode: trustNode, UseLedger: viper.GetBool(client.FlagUseLedger), Async: viper.GetBool(client.FlagAsync), JSON: viper.GetBool(client.FlagJson), PrintResponse: viper.GetBool(client.FlagPrintResponse), + Certifier: certifier, } } diff --git a/client/flags.go b/client/flags.go index 81e0670678..12bddb7d96 100644 --- a/client/flags.go +++ b/client/flags.go @@ -58,6 +58,7 @@ func PostCommands(cmds ...*cobra.Command) []*cobra.Command { c.Flags().Bool(FlagAsync, false, "broadcast transactions asynchronously") c.Flags().Bool(FlagJson, false, "return output in json format") c.Flags().Bool(FlagPrintResponse, true, "return tx response (only works with async = false)") + c.Flags().Bool(FlagTrustNode, true, "Don't verify proofs for query responses") } return cmds } diff --git a/client/lcd/root.go b/client/lcd/root.go index f05fb88081..f18ee5dfd4 100644 --- a/client/lcd/root.go +++ b/client/lcd/root.go @@ -4,11 +4,11 @@ import ( "net/http" "os" - client "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/context" - keys "github.com/cosmos/cosmos-sdk/client/keys" - rpc "github.com/cosmos/cosmos-sdk/client/rpc" - tx "github.com/cosmos/cosmos-sdk/client/tx" + "github.com/cosmos/cosmos-sdk/client/keys" + "github.com/cosmos/cosmos-sdk/client/rpc" + "github.com/cosmos/cosmos-sdk/client/tx" "github.com/cosmos/cosmos-sdk/wire" auth "github.com/cosmos/cosmos-sdk/x/auth/client/rest" bank "github.com/cosmos/cosmos-sdk/x/bank/client/rest" @@ -19,11 +19,8 @@ import ( "github.com/gorilla/mux" "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/tendermint/tendermint/libs/cli" cmn "github.com/tendermint/tendermint/libs/common" "github.com/tendermint/tendermint/libs/log" - tendermintLite "github.com/tendermint/tendermint/lite" - tendermintLiteProxy "github.com/tendermint/tendermint/lite/proxy" tmserver "github.com/tendermint/tendermint/rpc/lib/server" ) @@ -84,17 +81,6 @@ func createHandler(cdc *wire.Codec) http.Handler { cliCtx := context.NewCLIContext().WithCodec(cdc).WithLogger(os.Stdout) - chainID := viper.GetString(client.FlagChainID) - home := viper.GetString(cli.HomeFlag) - nodeURI := viper.GetString(client.FlagNode) - var certifier tendermintLite.Certifier - if chainID != "" && home != "" && nodeURI != "" { - certifier, err = tendermintLiteProxy.GetCertifier(chainID, home, nodeURI) - if err != nil { - panic(err) - } - cliCtx = cliCtx.WithCertifier(certifier) - } // TODO: make more functional? aka r = keys.RegisterRoutes(r) r.HandleFunc("/version", CLIVersionRequestHandler).Methods("GET") r.HandleFunc("/node_version", NodeVersionRequestHandler(cliCtx)).Methods("GET")