github.com/celestiaorg/celestia-node@v0.15.0-beta.1/nodebuilder/p2p/module.go (about)

     1  package p2p
     2  
     3  import (
     4  	logging "github.com/ipfs/go-log/v2"
     5  	"github.com/libp2p/go-libp2p/core/metrics"
     6  	"go.uber.org/fx"
     7  
     8  	"github.com/celestiaorg/celestia-node/nodebuilder/node"
     9  	"github.com/celestiaorg/celestia-node/share/ipld"
    10  )
    11  
    12  var log = logging.Logger("module/p2p")
    13  
    14  // ConstructModule collects all the components and services related to p2p.
    15  func ConstructModule(tp node.Type, cfg *Config) fx.Option {
    16  	// sanitize config values before constructing module
    17  	cfgErr := cfg.Validate()
    18  
    19  	baseComponents := fx.Options(
    20  		fx.Supply(*cfg),
    21  		fx.Error(cfgErr),
    22  		fx.Provide(Key),
    23  		fx.Provide(id),
    24  		fx.Provide(peerStore),
    25  		fx.Provide(connectionManager),
    26  		fx.Provide(connectionGater),
    27  		fx.Provide(host),
    28  		fx.Provide(routedHost),
    29  		fx.Provide(pubSub),
    30  		fx.Provide(dataExchange),
    31  		fx.Provide(ipld.NewBlockservice),
    32  		fx.Provide(peerRouting),
    33  		fx.Provide(contentRouting),
    34  		fx.Provide(addrsFactory(cfg.AnnounceAddresses, cfg.NoAnnounceAddresses)),
    35  		fx.Provide(metrics.NewBandwidthCounter),
    36  		fx.Provide(newModule),
    37  		fx.Invoke(Listen(cfg.ListenAddresses)),
    38  		fx.Provide(resourceManager),
    39  		fx.Provide(resourceManagerOpt(allowList)),
    40  	)
    41  
    42  	switch tp {
    43  	case node.Full, node.Bridge:
    44  		return fx.Module(
    45  			"p2p",
    46  			baseComponents,
    47  			fx.Provide(blockstoreFromEDSStore),
    48  			fx.Provide(infiniteResources),
    49  		)
    50  	case node.Light:
    51  		return fx.Module(
    52  			"p2p",
    53  			baseComponents,
    54  			fx.Provide(blockstoreFromDatastore),
    55  			fx.Provide(autoscaleResources),
    56  		)
    57  	default:
    58  		panic("invalid node type")
    59  	}
    60  }