- Replace TODO comment with detailed usage instructions
- Add step-by-step guide for local monitoring setup
- Include port information and service URLs
- Explain host.docker.internal configuration"
Grafana dashboards now use the "job" default label instead of "scrape_location"
custom label to differentiate between beacon and validator metrics.
The prometheus config files are updated to use the expected job name.
Putting the entrypoint script in `/prometheus` caused problems with updating the docker image as the entrypoint was written to the volume when it was first created and then wouldn't be overwritten by future images. Moving the entrypoint script into a non-mounted location avoids this problem.
I also added a VOLUME line to make it clear to anyone reading the dockerfile that `/prometheus` is intended to be a mounted volume, which may also help some tools auto-discover volumes and I think docker may even automatically create a volume when the image is run (not sure on the last). Generally speaking, I believe it is a good practice to flag intended mount points in the Dockerfile.
Note: Things will work without this change, but if the entrypoint.sh file ever changes in a future image users will have a bad time when updating to the new image from an old one so ideally this should happen sooner rather than later (ideally before a lot of people start using this published image).
* exposing liveness endpoint from beacon node
* Added test for the liveness endpoint
* update description of test
* Correct computing end slot for an epoch
* Added Doppelganger service which polls the beacon nodes liveness endpoint (WIP)
* detect doppelganger based on data from liveness endpoint
* simplify doppelganger registration
* Add doppelganger guide to signing of blocks
* Fix test by only creating an instance - which starts doppelganger proptection - only if it is enabled
* doppelganger added to signing attestation
* filter duties by safe keys
* minor renaming
* make epoch to miss attestation configurable
* a better way to setting default value for doppelgangerEpochsToCheck
* a better way to setting default value for doppelgangerEpochsToCheck also in tests
* Move the doppelganger protection into the validatorStore methods
* Adding a test to confirm validator is shutdown in case of a doppelganger detection
* Added test for when doppelganger is on but no duplicate live keys
* Fix type errors in test after merging master
* Testing that siging block proposer is only allowed after doppelganger period has elapsed
* Testing that attesting is only allowed after doppelganger period has elapsed
* Fix type errros in tests
* Fix lint
* Some renaming, removal of unused code etc
* Improvement to test
* compute timeout used in tests
* increase test timeout
* merged in master and fix conflicts
* minor formating
* Move getLiveness api from lodestar namespace to validator
* Minor style related fixes and reverting unnecessary changes in return statements
* Do not start doppelganger if not after first slot of genesis epoch
* adding proposer to seenBlockProposers on import of block by the beacon node
* de-deuplicate doppelganger options
* fix check-types errors
* do not detect activity of same vc as doppelganger
* Renamed ImportBlockModules variable back to PR. Will rename in another PR
* removing remainingEpochsToCheck and making enableDoppelganger and optional cli option
* fix lint errors
* Including block attesters in the liveness
* Undo renaming
* Return data directly. No need to resolve it in a promise
* fix lint
* fix integration test for the liveness endpoint
* Initial metrics to measure duration of doppelganger check
* Merged in master and fix merge conflicts
* Added doppelganger status to metrics
* Fixing more errors
* making sure generateAttestationData is setting the current slot correctly
* renamed metrics with a vc_ prefix to be inline with naming convention
* having custom bucket instead for vc_doppelganger_check_time_seconds
* Fix lint
* Attempting to expose the vc metrics endpoint also in local metrics setup. Still need to check on server if this works
* Adding epoch as a label to the doppelganger metrics
* Revert "Adding epoch as a label to the doppelganger metrics"
This reverts commit 993a4e81e6.
* Fix logging erros to console to show currentEpoch
* correct path in get liveness endpoint
* should now be observing attesters
* optimise observing block attesters
* fix prunning on finalized
* added some code re-use in tests
* on registering set status as unverified for metrics
* comment to explain the doppelganger status
* Added to metrics when doppelganger detected
* Update packages/lodestar/src/api/impl/validator/index.ts
Co-authored-by: Cayman <caymannava@gmail.com>
* Fix test by updating assertion in test to correspond to changes made to code
* fix lint errors
* Renamed enableDoppelganger => doppelgangerProtectionEnabled
* Fix lint
* fixing compile error after merging in unstable.
* Review PR
* Revert yarn-lock changes
* Review lodesar code
* removing use of uneeded Array.from
* No need to throw. Polutes the log in an expected scenario
* include doppelganger in filter of relevant duties
* Simplify pollLiveness
* Remove unnecessary diff
* Assert doppleganger safe
* Review PR
* replace validator.stop with validator.close since validator.stop has been removed
* Update test to reflect that validator.start has been removed
* Should fix ci: check-types, test, lint and e2e
* Move options to validator
* TODO processed. Removed check introduced in the doppelganger process
* Add doppleganger unit tests
* Validate remoteKeys API data
* Fix spelling
* Log that doppelganger is enabled
* Fetch pubkeys not known yet
* Add createAttesterDuty
* Log to info doppleganger process
* Add processShutdownCallback
* Disable full e2e test in lodestar for doppelganger
* Fix test types
* Use same epoch value in test as another value could be misleading
* Remove doppelgangerStatusMetrics
* Review PR
Co-authored-by: Cayman <caymannava@gmail.com>
Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>
Don't print double slash in version string
Dont add git-data.json to NPM releases
Write git-data.json only in from source docker build
Remove numCommits
Test git-data.json generation from within the test
Move comment
Revert "Dont add git-data.json to NPM releases"
This reverts commit 5fe2d388825f3e3a834058478071e8364b0d761c.
Simplify gitData and version guessing
Run cmd
* Support running local monitoring (grafana/prometheus) via docker on macos
* create seperate prometheus/grafana config files since host.docker.internal does not work crossplatform
* removed extra_hosts
* Rebased mpetrunic's PR #2637 with fixes on current master
* fixing the remove peer error
* refactoring to solve sync stuck issues on not anchored kind of errors
* read from db, validate wsCheckpoint
* backfill sequences in db to skip redoing previous backfill work
* syncrange improvs
* feedback cleanup, modular refac of sync function and metrics update
* cleanup
* Graphana Dashboard
* renaming sequences to ranges
* rebase cleanup
* shortneing comment
* using initialize from's return as the anchorState
* Fix metrics
* Add Aborted enum value in lodestar_backfill_sync_status
* Only use JSDoc comment notation for JSDocs
* Simplify nullish values to be only null
* WIP
* refactoring the backfill sync, with parent-child linkage verfication of last previous unverified finalized or wscheckpoint block
* cleanup and simplification of checkpoint/prev finalized checks
* initializing backfillwritten to avoid previous overwriting with a ahead value
* prev finalized or wscheckpoint lookup fix
* missing initializtion
* better assignment of prev fin or ws checkpoint
* don't verify sig on genesis block
* making the extractPreviousFinOrWsCheckpoint lighter
* simplfication of extractPreviousFinOrWsCheckpoint
* improving messaging
* metric for prev fin or ws block slot validation
* dashboard entry for prev fin or ws checkpoint slot for validation
* dashed line for prev fin or ws slot for better clairty
* comments cleanup and always backfill
Co-authored-by: dapplion <35266934+dapplion@users.noreply.github.com>
* state cache and checkpoint cache metrics across all entrypoints
* Reduce diff
* refac regen metrics based on the latest jobprocessor queue
* regen cache dashboard
* regen fn stats
* removing labels from the cache metrics
* additional state/checkpoint state cache add, size metrics
* grafana dashboard update as well as new metrics for state and statecheckpoint
* Review PR
Co-authored-by: Lion - dapplion <35266934+dapplion@users.noreply.github.com>
* Disable anonymous login in Grafana
* Don't expose API port by default
* Remove cli link in package.json
* Move NODE_OPTIONS to ENV to split beacon_node and validator limits
* Revert "Remove cli link in package.json"
This reverts commit 74c9b2ec9a.
* Buffer jobs in BLS queue + batch them
* Mark some gossip objects as batchable
* Chunkify batchable
* Guard against missing jobResult
* Add more comments and review
* Update BLS grafana charts
* Just assert error happens
* Fix chart equation
* Don't call metric.inc() with 0