remove some debugRaiseAsserts and fill in Electra functionality (#6178)
This commit is contained in:
parent
06894dd2f6
commit
0d534224b3
|
@ -409,8 +409,11 @@ proc installValidatorApiHandlers*(router: var RestRouter, node: BeaconNode) =
|
||||||
withBlck(message.blck):
|
withBlck(message.blck):
|
||||||
let data =
|
let data =
|
||||||
when consensusFork >= ConsensusFork.Electra:
|
when consensusFork >= ConsensusFork.Electra:
|
||||||
debugRaiseAssert "validator API, electra"
|
let blobsBundle = message.blobsBundleOpt.get()
|
||||||
default(phase0.BeaconBlock)
|
electra.BlockContents(
|
||||||
|
`block`: forkyBlck,
|
||||||
|
kzg_proofs: blobsBundle.proofs,
|
||||||
|
blobs: blobsBundle.blobs)
|
||||||
elif consensusFork >= ConsensusFork.Deneb:
|
elif consensusFork >= ConsensusFork.Deneb:
|
||||||
let blobsBundle = message.blobsBundleOpt.get()
|
let blobsBundle = message.blobsBundleOpt.get()
|
||||||
deneb.BlockContents(
|
deneb.BlockContents(
|
||||||
|
|
|
@ -70,6 +70,7 @@ RestJson.useDefaultSerializationFor(
|
||||||
DepositReceipt,
|
DepositReceipt,
|
||||||
DepositTreeSnapshot,
|
DepositTreeSnapshot,
|
||||||
DistributedKeystoreInfo,
|
DistributedKeystoreInfo,
|
||||||
|
ElectraSignedBlockContents,
|
||||||
EmptyBody,
|
EmptyBody,
|
||||||
Eth1Data,
|
Eth1Data,
|
||||||
EventBeaconBlockObject,
|
EventBeaconBlockObject,
|
||||||
|
@ -245,6 +246,7 @@ RestJson.useDefaultSerializationFor(
|
||||||
electra.BeaconBlock,
|
electra.BeaconBlock,
|
||||||
electra.BeaconState,
|
electra.BeaconState,
|
||||||
electra.BeaconBlockBody,
|
electra.BeaconBlockBody,
|
||||||
|
electra.BlockContents,
|
||||||
electra.ExecutionPayload,
|
electra.ExecutionPayload,
|
||||||
electra.ExecutionPayloadHeader,
|
electra.ExecutionPayloadHeader,
|
||||||
electra.SignedBeaconBlock,
|
electra.SignedBeaconBlock,
|
||||||
|
@ -2299,7 +2301,7 @@ proc writeValue*(
|
||||||
writer.writeField("data", value.denebData)
|
writer.writeField("data", value.denebData)
|
||||||
of ConsensusFork.Electra:
|
of ConsensusFork.Electra:
|
||||||
writer.writeField("version", "electra")
|
writer.writeField("version", "electra")
|
||||||
debugRaiseAssert "writeValue RestJson Electra ForkedSignedBaconBlock"
|
writer.writeField("data", value.electraData)
|
||||||
writer.endRecord()
|
writer.endRecord()
|
||||||
|
|
||||||
# ForkedHashedBeaconState is used where a `ForkedBeaconState` normally would
|
# ForkedHashedBeaconState is used where a `ForkedBeaconState` normally would
|
||||||
|
@ -3616,8 +3618,17 @@ proc decodeBody*(
|
||||||
ok(RestPublishedSignedBlockContents(
|
ok(RestPublishedSignedBlockContents(
|
||||||
kind: ConsensusFork.Deneb, denebData: blckContents))
|
kind: ConsensusFork.Deneb, denebData: blckContents))
|
||||||
of ConsensusFork.Electra:
|
of ConsensusFork.Electra:
|
||||||
debugRaiseAssert "electra"
|
let blckContents =
|
||||||
return err(RestErrorMessage.init(Http400, UnexpectedDecodeError))
|
try:
|
||||||
|
SSZ.decode(body.data, ElectraSignedBlockContents)
|
||||||
|
except SerializationError as exc:
|
||||||
|
return err(RestErrorMessage.init(Http400, UnableDecodeError,
|
||||||
|
[version, exc.formatMsg("<data>")]))
|
||||||
|
except CatchableError as exc:
|
||||||
|
return err(RestErrorMessage.init(Http400, UnexpectedDecodeError,
|
||||||
|
[version, $exc.msg]))
|
||||||
|
ok(RestPublishedSignedBlockContents(
|
||||||
|
kind: ConsensusFork.Electra, electraData: blckContents))
|
||||||
else:
|
else:
|
||||||
err(RestErrorMessage.init(Http415, "Invalid content type",
|
err(RestErrorMessage.init(Http415, "Invalid content type",
|
||||||
[version, $body.contentType]))
|
[version, $body.contentType]))
|
||||||
|
@ -3748,9 +3759,24 @@ proc decodeBodyJsonOrSsz*(
|
||||||
ok(RestPublishedSignedBlockContents(
|
ok(RestPublishedSignedBlockContents(
|
||||||
kind: ConsensusFork.Deneb, denebData: blckContents))
|
kind: ConsensusFork.Deneb, denebData: blckContents))
|
||||||
of ConsensusFork.Electra:
|
of ConsensusFork.Electra:
|
||||||
debugRaiseAssert "electra"
|
let blckContents =
|
||||||
return err(
|
try:
|
||||||
RestErrorMessage.init(Http400, UnexpectedDecodeError))
|
RestJson.decode(body.data, ElectraSignedBlockContents,
|
||||||
|
requireAllFields = true,
|
||||||
|
allowUnknownFields = true)
|
||||||
|
except SerializationError as exc:
|
||||||
|
debug "Failed to decode JSON data",
|
||||||
|
err = exc.formatMsg("<data>"),
|
||||||
|
data = string.fromBytes(body.data)
|
||||||
|
return err(
|
||||||
|
RestErrorMessage.init(Http400, UnableDecodeError,
|
||||||
|
[version, exc.formatMsg("<data>")]))
|
||||||
|
except CatchableError as exc:
|
||||||
|
return err(
|
||||||
|
RestErrorMessage.init(Http400, UnexpectedDecodeError,
|
||||||
|
[version, $exc.msg]))
|
||||||
|
ok(RestPublishedSignedBlockContents(
|
||||||
|
kind: ConsensusFork.Electra, electraData: blckContents))
|
||||||
else:
|
else:
|
||||||
err(RestErrorMessage.init(Http415, "Invalid content type",
|
err(RestErrorMessage.init(Http415, "Invalid content type",
|
||||||
[version, $body.contentType]))
|
[version, $body.contentType]))
|
||||||
|
|
|
@ -536,8 +536,7 @@ proc getBlockSignature*(v: AttachedValidator, fork: Fork,
|
||||||
let web3signerRequest =
|
let web3signerRequest =
|
||||||
when blck is ForkedBlindedBeaconBlock:
|
when blck is ForkedBlindedBeaconBlock:
|
||||||
case blck.kind
|
case blck.kind
|
||||||
of ConsensusFork.Phase0 .. ConsensusFork.Capella, ConsensusFork.Electra:
|
of ConsensusFork.Phase0 .. ConsensusFork.Capella:
|
||||||
debugRaiseAssert "move electra case out"
|
|
||||||
return SignatureResult.err("Invalid blinded beacon block fork")
|
return SignatureResult.err("Invalid blinded beacon block fork")
|
||||||
of ConsensusFork.Deneb:
|
of ConsensusFork.Deneb:
|
||||||
case v.data.remoteType
|
case v.data.remoteType
|
||||||
|
@ -552,6 +551,19 @@ proc getBlockSignature*(v: AttachedValidator, fork: Fork,
|
||||||
Web3SignerForkedBeaconBlock(kind: ConsensusFork.Deneb,
|
Web3SignerForkedBeaconBlock(kind: ConsensusFork.Deneb,
|
||||||
data: blck.denebData.toBeaconBlockHeader),
|
data: blck.denebData.toBeaconBlockHeader),
|
||||||
proofs)
|
proofs)
|
||||||
|
of ConsensusFork.Electra:
|
||||||
|
case v.data.remoteType
|
||||||
|
of RemoteSignerType.Web3Signer:
|
||||||
|
Web3SignerRequest.init(fork, genesis_validators_root,
|
||||||
|
Web3SignerForkedBeaconBlock(kind: ConsensusFork.Electra,
|
||||||
|
data: blck.electraData.toBeaconBlockHeader))
|
||||||
|
of RemoteSignerType.VerifyingWeb3Signer:
|
||||||
|
let proofs = blockPropertiesProofs(
|
||||||
|
blck.electraData.body, electraIndex)
|
||||||
|
Web3SignerRequest.init(fork, genesis_validators_root,
|
||||||
|
Web3SignerForkedBeaconBlock(kind: ConsensusFork.Electra,
|
||||||
|
data: blck.electraData.toBeaconBlockHeader),
|
||||||
|
proofs)
|
||||||
elif blck is deneb_mev.BlindedBeaconBlock:
|
elif blck is deneb_mev.BlindedBeaconBlock:
|
||||||
case v.data.remoteType
|
case v.data.remoteType
|
||||||
of RemoteSignerType.Web3Signer:
|
of RemoteSignerType.Web3Signer:
|
||||||
|
|
|
@ -275,8 +275,8 @@ proc cmdBench(conf: DbConf, cfg: RuntimeConfig) =
|
||||||
blocks[4].add dag.db.getBlock(
|
blocks[4].add dag.db.getBlock(
|
||||||
blck.root, deneb.TrustedSignedBeaconBlock).get()
|
blck.root, deneb.TrustedSignedBeaconBlock).get()
|
||||||
of ConsensusFork.Electra:
|
of ConsensusFork.Electra:
|
||||||
debugRaiseAssert ""
|
blocks[5].add dag.db.getBlock(
|
||||||
let x = 5
|
blck.root, electra.TrustedSignedBeaconBlock).get()
|
||||||
|
|
||||||
let stateData = newClone(dag.headState)
|
let stateData = newClone(dag.headState)
|
||||||
|
|
||||||
|
|
|
@ -130,9 +130,7 @@ proc loadOps(
|
||||||
SSZ, consensusFork.SignedBeaconBlock)
|
SSZ, consensusFork.SignedBeaconBlock)
|
||||||
|
|
||||||
blobData =
|
blobData =
|
||||||
when consensusFork >= ConsensusFork.Electra:
|
when consensusFork >= ConsensusFork.Deneb:
|
||||||
debugRaiseAssert "no electra support in fc test"
|
|
||||||
elif consensusFork >= ConsensusFork.Deneb:
|
|
||||||
if step.hasKey"blobs":
|
if step.hasKey"blobs":
|
||||||
numExtraFields += 2
|
numExtraFields += 2
|
||||||
Opt.some BlobData(
|
Opt.some BlobData(
|
||||||
|
|
|
@ -82,8 +82,8 @@ proc getTestStates*(
|
||||||
cfg.CAPELLA_FORK_EPOCH = 3.Epoch
|
cfg.CAPELLA_FORK_EPOCH = 3.Epoch
|
||||||
if consensusFork >= ConsensusFork.Deneb:
|
if consensusFork >= ConsensusFork.Deneb:
|
||||||
cfg.DENEB_FORK_EPOCH = 4.Epoch
|
cfg.DENEB_FORK_EPOCH = 4.Epoch
|
||||||
|
if consensusFork >= ConsensusFork.Electra:
|
||||||
debugRaiseAssert "ELECTRA_FORK_EPOCH"
|
cfg.ELECTRA_FORK_EPOCH = 5.Epoch
|
||||||
|
|
||||||
for i, epoch in stateEpochs:
|
for i, epoch in stateEpochs:
|
||||||
let slot = epoch.Epoch.start_slot
|
let slot = epoch.Epoch.start_slot
|
||||||
|
|
Loading…
Reference in New Issue