@lodestar/beacon-node 1.50.0-dev.af3e3a6cff → 1.50.0-dev.ba0411b482

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/index.js +13 -0
  3. package/lib/api/impl/beacon/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/state/index.js +23 -3
  6. package/lib/api/impl/beacon/state/index.js.map +1 -1
  7. package/lib/api/impl/debug/index.d.ts.map +1 -1
  8. package/lib/api/impl/debug/index.js +26 -18
  9. package/lib/api/impl/debug/index.js.map +1 -1
  10. package/lib/api/impl/validator/index.d.ts +1 -0
  11. package/lib/api/impl/validator/index.d.ts.map +1 -1
  12. package/lib/api/impl/validator/index.js +23 -1
  13. package/lib/api/impl/validator/index.js.map +1 -1
  14. package/lib/chain/chain.d.ts +2 -0
  15. package/lib/chain/chain.d.ts.map +1 -1
  16. package/lib/chain/chain.js +35 -1
  17. package/lib/chain/chain.js.map +1 -1
  18. package/lib/chain/emitter.d.ts +7 -1
  19. package/lib/chain/emitter.d.ts.map +1 -1
  20. package/lib/chain/emitter.js +5 -0
  21. package/lib/chain/emitter.js.map +1 -1
  22. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  23. package/lib/chain/forkChoice/index.js +2 -0
  24. package/lib/chain/forkChoice/index.js.map +1 -1
  25. package/lib/chain/interface.d.ts +1 -0
  26. package/lib/chain/interface.d.ts.map +1 -1
  27. package/lib/chain/opPools/proposerPreferencesPool.d.ts +4 -4
  28. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  29. package/lib/chain/opPools/proposerPreferencesPool.js +14 -11
  30. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  31. package/lib/chain/options.d.ts +1 -0
  32. package/lib/chain/options.d.ts.map +1 -1
  33. package/lib/sync/range/chain.d.ts.map +1 -1
  34. package/lib/sync/range/chain.js +5 -1
  35. package/lib/sync/range/chain.js.map +1 -1
  36. package/package.json +16 -16
  37. package/src/api/impl/beacon/index.ts +15 -0
  38. package/src/api/impl/beacon/state/index.ts +31 -3
  39. package/src/api/impl/debug/index.ts +28 -19
  40. package/src/api/impl/validator/index.ts +24 -2
  41. package/src/chain/chain.ts +49 -1
  42. package/src/chain/emitter.ts +7 -1
  43. package/src/chain/forkChoice/index.ts +2 -0
  44. package/src/chain/interface.ts +1 -0
  45. package/src/chain/opPools/proposerPreferencesPool.ts +14 -10
  46. package/src/chain/options.ts +1 -1
  47. package/src/sync/range/chain.ts +6 -1
@@ -225,6 +225,9 @@ export class SyncChain {
225
225
  Math.floor((localFinalizedEpoch - this.lastEpochWithProcessBlocks) / EPOCHS_PER_BATCH) * EPOCHS_PER_BATCH;
226
226
  this.advanceChain(lastEpochWithProcessBlocksAligned);
227
227
 
228
+ // stopSyncing() cleared the retry timer, but peers can still be in rate limit backoff
229
+ this.scheduleRateLimitBackoffRetry();
230
+
228
231
  // Potentially download new batches and process pending
229
232
  this.triggerBatchDownloader();
230
233
  this.triggerBatchProcessor();
@@ -417,8 +420,10 @@ export class SyncChain {
417
420
  this.rateLimitBackoffTimeout = setTimeout(
418
421
  () => {
419
422
  this.rateLimitBackoffTimeout = undefined;
420
- this.triggerBatchDownloader();
423
+ // Must run before the downloader, it drops expired peers without triggering a download. If it ran
424
+ // after, a backoff expiring in between would leave the peer idle with no retry scheduled.
421
425
  this.scheduleRateLimitBackoffRetry();
426
+ this.triggerBatchDownloader();
422
427
  },
423
428
  Math.max(0, retryAt - now)
424
429
  );