diff --git a/cmd/kaspactl/config.go b/cmd/kaspactl/config.go index 7053d4573f..c37f8874b6 100644 --- a/cmd/kaspactl/config.go +++ b/cmd/kaspactl/config.go @@ -12,11 +12,12 @@ var ( ) type configFlags struct { - RPCServer string `short:"s" long:"rpcserver" description:"RPC server to connect to"` - Timeout uint64 `short:"t" long:"timeout" description:"Timeout for the request (in seconds)"` - RequestJSON string `short:"j" long:"json" description:"The request in JSON format"` - ListCommands bool `short:"l" long:"list-commands" description:"List all commands and exit"` - CommandAndParameters []string + RPCServer string `short:"s" long:"rpcserver" description:"RPC server to connect to"` + Timeout uint64 `short:"t" long:"timeout" description:"Timeout for the request (in seconds)"` + RequestJSON string `short:"j" long:"json" description:"The request in JSON format"` + ListCommands bool `short:"l" long:"list-commands" description:"List all commands and exit"` + AllowConnectionToDifferentVersions bool `short:"a" long:"allow-connection-to-different-versions" description:"Allow connections to versions different than kaspactl's version'"` + CommandAndParameters []string config.NetworkFlags } diff --git a/cmd/kaspactl/main.go b/cmd/kaspactl/main.go index c69db51bca..df01b794da 100644 --- a/cmd/kaspactl/main.go +++ b/cmd/kaspactl/main.go @@ -34,16 +34,18 @@ func main() { } defer client.Disconnect() - kaspadMessage, err := client.Post(&protowire.KaspadMessage{Payload: &protowire.KaspadMessage_GetInfoRequest{GetInfoRequest: &protowire.GetInfoRequestMessage{}}}) - if err != nil { - printErrorAndExit(fmt.Sprintf("Cannot post GetInfo message: %s", err)) - } - - localVersion := version.Version() - remoteVersion := kaspadMessage.GetGetInfoResponse().ServerVersion - - if localVersion != remoteVersion { - printErrorAndExit(fmt.Sprintf("Server version mismatch, expect: %s, got: %s", localVersion, remoteVersion)) + if !cfg.AllowConnectionToDifferentVersions { + kaspadMessage, err := client.Post(&protowire.KaspadMessage{Payload: &protowire.KaspadMessage_GetInfoRequest{GetInfoRequest: &protowire.GetInfoRequestMessage{}}}) + if err != nil { + printErrorAndExit(fmt.Sprintf("Cannot post GetInfo message: %s", err)) + } + + localVersion := version.Version() + remoteVersion := kaspadMessage.GetGetInfoResponse().ServerVersion + + if localVersion != remoteVersion { + printErrorAndExit(fmt.Sprintf("Server version mismatch, expect: %s, got: %s", localVersion, remoteVersion)) + } } responseChan := make(chan string) diff --git a/version/version.go b/version/version.go index 80a2cb4aeb..01f6001790 100644 --- a/version/version.go +++ b/version/version.go @@ -11,7 +11,7 @@ const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs const ( appMajor uint = 0 appMinor uint = 11 - appPatch uint = 11 + appPatch uint = 12 ) // appBuild is defined as a variable so it can be overridden during the build