Files
lodestar/scripts
dadepo 03034ff77c Serve Lightclient related data via p2p (#4365)
* 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>
2022-10-28 19:08:12 +00:00
..
2020-10-30 11:09:05 +01:00
2022-07-17 10:19:29 -05:00