weird fix
This commit is contained in:
parent
8e28654a24
commit
3b1f5b48dd
|
@ -50,6 +50,7 @@ type
|
||||||
pool: PeerPool[A, B]
|
pool: PeerPool[A, B]
|
||||||
DENEB_FORK_EPOCH: Epoch
|
DENEB_FORK_EPOCH: Epoch
|
||||||
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: uint64
|
MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS: uint64
|
||||||
|
MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS: uint64
|
||||||
responseTimeout: chronos.Duration
|
responseTimeout: chronos.Duration
|
||||||
maxHeadAge: uint64
|
maxHeadAge: uint64
|
||||||
getLocalHeadSlot: GetSlotCallback
|
getLocalHeadSlot: GetSlotCallback
|
||||||
|
@ -186,7 +187,7 @@ proc shouldGetBlobs[A, B](man: SyncManager[A, B], e: Epoch): bool =
|
||||||
proc shouldGetDataColumns[A, B](man: SyncManager[A, B], e: Epoch): bool =
|
proc shouldGetDataColumns[A, B](man: SyncManager[A, B], e: Epoch): bool =
|
||||||
let wallEpoch = man.getLocalWallSlot().epoch
|
let wallEpoch = man.getLocalWallSlot().epoch
|
||||||
e >= man.DENEB_FORK_EPOCH and
|
e >= man.DENEB_FORK_EPOCH and
|
||||||
(wallEpoch < man.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUEST or
|
(wallEpoch < man.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS or
|
||||||
e >= wallEpoch - man.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS)
|
e >= wallEpoch - man.MIN_EPOCHS_FOR_DATA_COLUMN_SIDECARS_REQUESTS)
|
||||||
|
|
||||||
proc getBlobSidecars[A, B](man: SyncManager[A, B], peer: A,
|
proc getBlobSidecars[A, B](man: SyncManager[A, B], peer: A,
|
||||||
|
@ -541,7 +542,7 @@ proc syncStep[A, B](man: SyncManager[A, B], index: int, peer: A)
|
||||||
Opt.none(seq[BlobSidecars])
|
Opt.none(seq[BlobSidecars])
|
||||||
|
|
||||||
let shouldGetDataColumns =
|
let shouldGetDataColumns =
|
||||||
if not man.shouldGetBlobs(req.slot.epoch):
|
if not man.shouldGetDataColumns(req.slot.epoch):
|
||||||
false
|
false
|
||||||
else:
|
else:
|
||||||
var hasColumns = false
|
var hasColumns = false
|
||||||
|
@ -556,7 +557,7 @@ proc syncStep[A, B](man: SyncManager[A, B], index: int, peer: A)
|
||||||
let dataColumnData =
|
let dataColumnData =
|
||||||
if shouldGetDataColumns:
|
if shouldGetDataColumns:
|
||||||
let data_columns = await man.getDataColumnSidecars(peer, req)
|
let data_columns = await man.getDataColumnSidecars(peer, req)
|
||||||
if data_columns.isErr:
|
if data_columns.isErr():
|
||||||
peer.updateScore(PeerScoreNoValues)
|
peer.updateScore(PeerScoreNoValues)
|
||||||
man.queue.push(req)
|
man.queue.push(req)
|
||||||
debug "Failed to receive data columns on request",
|
debug "Failed to receive data columns on request",
|
||||||
|
@ -576,14 +577,13 @@ proc syncStep[A, B](man: SyncManager[A, B], index: int, peer: A)
|
||||||
warn "Received data columns sequence is not in requested range",
|
warn "Received data columns sequence is not in requested range",
|
||||||
data_columns_count = len(dataColumnData), data_columns_map = getShortMap(req, dataColumnData),
|
data_columns_count = len(dataColumnData), data_columns_map = getShortMap(req, dataColumnData),
|
||||||
request = req
|
request = req
|
||||||
|
|
||||||
return
|
return
|
||||||
let groupedDataColumns = groupDataColumns(req, blockData, dataColumnData)
|
let groupedDataColumns = groupDataColumns(req, blockData, dataColumnData)
|
||||||
if groupedDataColumns.isErr:
|
if groupedDataColumns.isErr:
|
||||||
peer.updateScore(PeerScoreNoValues)
|
peer.updateScore(PeerScoreNoValues)
|
||||||
man.queue.push(req)
|
man.queue.push(req)
|
||||||
info "Received data columns is inconsistent",
|
# info "Received data columns is inconsistent",
|
||||||
data_columns_map = getShortMap(req, dataColumnData), request = req, msg=groupedDataColumns.error()
|
# data_columns_map = getShortMap(req, dataColumnData), request = req, msg=groupedDataColumns.error()
|
||||||
return
|
return
|
||||||
if (let checkRes = groupedDataColumns.get.checkDataColumns(); checkRes.isErr):
|
if (let checkRes = groupedDataColumns.get.checkDataColumns(); checkRes.isErr):
|
||||||
peer.updateScore(PeerScoreBadResponse)
|
peer.updateScore(PeerScoreBadResponse)
|
||||||
|
|
|
@ -137,9 +137,8 @@ proc getShortMap*[T](req: SyncRequest[T],
|
||||||
proc getShortMap*[T](req: SyncRequest[T],
|
proc getShortMap*[T](req: SyncRequest[T],
|
||||||
data: openArray[ref DataColumnSidecar]): string =
|
data: openArray[ref DataColumnSidecar]): string =
|
||||||
# Returns all slot numbers in ``data`` as a placement map
|
# Returns all slot numbers in ``data`` as a placement map
|
||||||
var
|
var res = newStringOfCap(req.count * MAX_BLOBS_PER_BLOCK)
|
||||||
res = newStringOfCap(req.count * MAX_BLOBS_PER_BLOCK)
|
var cur: uint64 = 0
|
||||||
cur: uint64 = 0
|
|
||||||
for slot in req.slot..<req.slot+req.count:
|
for slot in req.slot..<req.slot+req.count:
|
||||||
if cur >= lenu64(data):
|
if cur >= lenu64(data):
|
||||||
res.add('|')
|
res.add('|')
|
||||||
|
|
Loading…
Reference in New Issue