code: func NoConsensusLauncher(kern *Kernel) process.Launcher {
  	return process.Launcher{
  		Name:    NoConsensusProcessName,
  		Enabled: kern.Node == nil,
  		Launch: func() (process.Process, error) {
  			accountState := kern.State
  			nameRegState := kern.State
  			kern.Service = rpc.NewService(accountState, nameRegState, kern.Blockchain, kern.State, nil, kern.Logger)
  			// TimeoutFactor scales in units of seconds
  			blockDuration := time.Duration(kern.timeoutFactor * float64(time.Second))
  			//proc := abci.NewProcess(kern.checker, kern.committer, kern.Blockchain, kern.txCodec, blockDuration, kern.Panic)
  			proc := abci.NewProcess(kern.committer, kern.Blockchain, kern.txCodec, blockDuration, kern.Panic)
  			// Provide execution accounts against backend state since we will commit immediately
  			accounts := execution.NewAccounts(kern.committer, kern.keyClient, AccountsRingMutexCount)
  			// Elide consensus and use a CheckTx function that immediately commits any valid transaction
  			kern.Transactor = execution.NewTransactor(kern.Blockchain, kern.Emitter, accounts, proc.CheckTx, kern.txCodec,
  				kern.Logger)
  			return proc, nil
  		},
  	}
  }
docs: // Run a single uncoordinated local state