Skip to content

Commit 5a29b50

Browse files
committed
Update for changed master base (since PR #3790)
1 parent 6702c05 commit 5a29b50

File tree

15 files changed

+206
-169
lines changed

15 files changed

+206
-169
lines changed

tools/syncer/helpers/sync_ticker.nim

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ type
4242
blkStagedBottom: BlockNumber
4343

4444
state: SyncState
45-
nBuddies: int
45+
nSyncPeers: int
46+
eta: chronos.Duration
4647

4748
TickerRef* = ref object of RootRef
4849
## Ticker descriptor object
@@ -65,10 +66,10 @@ proc updater(ctx: BeaconCtxRef): TickerStats =
6566
latest: ctx.chain.latestNumber,
6667
coupler: ctx.headersUnprocTotalBottom(),
6768
dangling: ctx.hdrCache.antecedent.number,
68-
top: ctx.subState.top,
69-
head: ctx.subState.head,
69+
top: ctx.subState.topNum,
70+
head: ctx.subState.headNum,
7071
target: ctx.hdrCache.latestConsHeadNumber,
71-
activeOk: ctx.pool.lastState != idle,
72+
activeOk: ctx.pool.syncState != idle,
7273

7374
nHdrStaged: ctx.headersStagedQueueLen(),
7475
hdrStagedTop: ctx.headersStagedQueueTopKey(),
@@ -82,8 +83,9 @@ proc updater(ctx: BeaconCtxRef): TickerStats =
8283
nBlkUnprocessed: ctx.blocksUnprocTotal(),
8384
nBlkUnprocFragm: ctx.blk.unprocessed.chunks,
8485

85-
state: ctx.pool.lastState,
86-
nBuddies: ctx.pool.nBuddies)
86+
state: ctx.pool.syncState,
87+
nSyncPeers: ctx.nSyncPeers(),
88+
eta: ctx.pool.syncEta.avg)
8789

8890
proc tickerLogger(t: TickerRef; ctx: BeaconCtxRef) =
8991
let
@@ -96,37 +98,35 @@ proc tickerLogger(t: TickerRef; ctx: BeaconCtxRef) =
9698
if data != t.lastStats or
9799
tickerLogSuppressMax < (now - t.visited):
98100
let
99-
B = if data.base == data.latest: "L" else: data.base.bnStr
100-
L = if data.latest == data.coupler: "C" else: data.latest.bnStr
101-
I = if data.top == 0: "n/a" else : data.top.bnStr
101+
B = if data.base == data.latest: "L" else: $data.base
102+
L = if data.latest == data.coupler: "C" else: $data.latest
103+
I = if data.top == 0: "n/a" else : $data.top
102104
C = if data.coupler == data.dangling: "D"
103-
elif data.coupler < high(int64).uint64: data.coupler.bnStr
105+
elif data.coupler < high(int64).uint64: $data.coupler
104106
else: "n/a"
105-
D = if data.dangling == data.head: "H" else: data.dangling.bnStr
107+
D = if data.dangling == data.head: "H" else: $data.dangling
106108
H = if data.head == data.target: "T"
107-
elif data.activeOk: data.head.bnStr
109+
elif data.activeOk: $data.head
108110
else: "?" & $data.head
109-
T = if data.activeOk: data.target.bnStr else: "?" & $data.target
111+
T = if data.activeOk: $data.target else: "?" & $data.target
110112

111113
hS = if data.nHdrStaged == 0: "n/a"
112-
else: data.hdrStagedTop.bnStr & "[" & $data.nHdrStaged & "]"
114+
else: $data.hdrStagedTop & "[" & $data.nHdrStaged & "]"
113115
hU = if data.nHdrUnprocFragm == 0 and data.nHdrUnprocessed == 0: "n/a"
114116
elif data.hdrUnprocTop == 0:
115-
"(" & data.nHdrUnprocessed.toSI & "," &
116-
$data.nHdrUnprocFragm & ")"
117-
else: data.hdrUnprocTop.bnStr & "(" &
117+
"(" & data.nHdrUnprocessed.toSI & "," & $data.nHdrUnprocFragm & ")"
118+
else: $data.hdrUnprocTop & "(" &
118119
data.nHdrUnprocessed.toSI & "," & $data.nHdrUnprocFragm & ")"
119120
hQ = if hS == "n/a": hU
120121
elif hU == "n/a": hS
121122
else: hS & "<-" & hU
122123

123124
bS = if data.nBlkStaged == 0: "n/a"
124-
else: data.blkStagedBottom.bnStr & "[" & $data.nBlkStaged & "]"
125+
else: $data.blkStagedBottom & "[" & $data.nBlkStaged & "]"
125126
bU = if data.nBlkUnprocFragm == 0 and data.nBlkUnprocessed == 0: "n/a"
126127
elif data.blkUnprocBottom == high(BlockNumber):
127-
"(" & data.nBlkUnprocessed.toSI & "," &
128-
$data.nBlkUnprocFragm & ")"
129-
else: data.blkUnprocBottom.bnStr & "(" &
128+
"(" & data.nBlkUnprocessed.toSI & "," & $data.nBlkUnprocFragm & ")"
129+
else: $data.blkUnprocBottom & "(" &
130130
data.nBlkUnprocessed.toSI & "," & $data.nBlkUnprocFragm & ")"
131131
bQ = if bS == "n/a": bU
132132
elif bU == "n/a": bS
@@ -141,30 +141,27 @@ proc tickerLogger(t: TickerRef; ctx: BeaconCtxRef) =
141141
of blocksCancel: "x"
142142
of blocksFinish: "f"
143143

144-
nP = data.nBuddies
144+
nP = data.nSyncPeers
145145

146146
# With `int64`, there are more than 29*10^10 years range for seconds
147-
up = (now - t.started).seconds.uint64.toSI
148-
mem = getTotalMem().uint.toSI
147+
up = (now - t.started).toStr
148+
eta = data.eta.toStr
149149

150150
t.lastStats = data
151151
t.visited = now
152152

153153
case data.state
154154
of idle:
155-
debug "Sync state idle", up, nP, B, L,
156-
D, H, T, hQ, bQ,
157-
mem
155+
debug "Sync state idle", up, eta, nP, B, L,
156+
D, H, T
158157

159158
of headers, headersCancel, headersFinish:
160-
debug "Sync state headers", up, nP, st, B, L,
161-
C, D, H, T, hQ,
162-
mem
159+
debug "Sync state headers", up, eta, nP, st, B, L,
160+
C, D, H, T, hQ
163161

164162
of blocks, blocksCancel, blocksFinish:
165-
debug "Sync state blocks", up, nP, st, B, L,
166-
D, I, H, T, bQ,
167-
mem
163+
debug "Sync state blocks", up, eta, nP, st, B, L,
164+
D, I, H, T, bQ
168165

169166
# ------------------------------------------------------------------------------
170167
# Public function

tools/syncer/replay/replay_desc.nim

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import
1616
std/streams,
17+
pkg/chronos,
1718
../trace/trace_desc,
1819
./replay_reader/reader_desc
1920

@@ -22,8 +23,8 @@ export
2223
trace_desc
2324

2425
const
25-
ReplaySetupID* = 2 ## Phase 1 layout ID, prepare
26-
ReplayRunnerID* = 20 ## Phase 2 layout ID, full execution
26+
ReplaySetupID* = 2 ## Phase 1 layout ID, prepare
27+
ReplayRunnerID* = 20 ## Phase 2 layout ID, full execution
2728

2829
type
2930
ReplayStopIfFn* = proc(): bool {.gcsafe, raises: [].}
@@ -32,21 +33,23 @@ type
3233
ReplayEndUpFn* = proc() {.gcsafe, raises: [].}
3334
## Terminator control directive for runner/dispatcher
3435

35-
ReplayGetPeerFn* = GetPeerFn[BeaconCtxData,BeaconBuddyData]
36+
ReplayGetSyncPeerFn* = GetSyncPeerFn[BeaconCtxData,BeaconBuddyData]
3637
## Shortcut
3738

38-
ReplayGetPeersFn* = GetPeersFn[BeaconCtxData,BeaconBuddyData]
39+
ReplayNSyncPeersFn* = NSyncPeersFn[BeaconCtxData,BeaconBuddyData]
3940
## Shortcut
4041

4142
ReplayRef* = ref object of BeaconHandlersSyncRef
4243
## Overlay handlers extended by descriptor data for caching replay state
43-
ctx*: BeaconCtxRef ## Parent context
44-
captStrm*: Stream ## Input stream, capture file
45-
fakeImport*: bool ## No database import if `true`
46-
stopQuit*: bool ## Quit after replay
47-
backup*: BeaconHandlersRef ## Can restore previous handlers
48-
reader*: ReplayReaderRef ## Input records
49-
getPeerSave*: ReplayGetPeerFn ## Additionsl restore settings
44+
ctx*: BeaconCtxRef ## Parent context
45+
captStrm*: Stream ## Input stream, capture file
46+
fakeImport*: bool ## No database import if `true`
47+
failTimeout*: chronos.Duration ## Internal waiting loop timeout
48+
stopQuit*: bool ## Quit after replay
49+
backup*: BeaconHandlersRef ## Can restore previous handlers
50+
reader*: ReplayReaderRef ## Input records
51+
getSyncPeerSave*: ReplayGetSyncPeerFn ## Additionsl restore settings
52+
nSyncPeersSave*: ReplayNSyncPeersFn ## Ditto
5053

5154
ReplayPayloadRef* = ref object of RootRef
5255
## Decoded payload base record

tools/syncer/replay/replay_reader/reader_reclog.nim

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ proc addX(
4545
q.add base.frameID.value.idStr
4646
else:
4747
q.add "*"
48-
q.add $base.nPeers
48+
q.add $base.nSyncPeers
4949
q.add ($base.syncState).toUpperFirst()
5050
q.add ($base.chainMode).toUpperFirst()
5151

52-
q.add base.baseNum.bnStr()
53-
q.add base.latestNum.bnStr()
52+
q.add $base.baseNum
53+
q.add $base.latestNum
5454

5555
if base.chainMode in {collecting,ready,orphan}:
56-
q.add base.antecedent.bnStr()
56+
q.add $base.anteNum
5757
else:
5858
q.add "*"
5959

@@ -67,13 +67,13 @@ proc addX(
6767
if base.hdrUnpr.isSome():
6868
q.add "uHdr=" & $base.hdrUnpr.value.hLen & "/" &
6969
$base.hdrUnpr.value.hChunks & "/" &
70-
$base.hdrUnpr.value.hLastLen & ":" &
71-
$base.hdrUnpr.value.hLast.bnStr
70+
$base.hdrUnpr.value.hLastNum & ":" &
71+
$base.hdrUnpr.value.hLastLen
7272

7373
if base.blkUnpr.isSome():
7474
q.add "uBlk=" & $base.blkUnpr.value.bLen & "/" &
7575
$base.blkUnpr.value.bChunks & "/" &
76-
$base.blkUnpr.value.bLeast.bnStr & ":" &
76+
$base.blkUnpr.value.bLeastNum & ":" &
7777
$base.blkUnpr.value.bLeastLen
7878

7979
if base.peerCtx.isSome() and
@@ -106,26 +106,26 @@ func toStrSeq(n: int; w: ReplayVersionInfo): seq[string] =
106106
else: ""
107107
res.add "version=" & $w.bag.version & moan
108108
res.add "network=" & $w.bag.networkId
109-
res.add "base=" & w.bag.baseNum.bnStr
110-
res.add "latest=" & w.bag.latestNum.bnStr
109+
res.add "base=" & $w.bag.baseNum
110+
res.add "latest=" & $w.bag.latestNum
111111
res
112112

113113
# -----------
114114

115115
func toStrSeq(n: int; w: ReplaySyncActivated): seq[string] =
116116
var res = newSeqOfCap[string](20)
117117
res.addX(w.replayLabel, n, w.bag)
118-
res.add "head=" & w.bag.head.bnStr
118+
res.add "head=" & $w.bag.head.number
119119
res.add "finHash=" & w.bag.finHash.short
120-
res.add "base=" & w.bag.baseNum.bnStr
121-
res.add "latest=" & w.bag.latestNum.bnStr
120+
res.add "base=" & $w.bag.baseNum
121+
res.add "latest=" & $w.bag.latestNum
122122
res
123123

124124
func toStrSeq(n: int; w: ReplaySyncHibernated): seq[string] =
125125
var res = newSeqOfCap[string](15)
126126
res.addX(w.replayLabel, n, w.bag)
127-
res.add "base=" & w.bag.baseNum.bnStr
128-
res.add "latest=" & w.bag.latestNum.bnStr
127+
res.add "base=" & $w.bag.baseNum
128+
res.add "latest=" & $w.bag.latestNum
129129
res
130130

131131
# -----------
@@ -167,8 +167,12 @@ func toStrSeq(n: int; w: ReplaySchedPeerBegin): seq[string] =
167167
var res = newSeqOfCap[string](20)
168168
res.addX(w.replayLabel, n, w.bag)
169169
res.add "peer=" & $w.bag.peerIP & ":" & $w.bag.peerPort
170-
res.add "info=" & $w.bag.rank.assessed
171-
res.add "rank=" & $w.bag.rank.ranking
170+
let info = ($w.bag.rank.assessed)
171+
.multiReplace [("rankingT","t"),("rankingO","o")]
172+
if w.bag.rank.ranking < 0:
173+
res.add "rank=" & info
174+
else:
175+
res.add "rank=" & info & "(" & $w.bag.rank.ranking & ")"
172176
res
173177

174178
func toStrSeq(n: int; w: ReplaySchedPeerEnd): seq[string] =
@@ -186,10 +190,9 @@ func toStrSeq(n: int; w: ReplayFetchHeaders): seq[string] =
186190
rRev = if w.bag.req.reverse: "rev" else: ""
187191
if w.bag.req.startBlock.isHash:
188192
res.add "req=" & w.bag.req.startBlock.hash.short & "[" & $rLen & "]" & rRev
189-
res.add "bn=" & w.bag.bn.bnStr
193+
res.add "bn=" & $w.bag.bn
190194
else:
191-
res.add "req=" &
192-
w.bag.req.startBlock.number.bnStr & "[" & $rLen & "]" & rRev
195+
res.add "req=" & $w.bag.req.startBlock.number & "[" & $rLen & "]" & rRev
193196
if 0 < w.bag.req.skip:
194197
res.add "skip=" & $w.bag.req.skip
195198
if w.bag.fetched.isSome():
@@ -215,7 +218,7 @@ func toStrSeq(n: int; w: ReplaySyncHeaders): seq[string] =
215218
func toStrSeq(n: int; w: ReplayFetchBodies): seq[string] =
216219
var res = newSeqOfCap[string](20)
217220
res.addX(w.replayLabel, n, w.bag)
218-
res.add "req=" & w.bag.ivReq.bnStr & "[" & $w.bag.req.blockHashes.len & "]"
221+
res.add "req=" & $w.bag.ivReq & "[" & $w.bag.req.blockHashes.len & "]"
219222
if w.bag.fetched.isSome():
220223
res.add "res=[" & $w.bag.fetched.value.packet.bodies.len & "]"
221224
res.add "size=" &
@@ -241,7 +244,7 @@ func toStrSeq(n: int; w: ReplaySyncBodies): seq[string] =
241244
func toStrSeq(n: int; w: ReplayImportBlock): seq[string] =
242245
var res = newSeqOfCap[string](20)
243246
res.addX(w.replayLabel, n, w.bag)
244-
res.add "block=" & w.bag.ethBlock.bnStr
247+
res.add "block=" & $w.bag.ethBlock.header.number
245248
res.add "size=" & w.bag.ethBlock.getEncodedLength.uint64.toSI
246249
res.add "effPeerID=" & w.bag.effPeerID.short
247250
if w.bag.elapsed.isSome():

tools/syncer/replay/replay_runner/runner_desc.nim

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ const
2929
replayWaitForCompletion* = chronos.nanoseconds(100)
3030
## Wait for other pseudo/async thread to have completed something
3131

32-
replayFailTimeout* = chronos.seconds(50)
33-
## Bail out after waiting this long for an event to happen. This
34-
## timeout should cover the maximum time needed to import a block.
35-
3632
replayFailTmoMinLog* = chronos.milliseconds(1)
3733
## Log maximum elapsed time when it exceeds this threshold.
3834

@@ -78,7 +74,7 @@ type
7874
# Local state
7975
daemon*: ReplayDaemonRef ## Currently active daemon, or `nil`
8076
peers*: Table[Hash,ReplayBuddyRef] ## Begin/End for base frames
81-
nPeers*: uint ## Track active peer instances
77+
nSyncPeers*: int ## Track active peer instances
8278
failTmoMax*: chronos.Duration ## Keep track of largest timeout
8379

8480
# Instruction handling
@@ -88,11 +84,15 @@ type
8884
# Fake scheduler `getPeer()` and `getPeers()` for replay runner
8985
# ------------------------------------------------------------------------------
9086

91-
proc replayGetPeerFn*(run: ReplayRunnerRef): ReplayGetPeerFn =
87+
proc replayGetSyncPeerFn*(run: ReplayRunnerRef): ReplayGetSyncPeerFn =
9288
result = proc(peerID: Hash): BeaconBuddyRef =
9389
run.peers.withValue(peerID,val):
9490
return val[]
9591

92+
proc replayNSyncPeersFn*(run: ReplayRunnerRef): ReplayNSyncPeersFn =
93+
result = proc(): int =
94+
run.nSyncPeers
95+
9696
# ------------------------------------------------------------------------------
9797
# End
9898
# ------------------------------------------------------------------------------

0 commit comments

Comments
 (0)