diff --git a/core/chaincode/platforms/golang/package.go b/core/chaincode/platforms/golang/package.go index 90999396a2a..a99693d914d 100644 --- a/core/chaincode/platforms/golang/package.go +++ b/core/chaincode/platforms/golang/package.go @@ -113,6 +113,13 @@ func getCodeFromHTTP(path string) (codegopath string, err error) { done <- cmd.Wait() }() + ccDeployTimeout := viper.GetDuration("chaincode.deploytimeout") + if ccDeployTimeout < time.Duration(30)*time.Second { + logger.Warningf("Invalid chaincode deploy timeout value %s (should be at least 30s); defaulting to 30s", ccDeployTimeout) + ccDeployTimeout = time.Duration(30) * time.Second + } else { + logger.Debugf("Setting chaincode deploy timeout to %s", ccDeployTimeout) + } select { case <-time.After(time.Duration(viper.GetInt("chaincode.deploytimeout")) * time.Millisecond): // If pulling repos takes too long, we should give up diff --git a/sampleconfig/core.yaml b/sampleconfig/core.yaml index 3a87546e75a..26f1bb3aae1 100644 --- a/sampleconfig/core.yaml +++ b/sampleconfig/core.yaml @@ -306,8 +306,8 @@ chaincode: # system chaincodes. Default is 30 seconds executetimeout: 30s - #timeout in millisecs for deploying chaincode from a remote repository. - deploytimeout: 30000 + #timeout duration for deploying chaincode from a remote repository. + deploytimeout: 30s #mode - options are "dev", "net" #dev - in dev mode, user runs the chaincode after starting validator from