code: func (t *MarblesPrivateChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
  	function, args := stub.GetFunctionAndParameters()
  	fmt.Println("invoke is running " + function)
  
  	// Handle different functions
  	switch function {
  	case "initMarble":
  		//create a new marble
  		return t.initMarble(stub, args)
  	case "readMarble":
  		//read a marble
  		return t.readMarble(stub, args)
  	case "readMarblePrivateDetails":
  		//read a marble private details
  		return t.readMarblePrivateDetails(stub, args)
  	case "delete":
  		//delete a marble
  		return t.delete(stub, args)
  	default:
  		//error
  		fmt.Println("invoke did not find func: " + function)
  		return shim.Error("Received unknown function invocation")
  	}
  }
docs: // Invoke - Our entry point for Invocations
  // ========================================