MCPcopy Create free account
hub / github.com/DOSNetwork/core / CheckSync

Function CheckSync

onchain/eth_helpers.go:221–257  ·  view source on GitHub ↗

CheckSync is a utility function to check sync state

(ctx context.Context, cs chan *ethclient.Client)

Source from the content-addressed store, hash-verified

219
220//CheckSync is a utility function to check sync state
221func CheckSync(ctx context.Context, cs chan *ethclient.Client) chan *ethclient.Client {
222 out := make(chan *ethclient.Client)
223 var wg sync.WaitGroup
224 size := 0
225
226 for client := range cs {
227 size++
228 go func(client *ethclient.Client) {
229 defer wg.Done()
230 var blk *types.Block
231 var progress *ethereum.SyncProgress
232 var err error
233 if blk, err = client.BlockByNumber(ctx, nil); err != nil {
234 fmt.Println("CheckSync error ", err)
235 if err.Error() == light.ErrNoPeers.Error() {
236 fmt.Println("CheckSync error ErrNoPeers ", err)
237 }
238 return
239 }
240 highestBlkN := blk.NumberU64()
241
242 fmt.Println("highestBlkN ", highestBlkN)
243 if progress, err = client.SyncProgress(ctx); err != nil {
244 fmt.Println("SyncProgress err ", err)
245 return
246 }
247 fmt.Println("progress ", progress)
248 }(client)
249 }
250 wg.Add(size)
251 // Wait for all the reads to complete
252 go func() {
253 wg.Wait()
254 close(out)
255 }()
256 return out
257}
258
259// GetCurrentBlock returns a block number of latest known header from the
260// current canonical chain.

Callers

nothing calls this directly

Calls 2

ErrorMethod · 0.65
AddMethod · 0.45

Tested by

no test coverage detected