code: func acquireTxSimulator(chainID string, ccid *pb.ChaincodeID) bool {
  	if chainID == "" {
  		return false
  	}
  
  	// ¯\_(ツ)_/¯ locking.
  	// Don't get a simulator for the query and config system chaincode.
  	// These don't need the simulator and its read lock results in deadlocks.
  	switch ccid.Name {
  	case "qscc", "cscc":
  		return false
  	default:
  		return true
  	}
  }
docs: // determine whether or not a transaction simulator should be
  // obtained for a proposal.