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

Function New

ethstorage/node/node.go:75–98  ·  view source on GitHub ↗
(ctx context.Context, cfg *Config, lg log.Logger, appVersion string, m metrics.Metricer)

Source from the content-addressed store, hash-verified

73}
74
75func New(ctx context.Context, cfg *Config, lg log.Logger, appVersion string, m metrics.Metricer) (*EsNode, error) {
76 if err := cfg.Check(); err != nil {
77 return nil, err
78 }
79
80 n := &EsNode{
81 lg: lg,
82 appVersion: appVersion,
83 metrics: m,
84 }
85 // not a context leak, gossipsub is closed with a context.
86 n.resourcesCtx, n.resourcesClose = context.WithCancel(context.Background())
87 n.feed = new(event.Feed)
88 err := n.init(ctx, cfg)
89 if err != nil {
90 n.lg.Error("Error initializing the rollup node", "err", err)
91 // ensure we always close the node resources if we fail to initialize the node.
92 if closeErr := n.Close(); closeErr != nil {
93 return nil, multierror.Append(err, closeErr)
94 }
95 return nil, err
96 }
97 return n, nil
98}
99
100func (n *EsNode) init(ctx context.Context, cfg *Config) error {
101 if err := n.initL1(ctx, cfg); err != nil {

Callers 1

EsNodeMainFunction · 0.92

Calls 4

initMethod · 0.95
CloseMethod · 0.95
CheckMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected