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

Function NewNode

node/node.go:706–938  ·  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,
	options ...Option,
)

Source from the content-addressed store, hash-verified

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

Callers 2

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 1