github.com/celestiaorg/celestia-node@v0.15.0-beta.1/nodebuilder/node/config.go (about) 1 package node 2 3 import ( 4 "fmt" 5 "time" 6 ) 7 8 var defaultLifecycleTimeout = time.Minute * 2 9 10 type Config struct { 11 StartupTimeout time.Duration 12 ShutdownTimeout time.Duration 13 } 14 15 // DefaultConfig returns the default node configuration for a given node type. 16 func DefaultConfig(tp Type) Config { 17 var timeout time.Duration 18 switch tp { 19 case Light: 20 timeout = time.Second * 20 21 default: 22 timeout = defaultLifecycleTimeout 23 } 24 return Config{ 25 StartupTimeout: timeout, 26 ShutdownTimeout: timeout, 27 } 28 } 29 30 func (c *Config) Validate() error { 31 if c.StartupTimeout == 0 { 32 return fmt.Errorf("invalid startup timeout: %v", c.StartupTimeout) 33 } 34 if c.ShutdownTimeout == 0 { 35 return fmt.Errorf("invalid shutdown timeout: %v", c.ShutdownTimeout) 36 } 37 return nil 38 }