Currently (as of 2026-05), PerasCert in block bodies are defined as ByteString. This is to help with fast development and ensure that we don't need cross-repo cooperation to make changes on Peras data types.
In consensus, we (will) have a method getPerasCertFromBlock :: blk -> Maybe (PerasCert blk) that starting from Djikstra, can extract the cert from a block. However, we already identified that the cert included in a block can be from the previous era if we just crossed an era boundary, even if the block in which it is included is from the current era.
The signature of the function currently does not allow for such case to happen. To make Peras code HFC-ready in order to support future evolution, we should find a solution.
N.B. this is not required for testnet, and is "good to have" but not required strictly speaking for mainnet.
Currently (as of 2026-05),
PerasCertin block bodies are defined asByteString. This is to help with fast development and ensure that we don't need cross-repo cooperation to make changes on Peras data types.In consensus, we (will) have a method
getPerasCertFromBlock :: blk -> Maybe (PerasCert blk)that starting from Djikstra, can extract the cert from a block. However, we already identified that the cert included in a block can be from the previous era if we just crossed an era boundary, even if the block in which it is included is from the current era.The signature of the function currently does not allow for such case to happen. To make Peras code HFC-ready in order to support future evolution, we should find a solution.
N.B. this is not required for testnet, and is "good to have" but not required strictly speaking for mainnet.