-
Notifications
You must be signed in to change notification settings - Fork 261
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
VC: Remote BN clock offset monitoring. #4846
Conversation
|
@@ -9,6 +9,9 @@ import common | |||
|
|||
const | |||
ServiceName = "fallback_service" | |||
WARNING_TIME_OFFSET = TimeOffset.init(2.seconds) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
per comments elsewhere, the vc stops working if offset gets near MAXIMUM_GOSSIP_CLOCK_DISPARITY
, so half or 2/3 of that is a reasonable warning level already
I want to describe the problem in example, here is the case BN is running in local network on Linux device, while VC is running on Windows. I will show you 3 attestations timings. Please ignore Windows log timestamps because this timestamps in UTC+2 timezone with daylight saving, so right now it actually has UTC+3. Both PCs are synced with single NTP server which is also placed in local network. I dont know the reason but Windows system always has 300ms offset and all my attempts to fix it failed. Windows running VC
Linux running BN
First i want to explain some data in Windows logs:
Now we should check BN side :
So how we get such big delay on BN side while VC thinks that delay should be not bigger than So formula for BN delay would be To prove my calculations i will add one more attestation Windows VC
Linux BN
TIME_OFFSET = 312ms142us853ns Windows VC
Linux BN
TIME_OFFSET = 325ms451us603ns There of course present some error ~ 10-20ms, but it because we measure RTT for time-monitoring call and not for attestation publish request call, which is also fast but could provide another RTT value. The core of the problem here is of course Windows time handling or some weird Windows behavior which could not properly correct their clocks according to NTP server and i'm not sure why we should start warn users when offset in time is bigger than |
nagle maybe?
What happens here is that if a clock is off by more than There is nuance here:
So, we have several paths forward:
|
Remove delays. Fix logging statement issues. Change update from epoch to slot.
Fix updateStatus().
Fix issues when BN do not support Nimbus Extensions. Rename metric name and type change.
No description provided.