diff --git a/core/chaincode/chaincode_support.go b/core/chaincode/chaincode_support.go index c3f5da915c3..039f9b6c595 100644 --- a/core/chaincode/chaincode_support.go +++ b/core/chaincode/chaincode_support.go @@ -713,3 +713,10 @@ func (chaincodeSupport *ChaincodeSupport) Execute(ctxt context.Context, cccid *C return ccresp, err } + +// Returns true if the peer was configured with development-mode enabled +func IsDevMode() bool { + mode := viper.GetString("chaincode.mode") + + return mode == DevModeUserRunsChaincode +} diff --git a/core/endorser/endorser.go b/core/endorser/endorser.go index f72b9cf6f92..39616650b31 100644 --- a/core/endorser/endorser.go +++ b/core/endorser/endorser.go @@ -83,8 +83,12 @@ func (e *Endorser) deploy(ctxt context.Context, cccid *chaincode.CCContext, cds return fmt.Errorf("%s", err) } - //stop now that we are done - chaincodeSupport.Stop(ctxt, cccid, cds) + if chaincode.IsDevMode() == false { + //stop now that we are done + chaincodeSupport.Stop(ctxt, cccid, cds) + } else { + endorserLogger.Debug("devmode: skipping stop") + } return nil } diff --git a/peer/chaincode/common.go b/peer/chaincode/common.go index 2cf1b8336b9..8d080b91d87 100644 --- a/peer/chaincode/common.go +++ b/peer/chaincode/common.go @@ -33,7 +33,6 @@ import ( pb "github.com/hyperledger/fabric/protos/peer" putils "github.com/hyperledger/fabric/protos/utils" "github.com/spf13/cobra" - "github.com/spf13/viper" "golang.org/x/net/context" ) @@ -54,9 +53,8 @@ func checkSpec(spec *pb.ChaincodeSpec) error { // getChaincodeBytes get chaincode deployment spec given the chaincode spec func getChaincodeBytes(spec *pb.ChaincodeSpec) (*pb.ChaincodeDeploymentSpec, error) { - mode := viper.GetString("chaincode.mode") var codePackageBytes []byte - if mode != chaincode.DevModeUserRunsChaincode { + if chaincode.IsDevMode() == false { var err error if err = checkSpec(spec); err != nil { return nil, err diff --git a/peer/node/start.go b/peer/node/start.go index 9aefb83b8b4..db6b3f3a137 100644 --- a/peer/node/start.go +++ b/peer/node/start.go @@ -260,10 +260,7 @@ func serve(args []string) error { //which will be registered only during join phase. func registerChaincodeSupport(grpcServer *grpc.Server) { //get user mode - userRunsCC := false - if viper.GetString("chaincode.mode") == chaincode.DevModeUserRunsChaincode { - userRunsCC = true - } + userRunsCC := chaincode.IsDevMode() //get chaincode startup timeout tOut, err := strconv.Atoi(viper.GetString("chaincode.startuptimeout"))