Make beacon LC adjustements to support capella in light clients (#1545)
- Bump nimbus-eth2 repo - Beacon LC adjustements in fluffy - Beacon LC adjustements in nimbus_verified_proxy
This commit is contained in:
parent
b195f0893b
commit
3eafb15d7c
|
@ -160,10 +160,10 @@ func decodeForkedLightClientObject(
|
|||
|
||||
let
|
||||
forkDigest = ForkDigest(array[4, byte].initCopyFrom(data))
|
||||
contextFork = forkDigests.stateForkForDigest(forkDigest).valueOr:
|
||||
contextFork = forkDigests.consensusForkForDigest(forkDigest).valueOr:
|
||||
return Result[ObjType, string].err("Unknown fork")
|
||||
|
||||
withLcDataFork(lcDataForkAtStateFork(contextFork)):
|
||||
withLcDataFork(lcDataForkAtConsensusFork(contextFork)):
|
||||
when lcDataFork > LightClientDataFork.None:
|
||||
let res = decodeSsz(data.toOpenArray(4, len(data) - 1), ObjType.Forky(lcDataFork))
|
||||
if res.isOk:
|
||||
|
|
|
@ -25,7 +25,7 @@ const testForkDigests* =
|
|||
altair: ForkDigest([0'u8, 0, 0, 2]),
|
||||
bellatrix: ForkDigest([0'u8, 0, 0, 3]),
|
||||
capella: ForkDigest([0'u8, 0, 0, 4]),
|
||||
eip4844: ForkDigest([0'u8, 0, 0, 5])
|
||||
deneb: ForkDigest([0'u8, 0, 0, 5])
|
||||
)
|
||||
|
||||
proc newLCNode*(
|
||||
|
|
|
@ -396,7 +396,7 @@ proc run(config: BeaconBridgeConf) {.raises: [CatchableError].} =
|
|||
wallSlot = getBeaconTime().slotOrZero
|
||||
|
||||
withBlck(signedBlock):
|
||||
when stateFork >= ConsensusFork.Bellatrix:
|
||||
when consensusFork >= ConsensusFork.Bellatrix:
|
||||
if blck.message.is_execution_block:
|
||||
template payload(): auto = blck.message.body.execution_payload
|
||||
|
||||
|
@ -648,6 +648,16 @@ proc run(config: BeaconBridgeConf) {.raises: [CatchableError].} =
|
|||
proc (signedBlock: bellatrix.SignedBeaconBlock): errors.ValidationResult =
|
||||
toValidationResult(
|
||||
optimisticProcessor.processSignedBeaconBlock(signedBlock)))
|
||||
network.addValidator(
|
||||
getBeaconBlocksTopic(forkDigests.capella),
|
||||
proc (signedBlock: capella.SignedBeaconBlock): errors.ValidationResult =
|
||||
toValidationResult(
|
||||
optimisticProcessor.processSignedBeaconBlock(signedBlock)))
|
||||
network.addValidator(
|
||||
getBeaconBlocksTopic(forkDigests.deneb),
|
||||
proc (signedBlock: deneb.SignedBeaconBlock): errors.ValidationResult =
|
||||
toValidationResult(
|
||||
optimisticProcessor.processSignedBeaconBlock(signedBlock)))
|
||||
lightClient.installMessageValidators()
|
||||
|
||||
waitFor network.startListening()
|
||||
|
@ -716,11 +726,11 @@ proc run(config: BeaconBridgeConf) {.raises: [CatchableError].} =
|
|||
oldGossipForks = currentGossipState - targetGossipState
|
||||
|
||||
for gossipFork in oldGossipForks:
|
||||
let forkDigest = forkDigests[].atStateFork(gossipFork)
|
||||
let forkDigest = forkDigests[].atConsensusFork(gossipFork)
|
||||
network.unsubscribe(getBeaconBlocksTopic(forkDigest))
|
||||
|
||||
for gossipFork in newGossipForks:
|
||||
let forkDigest = forkDigests[].atStateFork(gossipFork)
|
||||
let forkDigest = forkDigests[].atConsensusFork(gossipFork)
|
||||
network.subscribe(
|
||||
getBeaconBlocksTopic(forkDigest), blocksTopicParams,
|
||||
enableTopicMetrics = true)
|
||||
|
|
|
@ -107,7 +107,7 @@ proc run(config: VerifiedProxyConf) {.raises: [CatchableError].} =
|
|||
opt = signedBlock.toBlockId(),
|
||||
wallSlot = getBeaconTime().slotOrZero
|
||||
withBlck(signedBlock):
|
||||
when stateFork >= ConsensusFork.Bellatrix:
|
||||
when consensusFork >= ConsensusFork.Bellatrix:
|
||||
if blck.message.is_execution_block:
|
||||
template payload(): auto = blck.message.body.execution_payload
|
||||
blockCache.add(asExecutionData(payload.asEngineExecutionPayload()))
|
||||
|
@ -140,6 +140,16 @@ proc run(config: VerifiedProxyConf) {.raises: [CatchableError].} =
|
|||
proc (signedBlock: bellatrix.SignedBeaconBlock): ValidationResult =
|
||||
toValidationResult(
|
||||
optimisticProcessor.processSignedBeaconBlock(signedBlock)))
|
||||
network.addValidator(
|
||||
getBeaconBlocksTopic(forkDigests.capella),
|
||||
proc (signedBlock: capella.SignedBeaconBlock): ValidationResult =
|
||||
toValidationResult(
|
||||
optimisticProcessor.processSignedBeaconBlock(signedBlock)))
|
||||
network.addValidator(
|
||||
getBeaconBlocksTopic(forkDigests.deneb),
|
||||
proc (signedBlock: deneb.SignedBeaconBlock): ValidationResult =
|
||||
toValidationResult(
|
||||
optimisticProcessor.processSignedBeaconBlock(signedBlock)))
|
||||
lightClient.installMessageValidators()
|
||||
|
||||
waitFor network.startListening()
|
||||
|
@ -204,11 +214,11 @@ proc run(config: VerifiedProxyConf) {.raises: [CatchableError].} =
|
|||
oldGossipForks = currentGossipState - targetGossipState
|
||||
|
||||
for gossipFork in oldGossipForks:
|
||||
let forkDigest = forkDigests[].atStateFork(gossipFork)
|
||||
let forkDigest = forkDigests[].atConsensusFork(gossipFork)
|
||||
network.unsubscribe(getBeaconBlocksTopic(forkDigest))
|
||||
|
||||
for gossipFork in newGossipForks:
|
||||
let forkDigest = forkDigests[].atStateFork(gossipFork)
|
||||
let forkDigest = forkDigests[].atConsensusFork(gossipFork)
|
||||
network.subscribe(
|
||||
getBeaconBlocksTopic(forkDigest), blocksTopicParams,
|
||||
enableTopicMetrics = true)
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 8771e91d53072373cde1b2241092c5d6b2e5f3ab
|
||||
Subproject commit 6c0d756d54998cf30edd1678cbf121c8052a378a
|
Loading…
Reference in New Issue