* 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 commit cd4b595 and c5ca43c
* Revert "temp undo commit cd4b595 and c5ca43c"
This reverts commit b44db38444.
* 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 commit 50fe56f4ea.
* 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 commit 003a2335f4.
* 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>