mirror of
https://github.com/ChainSafe/lodestar.git
synced 2026-05-02 03:01:08 -04:00
* rename to LightClientBootstrap to keep consistent with spec * updating types in preparation to start serving LightClientBootstrap via p2p resp/req * should be able to serve LightClientBootstrap via p2p * aligning types in preparation to be able to serve light client update via p2p * added a comment to take care of error handling for light client bootstrap * fix type error * handle error when lighclientBootstrap cannot be returned * Add ability to serve LightclientUpdate via p2p req/resp * Aligning types in prep for being able to serve LightClientFinalityUpdate via p2p resp/req * Added ability to serve LightClientFinalityUpdate via p2p req/resp * Serving lightclientFinalityUpdate via p2p * fix check types * fix failing lightclient.test.ts test * fix check-types check * fix check-types check * initial changes to have light_client_optimistic_update and light_client_optimistic_update available via the gossip domain * adding placeholder for validating lightclient's gossip messages * Added some validation to LightClientFinalityUpdate * added more gossip validation * fix check-types errors * temp disable test * Unit tests should now be passing * explicitly binding this to function passed to the chain event emitter handler * removed TODO comment after processing it * undo removal of space * LightClientOptimisticUpdate has no request * update to return corrosponding ssz type to lightclient gossip type * turn runtime error to compile time error * extend gossipsub.test to include tests for LightClientOptimisticUpdate and LightClientFinalityUpdate * Fix build failure * Also unsubscribe lightclient's gossip global topics * Logging topics for debugging in CI * debugging in CI * do not override zeroProtoBlock * removing cli debugging changes * run the network.test within altair * split lightclient gossip validation to seperate files * adding tests for validateLightClientOptimisticUpdate * undo unintended changes * Added Light Client Finality Update validation * corrected type name to be aligned with spec * extend onRequest with light client * fix test * properly setting signatureSlot * wrapped getting onLightclientUpdate via res/req in a try catch * Align light client objects naming with spec * remove comment * process some TODO * Add ability to request lightClientBootstrap via Req/Resp * added ability to request light client optimistic and finality update via req/res * Add ability to request light client update message via Req/Res channel * renabled skipped test * process LightClientUpdate via SSE also * undo unintended committed changes * remove unnecessary promise resolve * remove unnecessary promise resolve * temp undo commitcd4b595andc5ca43c* Revert "temp undo commitcd4b595and c5ca43c" This reverts commitb44db38444. * yield LightClientUpdate instead of LightClientUpdates * removed unused type * fix compilation in tests * improve error handling for getOptimisticUpdate * improve error handling for getFinalityUpdate * avoid voiding promise. Fix lint errors * Switch to debug level to prevent unnecessary PublishError.InsufficientPeers * Adding back promises to api client functions * resolved confilict/merged in unstable * Move setting of latestForwardedFinalitySlot and latestForwardedOptimisticSlot from validation logic * Use correct version for Res/Req * Use correct version for Res/Req * use one event stream * removed redundant async * Fix tests due to removal of async * Fixed test * Do not forward if local light client updates do not exist yet * fix lightClientOptimisticUpdate.test and wait 1/3 slot before publishing * Added tests for scenarios where validation does not fail for validateLightClientFinalityUpdate and validateLightClientOptimisticUpdate * Remove redefinition of Root. Removed utility functions in test * Passing in syncAggregate and signatureSlot instead of whole block * Make getUpdates more flexible * use strong equality check * do not publish events if sync committee is below MIN_SYNC_COMMITTEE_PARTICIPANTS * doGetUpdate => getUpdate. private => public * Allow gaps in light client updates instead of throwing * Address pr comments * Remove light client latest cached slot * Revert "Remove light client latest cached slot" This reverts commit50fe56f4ea. * Use simple for loop * Remove trailing slash from lightclient apis * Fix finality update gossip validation * fixing failing tests * invalid with not matching local when no local update yet * Limit REST getUpdates response to MAX_REQUEST_LIGHT_CLIENT_UPDATES * unbind listeners on close * removed the need to bind to this * fix lint * wait one third before publishing lc updates in on onSyncAggregate * Revert "wait one third before publishing lc updates in on onSyncAggregate" This reverts commit003a2335f4. * update waiting logic before publishing lc update to network * making use of abort signal when sleeping * only publish lc updates if node has atleast one sync committee member * Remove stray comment * Use strict equals * More consistent naming * Reorg reqresp methods * Add light client server error * Fix seconds to miliseconds typo * Remove need for -1 default * Remove unnecessary arrow function * Allow to publish to zero peers * Use spec name LightClientUpdatesByRange * Clarify FINALITY_UPDATE_RECEIVED_TOO_EARLY math * De-duplicate updateReceivedToEarly condition * Update emit comments * Fix typo in updateReceivedTooEarly Co-authored-by: Cayman <caymannava@gmail.com> Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>