github.com/celestiaorg/celestia-node@v0.15.0-beta.1/nodebuilder/share/config.go (about) 1 package share 2 3 import ( 4 "fmt" 5 6 "github.com/celestiaorg/celestia-node/nodebuilder/node" 7 "github.com/celestiaorg/celestia-node/share/availability/light" 8 "github.com/celestiaorg/celestia-node/share/eds" 9 "github.com/celestiaorg/celestia-node/share/p2p/discovery" 10 "github.com/celestiaorg/celestia-node/share/p2p/peers" 11 "github.com/celestiaorg/celestia-node/share/p2p/shrexeds" 12 "github.com/celestiaorg/celestia-node/share/p2p/shrexnd" 13 ) 14 15 // TODO: some params are pointers and other are not, Let's fix this. 16 type Config struct { 17 // EDSStoreParams sets eds store configuration parameters 18 EDSStoreParams *eds.Parameters 19 20 UseShareExchange bool 21 // ShrExEDSParams sets shrexeds client and server configuration parameters 22 ShrExEDSParams *shrexeds.Parameters 23 // ShrExNDParams sets shrexnd client and server configuration parameters 24 ShrExNDParams *shrexnd.Parameters 25 // PeerManagerParams sets peer-manager configuration parameters 26 PeerManagerParams peers.Parameters 27 28 LightAvailability light.Parameters `toml:",omitempty"` 29 Discovery *discovery.Parameters 30 } 31 32 func DefaultConfig(tp node.Type) Config { 33 cfg := Config{ 34 EDSStoreParams: eds.DefaultParameters(), 35 Discovery: discovery.DefaultParameters(), 36 ShrExEDSParams: shrexeds.DefaultParameters(), 37 ShrExNDParams: shrexnd.DefaultParameters(), 38 UseShareExchange: true, 39 PeerManagerParams: peers.DefaultParameters(), 40 } 41 42 if tp == node.Light { 43 cfg.LightAvailability = light.DefaultParameters() 44 } 45 46 return cfg 47 } 48 49 // Validate performs basic validation of the config. 50 func (cfg *Config) Validate(tp node.Type) error { 51 if tp == node.Light { 52 if err := cfg.LightAvailability.Validate(); err != nil { 53 return fmt.Errorf("nodebuilder/share: %w", err) 54 } 55 } 56 57 if err := cfg.Discovery.Validate(); err != nil { 58 return fmt.Errorf("nodebuilder/share: %w", err) 59 } 60 61 if err := cfg.ShrExNDParams.Validate(); err != nil { 62 return fmt.Errorf("nodebuilder/share: %w", err) 63 } 64 65 if err := cfg.ShrExEDSParams.Validate(); err != nil { 66 return fmt.Errorf("nodebuilder/share: %w", err) 67 } 68 69 if err := cfg.PeerManagerParams.Validate(); err != nil { 70 return fmt.Errorf("nodebuilder/share: %w", err) 71 } 72 73 return nil 74 }