code: func NewKernel(dbDir string) (*Kernel, error) {
  	if dbDir == "" {
  		return nil, fmt.Errorf("Burrow requires a database directory")
  	}
  	runID, err := simpleuuid.NewTime(time.Now()) // Create a random ID based on start time
  	return &Kernel{
  		Logger:         logging.NewNoopLogger(),
  		RunID:          runID,
  		Emitter:        event.NewEmitter(),
  		processes:      make(map[string]process.Process),
  		listeners:      make(map[string]net.Listener),
  		shutdownNotify: make(chan struct{}),
  		txCodec:        txs.NewAminoCodec(),
  		database:       dbm.NewDB(BurrowDBName, dbm.GoLevelDBBackend, dbDir),
  	}, err
  }
docs: // NewKernel initializes an empty kernel