@@ -99,6 +99,13 @@ func (hExService *HeaderExchangeService) writeToHeaderStoreAndBroadcast(ctx cont
9999 hExService .logger .Error ("failed to write block header to header store" , "error" , err )
100100 }
101101
102+ // For genesis header, start the syncer
103+ if signedHeader .Height () == hExService .genesis .InitialHeight {
104+ if err := hExService .headerStore .Init (ctx , signedHeader ); err != nil {
105+ hExService .logger .Error ("failed to start syncer after initializing header store" , "error" , err )
106+ }
107+ }
108+
102109 // Broadcast for subscribers
103110 if err := hExService .sub .Broadcast (ctx , signedHeader ); err != nil {
104111 hExService .logger .Error ("failed to broadcast block header" , "error" , err )
@@ -138,12 +145,6 @@ func (hExService *HeaderExchangeService) Start() error {
138145 return fmt .Errorf ("error while starting exchange: %w" , err )
139146 }
140147
141- // for single aggregator configuration, syncer is not needed
142- // TODO (ganesh): design syncer flow for multiple aggregator scenario
143- if hExService .conf .Aggregator {
144- return nil
145- }
146-
147148 if hExService .syncer , err = newSyncer (hExService .ex , hExService .headerStore , hExService .sub , goheadersync .WithBlockTime (hExService .conf .BlockTime )); err != nil {
148149 return err
149150 }
@@ -174,8 +175,8 @@ func (hExService *HeaderExchangeService) Start() error {
174175 // Try fetching the genesis header if available, otherwise fallback to signed headers
175176 if trustedHeader , err = hExService .ex .GetByHeight (hExService .ctx , uint64 (hExService .genesis .InitialHeight )); err != nil {
176177 // Full/light nodes have to wait for aggregator to publish the genesis header
177- // if the aggregator is passed as seed while starting the fullnode
178- return fmt . Errorf ("failed to fetch the genesis header: %w " , err )
178+ // proposing aggregator can init the store and start the syncer when the first header is published
179+ hExService . logger . Info ("failed to fetch the genesis header" , "error " , err )
179180 }
180181 }
181182 }
0 commit comments