MCPcopy Create free account
hub / github.com/DeAI-Artist/Linkis / NewNode

Function NewNode

test/maverick/node/node.go:720–951  ·  view source on GitHub ↗

NewNode returns a new, ready to go, Tendermint Node.

(config *cfg.Config,
	privValidator types.PrivValidator,
	nodeKey *p2p.NodeKey,
	clientCreator proxy.ClientCreator,
	genesisDocProvider GenesisDocProvider,
	dbProvider DBProvider,
	metricsProvider MetricsProvider,
	logger log.Logger,
	misbehaviors map[int64]cs.Misbehavior,
	options ...Option,
)

Source from the content-addressed store, hash-verified

718
719// NewNode returns a new, ready to go, Tendermint Node.
720func NewNode(config *cfg.Config,
721 privValidator types.PrivValidator,
722 nodeKey *p2p.NodeKey,
723 clientCreator proxy.ClientCreator,
724 genesisDocProvider GenesisDocProvider,
725 dbProvider DBProvider,
726 metricsProvider MetricsProvider,
727 logger log.Logger,
728 misbehaviors map[int64]cs.Misbehavior,
729 options ...Option,
730) (*Node, error) {
731 blockStore, stateDB, err := initDBs(config, dbProvider)
732 if err != nil {
733 return nil, err
734 }
735
736 stateStore := sm.NewStore(stateDB, sm.StoreOptions{
737 DiscardABCIResponses: false,
738 })
739
740 state, genDoc, err := LoadStateFromDBOrGenesisDocProvider(stateDB, genesisDocProvider)
741 if err != nil {
742 return nil, err
743 }
744
745 // Create the proxyApp and establish connections to the ABCI app (consensus, mempool, query).
746 proxyApp, err := createAndStartProxyAppConns(clientCreator, logger)
747 if err != nil {
748 return nil, err
749 }
750
751 // EventBus and IndexerService must be started before the handshake because
752 // we might need to index the txs of the replayed block as this might not have happened
753 // when the node stopped last time (i.e. the node stopped after it saved the block
754 // but before it indexed the txs, or, endblocker panicked)
755 eventBus, err := createAndStartEventBus(logger)
756 if err != nil {
757 return nil, err
758 }
759
760 indexerService, txIndexer, blockIndexer, err := createAndStartIndexerService(config, dbProvider, eventBus, logger)
761 if err != nil {
762 return nil, err
763 }
764
765 // If an address is provided, listen on the socket for a connection from an
766 // external signing process.
767 if config.PrivValidatorListenAddr != "" {
768 // FIXME: we should start services inside OnStart
769 privValidator, err = createAndStartPrivValidatorSocketClient(config.PrivValidatorListenAddr, genDoc.ChainID, logger)
770 if err != nil {
771 return nil, fmt.Errorf("error with private validator socket client: %w", err)
772 }
773 }
774
775 pubKey, err := privValidator.GetPubKey()
776 if err != nil {
777 return nil, fmt.Errorf("can't get pubkey: %w", err)

Callers 2

startNodeFunction · 0.92
DefaultNewNodeFunction · 0.70

Calls 15

LoadMethod · 0.95
SetLoggerMethod · 0.95
NewReactorFunction · 0.92
NewBaseServiceFunction · 0.92
ListenAndServeMethod · 0.80
initDBsFunction · 0.70
createAndStartEventBusFunction · 0.70
onlyValidatorIsUsFunction · 0.70

Tested by

no test coverage detected