Commit Graph

5 Commits

Author SHA1 Message Date
Nico Flaig
9335cc552b chore: disable rate limiting on local testnet node (#5728) 2023-07-04 09:52:47 -04:00
Nico Flaig
a4c93c1325 chore: fix local testnet dev scripts (#5719) 2023-06-29 10:20:26 -04:00
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
Cayman
b2d6a55d94 Rename CLI flags for v1 (#4457)
* Rename `rootDir` to `dataDir`

* Refactor initializeOptionsAndConfig

* Remove old peerstore migration

* Fix rootDir

* Rename `metrics.enabled` to `metrics`

* Rename `api.rest` to `rest`

* Rename `chain.defaultFeeRecipient` to `suggestedFeeRecipient`

* Rename `network.discv5.enabled` to `discv5`

* Set many network flags as hidden

* Fix rest rename

* Change rest options order

* Remove rest alias

* Rename `builder.enabled` to `builder`

* More suggestedFeeRecipient

* Hide most chain options

* Rename `eth1.enabled` to `eth1`

* Remove eth1.providerUrl

* Hide eth1.depositContractDeployBlock

* More eth1.enabled

* More rest.enabled

* More rest.namespace

* More rest.address

* More rest.port

* More suggestedFeeRecipient

* Hide some beacon options

* Overhaul wss options

* Fix dataDir capitalization

* Review network flags

* Update logFile options

* Update wss options

* Drop aliases

* Rename keymanager.enabled

* Rename importKeystoresPath

* Fix beacon-node types

Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>
2022-08-20 12:09:31 +00:00
Lion - dapplion
d61d898d0d Bump to new gossipsub (#3858)
* Bump to new gossipsub

* Fix test type errors

* Add getMeshPeers method

* Cleanup test nodes on success and error

* Add allowPublishToZeroPeers option

* Add allowPublishToZeroPeers to dev options

* Add scripts to run dev servers

* Bump gossipsub

* Bump gossipsub

* Expose gossip peer score stats

* bump gossipsub

* Dump gossipsub score params

* Bump lodestar

* Add behaviourPenaltyThreshold to gossip scoring params

* Switch to latest gossipsub update

* Fix cli unit test

* Fix unknownBlockSync e2e test

* Update latest gossipsub

* Fix e2e - network addr in use

* Use latest gossipsub 3efae56c9d39ff3a047a7e6c65fa32e5756bebde

* Use latest gossipsub 039af54c7bf47396c1be414d9fa33aa2e8cc2697

* Increase meshMessageDeliveriesWindow and gossipsubIWantFollowupMs

* Set gossipsubIWantFollowupMs and meshMessageDeliveriesWindow 12s

* Reset gossipsub metric behaviourPenalty per scrape

* Compute score using lodestar score and gossipsub score (#3875)

* Refactor PeerRpcScoreStore: add PeerScore class

* Aggregate lodestarScore, gossipsubScore to compute final score

* updateGossipsubScores util and unit test

* Populate PeerScore on updateGossipsubScore

* Fix peerManager e2e test

* Fix test/sim/multiNodeSingleThread.test.ts

* Update latest gossipsub

* lodestar_gossip_mesh_peers_by_client_count metric

* Log sent peers in gossipsub.publishObject()

* Fix lodestar_gossip_mesh_peers_by_client_count metric

* Fix lodestar_gossip_mesh_peers_by_client_count metric

* Add asyncValidation=true option to gossipsub

* Fix sha256 usage

* Go with libp2p-gossipsub 0.14.0

Co-authored-by: Tuyen Nguyen <vutuyen2636@gmail.com>
Co-authored-by: Cayman <caymannava@gmail.com>
2022-04-05 17:32:11 +07:00