MCPcopy Create free account
hub / github.com/ethstorage/es-node / NewNodeP2P

Function NewNodeP2P

ethstorage/p2p/node.go:50–67  ·  view source on GitHub ↗

NewNodeP2P creates a new p2p node, and returns a reference to it. If the p2p is disabled, it returns nil. If metrics are configured, a bandwidth monitor will be spawned in a goroutine.

(resourcesCtx context.Context, chainID *big.Int, lg log.Logger, setup SetupP2P,
	storageManager *ethstorage.StorageManager, db ethdb.Database, m metrics.Metricer, feed *event.Feed)

Source from the content-addressed store, hash-verified

48// NewNodeP2P creates a new p2p node, and returns a reference to it. If the p2p is disabled, it returns nil.
49// If metrics are configured, a bandwidth monitor will be spawned in a goroutine.
50func NewNodeP2P(resourcesCtx context.Context, chainID *big.Int, lg log.Logger, setup SetupP2P,
51 storageManager *ethstorage.StorageManager, db ethdb.Database, m metrics.Metricer, feed *event.Feed) (*NodeP2P, error) {
52 if setup == nil {
53 return nil, errors.New("p2p node cannot be created without setup")
54 }
55 var n NodeP2P
56 if err := n.init(resourcesCtx, chainID, lg, setup, storageManager, db, m, feed); err != nil {
57 closeErr := n.Close()
58 if closeErr != nil {
59 lg.Error("Failed to close p2p after starting with err", "closeErr", closeErr, "err", err)
60 }
61 return nil, err
62 }
63 if n.host == nil {
64 return nil, nil
65 }
66 return &n, nil
67}
68
69func (n *NodeP2P) init(resourcesCtx context.Context, chainID *big.Int, lg log.Logger, setup SetupP2P,
70 storageManager *ethstorage.StorageManager, db ethdb.Database, m metrics.Metricer, feed *event.Feed) error {

Callers 1

initP2PMethod · 0.92

Calls 3

initMethod · 0.95
CloseMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected