You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
epoch/finder: use GetEpochInfo instead of GetSlot for authoritative epoch
Replace the slot-based epoch approximation with GetEpochInfo which
returns the authoritative epoch directly from the RPC. This fixes an
issue where a stale GetSlot(finalized) response caused the epoch finder
to return the wrong epoch for ~51 minutes after an epoch boundary,
leading to Account Not Found alerts on all circuits.
For recent targets (within the current epoch), the authoritative epoch
from GetEpochInfo is returned directly. For targets in prior epochs,
slot math is used as before but with the authoritative slot from
GetEpochInfo.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,8 @@ All notable changes to this project will be documented in this file.
8
8
9
9
### Changes
10
10
11
+
- Tools
12
+
- Fix epoch finder returning wrong epoch for ~51 minutes after epoch boundaries by using `GetEpochInfo` (authoritative epoch) instead of approximating from `GetSlot` which was vulnerable to stale finalized slot responses ([#3227](https://github.com/malbeclabs/doublezero/pull/3227))
11
13
- Activator
12
14
- Suppress noisy program log output from race conditions caused by dual event processing (websocket + snapshot poll). The SDK's new `execute_transaction_quiet` returns a `SimulationError` with program logs; the activator verifies suspected races by re-fetching user state before deciding whether to print logs ([#3197](https://github.com/malbeclabs/doublezero/pull/3197))
0 commit comments