Carp Funnel
This funnel allows using Cardano Primitives leveraging Carp. It's enabled when either Cardano is specified in the settings or .env.
Configuration​
Cardano:
type: cardano
carpUrl: http://localhost:3000
network: preview
confirmationDepth: 10
paginationLimit: 2
network
which Cardano network this funnel will trackconfirmationDepth
when a block is considered stablepaginationLimit
used as the pagination limit for underlying Carp queries
Requirements​
An instance of Carp is required to index the data for this funnel. Additionally, the MultieraAddressDelegationTask
task needs to be in the execution plan. For setup, refer to the documentation.
Determinism​
Ensuring consistency in the state transition for a block during synchronization across multiple synchronization rounds is crucial to ensure that the game state transitions are deterministic. To achieve this, events merged with a specific EVM block at height B are collected by considering both timestamp(B)
and timestamp(B - 1)
. The timestamps are then mapped to the corresponding absolute slots in Cardano, with an adjustment for finality. All events within this slot range are consolidated into a single state transition. This range is open on the lower bound, and closed on the upper bound. In the case where it's not possible to know if all the events in the range are already below the confirmation point, the funnel will wait before returning for enough Cardano blocks to be generated, in order to get above the maximum slot required.