Skip to content

Commit 35cd5c5

Browse files
committed
Fix REST handlers.
1 parent 67a4b8a commit 35cd5c5

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

beacon_chain/rpc/rest_node_api.nim

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,14 +260,17 @@ proc installNodeApiHandlers*(router: var RestRouter, node: BeaconNode) =
260260
# https://ethereum.github.io/beacon-APIs/#/Node/getSyncingStatus
261261
router.api2(MethodGet, "/eth/v1/node/syncing") do () -> RestApiResponse:
262262
let
263-
wallSlot = node.currentSlot
264263
headSlot = node.dag.head.slot
265-
distance = wallSlot - headSlot
264+
distance =
265+
if isNil(node.syncOverseer):
266+
0'u64
267+
else:
268+
node.syncOverseer.syncDistance()
266269
isSyncing =
267-
if isNil(node.syncManager):
270+
if isNil(node.syncOverseer):
268271
false
269272
else:
270-
node.syncManager.inProgress
273+
node.syncOverseer.syncInProgress()
271274
isOptimistic =
272275
if node.currentSlot().epoch() >= node.dag.cfg.BELLATRIX_FORK_EPOCH:
273276
Opt.some(not node.dag.head.executionValid)
@@ -290,9 +293,13 @@ proc installNodeApiHandlers*(router: var RestRouter, node: BeaconNode) =
290293
router.api2(MethodGet, "/eth/v1/node/health") do () -> RestApiResponse:
291294
# TODO: Add ability to detect node's issues and return 503 error according
292295
# to specification.
296+
if isNil(node.syncOverseer):
297+
return RestApiResponse.response(Http200)
298+
293299
let status =
294-
if node.syncManager.inProgress:
300+
if node.syncOverseer.syncInProgress():
295301
Http206
296302
else:
297303
Http200
304+
298305
RestApiResponse.response(status)

beacon_chain/sync/sync_overseer2.nim

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2693,12 +2693,26 @@ proc stop*(overseer: SyncOverseerRef2) {.async: (raises: []).} =
26932693
if not(overseer.loopFuture.finished()):
26942694
await cancelAndWait(overseer.loopFuture)
26952695

2696-
proc syncInProgress*(overseer: SyncOverseerRef2): bool =
2696+
proc syncDistance*(overseer: SyncOverseerRef2): uint64 =
26972697
let
2698-
dag = overseer.consensusManager.dag
26992698
wallSlot = overseer.beaconClock.currentSlot()
2700-
headSlot = dag.head.slot
2701-
(wallSlot - headSlot) > 1'u64
2699+
dag = overseer.consensusManager.dag
2700+
syncedSlot =
2701+
if overseer.lastSeenHead.isNone():
2702+
wallSlot
2703+
else:
2704+
overseer.lastSeenHead.get.slot
2705+
2706+
if syncedSlot < dag.head.slot:
2707+
return 0'u64
2708+
2709+
if (syncedSlot - dag.head.slot) < SyncDeviationSlotsCount:
2710+
0'u64
2711+
else:
2712+
syncedSlot - dag.head.slot
2713+
2714+
proc syncInProgress*(overseer: SyncOverseerRef2): bool =
2715+
overseer.syncDistance() > 0
27022716

27032717
proc syncStatusMessage*(
27042718
overseer: SyncOverseerRef2,

0 commit comments

Comments
 (0)