@@ -3,6 +3,7 @@ package service
3
3
import (
4
4
"context"
5
5
"errors"
6
+ "fmt"
6
7
"sync/atomic"
7
8
"time"
8
9
@@ -27,14 +28,15 @@ type BeaconClient interface {
27
28
client.BeaconBlockHeadersProvider
28
29
}
29
30
30
- func NewService (l log.Logger , cfg flags.ArchiverConfig , dataStoreClient storage.DataStore , client BeaconClient , m metrics.Metricer ) (* ArchiverService , error ) {
31
+ func NewService (l log.Logger , cfg flags.ArchiverConfig , api * API , dataStoreClient storage.DataStore , client BeaconClient , m metrics.Metricer ) (* ArchiverService , error ) {
31
32
return & ArchiverService {
32
33
log : l ,
33
34
cfg : cfg ,
34
35
dataStoreClient : dataStoreClient ,
35
36
metrics : m ,
36
37
stopCh : make (chan struct {}),
37
38
beaconClient : client ,
39
+ api : api ,
38
40
}, nil
39
41
}
40
42
@@ -47,6 +49,7 @@ type ArchiverService struct {
47
49
metricsServer * httputil.HTTPServer
48
50
cfg flags.ArchiverConfig
49
51
metrics metrics.Metricer
52
+ api * API
50
53
}
51
54
52
55
func (a * ArchiverService ) Start (ctx context.Context ) error {
@@ -61,6 +64,13 @@ func (a *ArchiverService) Start(ctx context.Context) error {
61
64
a .metricsServer = srv
62
65
}
63
66
67
+ srv , err := httputil .StartHTTPServer (a .cfg .ListenAddr , a .api .router )
68
+ if err != nil {
69
+ return fmt .Errorf ("failed to start Archiver API server: %w" , err )
70
+ }
71
+
72
+ a .log .Info ("Archiver API server started" , "address" , srv .Addr ().String ())
73
+
64
74
currentBlob , _ , err := a .persistBlobsForBlockToS3 (ctx , "head" )
65
75
if err != nil {
66
76
a .log .Error ("failed to seed archiver with initial block" , "err" , err )
0 commit comments