mirror of https://github.com/poanetwork/gecko.git
don't ignore errors when adding routes; improve logging
This commit is contained in:
parent
3ca3a7377a
commit
4c75989056
107
node/node.go
107
node/node.go
|
@ -443,66 +443,83 @@ func (n *Node) initSharedMemory() {
|
|||
|
||||
// initKeystoreAPI initializes the keystore service
|
||||
// Assumes n.APIServer is already set
|
||||
func (n *Node) initKeystoreAPI() {
|
||||
n.Log.Info("initializing Keystore API")
|
||||
func (n *Node) initKeystoreAPI() error {
|
||||
n.Log.Info("initializing keystore")
|
||||
keystoreDB := prefixdb.New([]byte("keystore"), n.DB)
|
||||
n.keystoreServer.Initialize(n.Log, keystoreDB)
|
||||
keystoreHandler := n.keystoreServer.CreateHandler()
|
||||
if n.Config.KeystoreAPIEnabled {
|
||||
n.APIServer.AddRoute(keystoreHandler, &sync.RWMutex{}, "keystore", "", n.HTTPLog)
|
||||
if !n.Config.KeystoreAPIEnabled {
|
||||
n.Log.Info("skipping keystore API initializaion because it has been disabled")
|
||||
return nil
|
||||
}
|
||||
n.Log.Info("initializing keystore API")
|
||||
return n.APIServer.AddRoute(keystoreHandler, &sync.RWMutex{}, "keystore", "", n.HTTPLog)
|
||||
|
||||
}
|
||||
|
||||
// initMetricsAPI initializes the Metrics API
|
||||
// Assumes n.APIServer is already set
|
||||
func (n *Node) initMetricsAPI() {
|
||||
n.Log.Info("initializing Metrics API")
|
||||
func (n *Node) initMetricsAPI() error {
|
||||
n.Log.Info("initializing metrics")
|
||||
registry, handler := metrics.NewService()
|
||||
if n.Config.MetricsAPIEnabled {
|
||||
n.APIServer.AddRoute(handler, &sync.RWMutex{}, "metrics", "", n.HTTPLog)
|
||||
n.Log.Info("initializing metrics API")
|
||||
if err := n.APIServer.AddRoute(handler, &sync.RWMutex{}, "metrics", "", n.HTTPLog); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
n.Log.Info("skipping metrics API initialization because it has been disabled")
|
||||
}
|
||||
n.Config.ConsensusParams.Metrics = registry
|
||||
return nil
|
||||
}
|
||||
|
||||
// initAdminAPI initializes the Admin API service
|
||||
// Assumes n.log, n.chainManager, and n.ValidatorAPI already initialized
|
||||
func (n *Node) initAdminAPI() {
|
||||
if n.Config.AdminAPIEnabled {
|
||||
n.Log.Info("initializing Admin API")
|
||||
service := admin.NewService(Version, n.ID, n.Config.NetworkID, n.Log, n.chainManager, n.Net, &n.APIServer)
|
||||
n.APIServer.AddRoute(service, &sync.RWMutex{}, "admin", "", n.HTTPLog)
|
||||
func (n *Node) initAdminAPI() error {
|
||||
if !n.Config.AdminAPIEnabled {
|
||||
n.Log.Info("skipping admin API initializaion because it has been disabled")
|
||||
return nil
|
||||
}
|
||||
n.Log.Info("initializing admin API")
|
||||
service := admin.NewService(Version, n.ID, n.Config.NetworkID, n.Log, n.chainManager, n.Net, &n.APIServer)
|
||||
return n.APIServer.AddRoute(service, &sync.RWMutex{}, "admin", "", n.HTTPLog)
|
||||
}
|
||||
|
||||
func (n *Node) initInfoAPI() {
|
||||
if n.Config.InfoAPIEnabled {
|
||||
n.Log.Info("initializing Info API")
|
||||
service := info.NewService(n.Log, Version, n.ID, n.Config.NetworkID, n.chainManager, n.Net)
|
||||
n.APIServer.AddRoute(service, &sync.RWMutex{}, "info", "", n.HTTPLog)
|
||||
func (n *Node) initInfoAPI() error {
|
||||
if !n.Config.InfoAPIEnabled {
|
||||
n.Log.Info("skipping info API initializaion because it has been disabled")
|
||||
return nil
|
||||
}
|
||||
n.Log.Info("initializing info API")
|
||||
service := info.NewService(n.Log, Version, n.ID, n.Config.NetworkID, n.chainManager, n.Net)
|
||||
return n.APIServer.AddRoute(service, &sync.RWMutex{}, "info", "", n.HTTPLog)
|
||||
|
||||
}
|
||||
|
||||
// initHealthAPI initializes the Health API service
|
||||
// Assumes n.Log, n.ConsensusAPI, and n.ValidatorAPI already initialized
|
||||
func (n *Node) initHealthAPI() {
|
||||
// Assumes n.Log, n.Net, n.APIServer, n.HTTPLog already initialized
|
||||
func (n *Node) initHealthAPI() error {
|
||||
if !n.Config.HealthAPIEnabled {
|
||||
return
|
||||
n.Log.Info("skipping health API initializaion because it has been disabled")
|
||||
return nil
|
||||
}
|
||||
|
||||
n.Log.Info("initializing Health API")
|
||||
service := health.NewService(n.Log)
|
||||
service.RegisterHeartbeat("network.validators.heartbeat", n.Net, 5*time.Minute)
|
||||
n.APIServer.AddRoute(service.Handler(), &sync.RWMutex{}, "health", "", n.HTTPLog)
|
||||
return n.APIServer.AddRoute(service.Handler(), &sync.RWMutex{}, "health", "", n.HTTPLog)
|
||||
}
|
||||
|
||||
// initIPCAPI initializes the IPC API service
|
||||
// Assumes n.log and n.chainManager already initialized
|
||||
func (n *Node) initIPCAPI() {
|
||||
if n.Config.IPCEnabled {
|
||||
n.Log.Info("initializing IPC API")
|
||||
service := ipcs.NewService(n.Log, n.chainManager, n.DecisionDispatcher, &n.APIServer)
|
||||
n.APIServer.AddRoute(service, &sync.RWMutex{}, "ipcs", "", n.HTTPLog)
|
||||
func (n *Node) initIPCAPI() error {
|
||||
if !n.Config.IPCEnabled {
|
||||
n.Log.Info("skipping ipc API initializaion because it has been disabled")
|
||||
return nil
|
||||
}
|
||||
n.Log.Info("initializing ipc API")
|
||||
service := ipcs.NewService(n.Log, n.chainManager, n.DecisionDispatcher, &n.APIServer)
|
||||
return n.APIServer.AddRoute(service, &sync.RWMutex{}, "ipcs", "", n.HTTPLog)
|
||||
}
|
||||
|
||||
// Give chains and VMs aliases as specified by the genesis information
|
||||
|
@ -561,9 +578,13 @@ func (n *Node) Initialize(Config *Config, logger logging.Logger, logFactory logg
|
|||
n.initBeacons()
|
||||
|
||||
// Start HTTP APIs
|
||||
n.initAPIServer() // Start the API Server
|
||||
n.initKeystoreAPI() // Start the Keystore API
|
||||
n.initMetricsAPI() // Start the Metrics API
|
||||
n.initAPIServer() // Start the API Server
|
||||
if err := n.initKeystoreAPI(); err != nil { // Start the Keystore API
|
||||
return fmt.Errorf("couldn't initialize keystore API: %w", err)
|
||||
}
|
||||
if err := n.initMetricsAPI(); err != nil { // Start the Metrics API
|
||||
return fmt.Errorf("couldn't initialize metrics API: %w", err)
|
||||
}
|
||||
|
||||
// initialize shared memory
|
||||
n.initSharedMemory()
|
||||
|
@ -579,15 +600,25 @@ func (n *Node) Initialize(Config *Config, logger logging.Logger, logFactory logg
|
|||
n.initEventDispatcher() // Set up the event dipatcher
|
||||
n.initChainManager() // Set up the chain manager
|
||||
|
||||
n.initAdminAPI() // Start the Admin API
|
||||
n.initInfoAPI() // Start the Info API
|
||||
n.initHealthAPI() // Start the Health API
|
||||
n.initIPCAPI() // Start the IPC API
|
||||
|
||||
if err := n.initAliases(); err != nil { // Set up aliases
|
||||
return err
|
||||
if err := n.initAdminAPI(); err != nil { // Start the Admin API
|
||||
return fmt.Errorf("couldn't initialize admin API: %w", err)
|
||||
}
|
||||
return n.initChains() // Start the Platform chain
|
||||
if err := n.initInfoAPI(); err != nil { // Start the Info API
|
||||
return fmt.Errorf("couldn't initialize info API: %w", err)
|
||||
}
|
||||
if err := n.initHealthAPI(); err != nil { // Start the Health API
|
||||
return fmt.Errorf("couldn't initialize health API: %w", err)
|
||||
}
|
||||
if err := n.initIPCAPI(); err != nil { // Start the IPC API
|
||||
return fmt.Errorf("couldn't initialize ipc API: %w", err)
|
||||
}
|
||||
if err := n.initAliases(); err != nil { // Set up aliases
|
||||
return fmt.Errorf("couldn't initialize aliases: %w", err)
|
||||
}
|
||||
if err := n.initChains(); err != nil { // Start the Platform chain
|
||||
return fmt.Errorf("couldn't initialize chains: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Shutdown this node
|
||||
|
|
Loading…
Reference in New Issue