Skip to content

Commit 4aa61ef

Browse files
committed
modularise message routing for sidecars
1 parent 32039d5 commit 4aa61ef

File tree

5 files changed

+229
-149
lines changed

5 files changed

+229
-149
lines changed

beacon_chain/gossip_processing/block_processor.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import
1111
chronicles, chronos, metrics,
12+
kzg4844/kzg,
1213
../spec/[forks, helpers_el, signatures, signatures_batch, peerdas_helpers],
1314
../sszdump
1415

@@ -207,7 +208,7 @@ proc verifySidecars(
207208
let kzgCommits = signedBlock.message.body.blob_kzg_commitments.asSeq
208209
if blobs.len > 0 or kzgCommits.len > 0:
209210
let r = validate_blobs(
210-
kzgCommits, blobs.mapIt(KzgBlob(bytes: it.blob)), blobs.mapIt(it.kzg_proof)
211+
kzgCommits, blobs.mapIt(kzg.KzgBlob(bytes: it.blob)), blobs.mapIt(it.kzg_proof)
211212
)
212213
if r.isErr():
213214
debug "blob validation failed",

beacon_chain/rpc/rest_beacon_api.nim

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,20 +1053,19 @@ proc installBeaconApiHandlers*(router: var RestRouter, node: BeaconNode) =
10531053
await node.router.routeSignedBeaconBlock(
10541054
forkyBlck, Opt.some(
10551055
forkyBlck.create_blob_sidecars(kzg_proofs, blobs)),
1056-
Opt.none(seq[fulu.DataColumnSidecar]),
10571056
checkValidator = true)
10581057
elif consensusFork >= ConsensusFork.Fulu:
10591058
let data_columns = assemble_data_column_sidecars(
10601059
forkyBlck, blobs.mapIt(kzg.KzgBlob(bytes: it)),
10611060
@(kzg_proofs.mapIt(kzg.KzgProof(it))))
10621061
await node.router.routeSignedBeaconBlock(
1063-
forkyBlck, Opt.none(seq[BlobSidecar]),
1062+
forkyBlck,
10641063
Opt.some(data_columns),
10651064
checkValidator = true)
10661065
else:
10671066
await node.router.routeSignedBeaconBlock(
1068-
forkyBlck, Opt.none(seq[BlobSidecar]),
1069-
Opt.none(seq[fulu.DataColumnSidecar]),
1067+
forkyBlck,
1068+
noSidecarsAtFork,
10701069
checkValidator = true)
10711070

10721071
if res.isErr():
@@ -1200,8 +1199,7 @@ proc installBeaconApiHandlers*(router: var RestRouter, node: BeaconNode) =
12001199
let res = withBlck(forked):
12011200
forkyBlck.root = hash_tree_root(forkyBlck.message)
12021201
await node.router.routeSignedBeaconBlock(
1203-
forkyBlck, Opt.none(seq[BlobSidecar]),
1204-
Opt.none(seq[fulu.DataColumnSidecar]), checkValidator = true)
1202+
forkyBlck, noSidecarsAtFork, checkValidator = true)
12051203

12061204
if res.isErr():
12071205
return RestApiResponse.jsonError(

beacon_chain/validators/beacon_validators.nim

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -574,25 +574,24 @@ proc proposeBlockAux(
574574
message: engineBlock.blck, signature: signature, root: blockRoot
575575
)
576576

577-
blobsOpt =
578-
when consensusFork in [ConsensusFork.Deneb, ConsensusFork.Electra]:
579-
Opt.some(
580-
signedBlock.create_blob_sidecars(
581-
engineBlock.blobsBundle.proofs,
582-
engineBlock.blobsBundle.blobs))
583-
else:
584-
Opt.none(seq[BlobSidecar])
577+
when consensusFork in [ConsensusFork.Deneb, ConsensusFork.Electra]:
578+
let sidecarsOpt =
579+
Opt.some(
580+
signedBlock.create_blob_sidecars(
581+
engineBlock.blobsBundle.proofs,
582+
engineBlock.blobsBundle.blobs))
583+
elif consensusFork >= ConsensusFork.Fulu:
584+
let sidecarsOpt =
585+
Opt.some(signedBlock.assemble_data_column_sidecars(
586+
engineBlock.blobsBundle.blobs.mapIt(kzg.KzgBlob(bytes: it)),
587+
@(engineBlock.blobsBundle.proofs.mapIt(kzg.KzgProof(it)))))
588+
else:
589+
const sidecarsOpt = noSidecarsAtFork
585590

586-
columnsOpt =
587-
when consensusFork >= ConsensusFork.Fulu:
588-
Opt.some(signedBlock.assemble_data_column_sidecars(
589-
engineBlock.blobsBundle.blobs.mapIt(kzg.KzgBlob(bytes: it)),
590-
@(engineBlock.blobsBundle.proofs.mapIt(kzg.KzgProof(it)))))
591-
else:
592-
Opt.none(seq[fulu.DataColumnSidecar])
591+
let
593592
newBlockRef = await(
594-
node.router.routeSignedBeaconBlock(signedBlock, blobsOpt,
595-
columnsOpt, checkValidator = false)
593+
node.router.routeSignedBeaconBlock(signedBlock, sidecarsOpt,
594+
checkValidator = false)
596595
).valueOr:
597596
# TODO Is this an error?
598597
beacon_block_production_errors.inc()

0 commit comments

Comments
 (0)