Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System Slot feature #56

Open
protolambda opened this issue Aug 21, 2020 · 1 comment
Open

System Slot feature #56

protolambda opened this issue Aug 21, 2020 · 1 comment
Labels
enhancement New feature or request

Comments

@protolambda
Copy link
Collaborator

With the recent medalla clock chaos, it became apparent how important the time of the node is. And since this is no secret to the outside world, why not share it on eth2stats to raise awareness, and alert users?

Possible design:

  • Client sends current timestamp (timestamp is put in the message after calling api methods etc.)
  • Include system slot in the /clients response data. 0 = not available
  • Server substracts genesis time, then divides by slot time, to calculate the "system slot" (float64)
  • Dashboard adds some visual marker on an entry if the system time is different than the eth2stats server time (do not compare to browser time, that adds even more latency). Alert users when nodes are having a bad time (no pun intended)!
    • Show the color based on difference with expected time. d = abs(server_time - client_time), d < 0.4: green, 0.4<=d<1.0: yellow, 1.0<=d<3.0: orange, d>=3.0: red.
  • Dashboard shows a warning at the top if the median (bucket by second) time of all clients is too different from the server, as sanity check. The server itself may have an inaccurate time.
  • Dashboard shows a warning at the top if the server time itself is inaccurate compared to browser (user) time.

Questions:

  • Account for client-server latency: (maybe track server-client latency somehow, and adjust times with it). It's nice when all times can be compared better.
  • How to deploy the feature on eth2stats.io main site, and which dashboard changes to make, to keep it compatible and not shake the current setup too much.

Related cleanup:

  • clients are all sending genesis time over and over again (???)
  • server needs to be configured with genesis time, timestamp option would be nice (more common in client api formats)
  • no need to track genesis time per client (head root already signifies the difference in beacon state, genesis time is included in it)

I'm happy to implement all this if others like the idea, and agree on above design. Feedback welcome.

@protolambda protolambda added the enhancement New feature or request label Aug 21, 2020
@tzapu
Copy link
Contributor

tzapu commented Aug 26, 2020

super cool initiative @protolambda
if you can/want to host an official medalla server, what i would do is:

  • set up the new server and add it to the current dashboard
  • add it to wizard and encourage people to migrate to the new server (possibly migrating dns as well once things are settled)
  • merge your client branch for dashboard customization
  • serve that from github pages and migrate eth2stats.io to it

this will minimize any dependencies to the minimum on consensys/alethio servers

for individual client warnings, maybe the ! warning icon can be repurposed as a generic warning and can display specifics in the tooltip

i like this very much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants