package app import ( "errors" "source.quilibrium.com/quilibrium/monorepo/node/consensus" "source.quilibrium.com/quilibrium/monorepo/node/execution" "source.quilibrium.com/quilibrium/monorepo/node/execution/ceremony" ) type Node struct { execEngines map[string]execution.ExecutionEngine engine consensus.ConsensusEngine } func newNode( ceremonyExecutionEngine *ceremony.CeremonyExecutionEngine, engine consensus.ConsensusEngine, ) (*Node, error) { if engine == nil { return nil, errors.New("engine must not be nil") } execEngines := make(map[string]execution.ExecutionEngine) if ceremonyExecutionEngine != nil { execEngines[ceremonyExecutionEngine.GetName()] = ceremonyExecutionEngine } return &Node{ execEngines, engine, }, nil } func (n *Node) Start() { err := <-n.engine.Start() if err != nil { panic(err) } // TODO: add config mapping to engine name/frame registration for _, e := range n.execEngines { n.engine.RegisterExecutor(e, 0) } } func (n *Node) Stop() { err := <-n.engine.Stop(false) if err != nil { panic(err) } }