* Add support for the CI env for e2e tests
* Update the port number e2e tests node
* Update the script
* Update the e2e script
* Stop the e2e tests env
* Update the script to stop env
* Add a timeout for port
* Redirect nohup output
* Redirect nohup output
* Update the process signal
* Move the run bash script to a file
* Remove the unwanted wait time
* Update the variaable name
* Update the script name
* Update the test env
* Update the e2e env to start from capella
* Increase the genesis delay
* Pass three epoch to fix the sync comittee availability
* Increase the wait epoch
* Wait for the 3rd epoch
* Increase timeout
* Add lodestar preset value
* Fix env variable
* Set the forks in incremental sequence
* Increase the timeout
* Move wait logic to test file
* Fix the geth version
* Allow to pass custom config to support custom network
* Fix lint error
* Add minimal preset for the e2e tests
* Update known authors
* Generate changelog based on conventional commits
* Rename generate changelog script
* Update PR title checker types based on predefined sections
* Convert generate changelog script to ES module
* Update order of sections
* Update Changelog heading to h1
* Print out ignored commits with reason
* Fix grafana dashboard lint script
- Nested dashboard panels are now recursively checked
- Panel datasource must point to the datasource variable
* Run scripts/validate-grafana-dashboards.sh script
* 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>
* Adopt gitflow for Lodestar releases
* Apply feedback
* Replace most mentions of `master` with `unstable`
* Tweak various parts of RELEASE.md
* Update CI
* Tweak dev release version handling
* Tweak workflow names
* Replace `nightly` with `dev`
* Replace `beta` with `rc`
* Fix publish for rc release and stable release only
* Remove stray "beta"
* Add code examples to RELEASE.md
* Clarify publish process
* Collapse 'Alternatives considered' section
* Move 'Details' header up one level
* Clarify publishing a release
* Tweak headings
* Fix hotfix section
* More clarifications
* Update examples in RELEASE.md
* More clarifications
* Fix formatting
* Run RELEASE.md through grammarly
* Change script name to release:publish
* Add create_rc script
* Add workflow_dispatch for create RC
* Add placeholder for other scripts
* Update RELEASE.md
* Update release create rc script
* Update script instructions
* create_rc script must not be run in CI
* Update release flow
* Add publish-rc workflow
* Apply suggestions from code review
Co-authored-by: Afr Schoe <58883403+q9f@users.noreply.github.com>
Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: Afr Schoe <58883403+q9f@users.noreply.github.com>
* Checkout full history during release (#3539)
* Fix release workflow
* Add git tag commands as example
* Checkout full depth for changelog
Co-authored-by: Cayman <caymannava@gmail.com>
This PR uses `node:*` imports for `fs` and `path` modules as specified in [issue 3664](https://github.com/ChainSafe/lodestar/issues/3664).
Note that using `node:*` imports requires us to whitelist `node:fs` in the `import/core-modules` `eslint` setting. If we do not whitelist it then our linter fails because it can not identify `node:fs` as a node module.
* github: ensure release script docker job depends on npm job
* scripts: trimp v character from version tag
* github: docker push requires exactly one argument
* Update release.yml
Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
* scripts: provide means to check versions in npm registry
* github: allow the release workflow to verify npm version availability
* github: await release for up to 15 minutes