We want to use a new beacon based on a chain point instead of an immutable file number when signing Cardano transactions.
What
Migrate the CardanoTransactions signed entity type to use a ChainPoint instead of ImmutableFileNumber. A new associated open message is created at every n blocks (value of n needs to be a configuration parameter to be defined) with a fixed offset k' (value of k' needs to be a configuration parameter to be defined which represents the unofficial security parameter).
How
[x] Update the CardanoTransactions signed entity type to use a ChainPoint internally
[x] Update the TimePoint to have a ChainPoint or BlockNumber entry that represents the tip in the state machine of the aggregator
[x] Compute the signed entity type with block_number = ((tip.block_number - k') / n) * n
[x] Make k' and n parameters configurable in the aggregator with default values: k'=3000 and n=100 (values can be adjusted)
[x] Make BlockScanner of immutable files compute the upper bound on its own (try to get the latest immutable file number?)
[x] Clean existing conversion between ImmutableFileNumber and BlockNumber in the database repository
[x] Adapt signature of CardanoTransactions to the new beacon
[x] Adapt the CardanoTransactionSnapshot artifact to support the new beacon
[x] Clean the artifacts for the Cardano transactions in the aggregator database with a new migration
Why
We want to use a new beacon based on a chain point instead of an immutable file number when signing Cardano transactions.
What
Migrate the
CardanoTransactions
signed entity type to use aChainPoint
instead ofImmutableFileNumber
. A new associated open message is created at everyn
blocks (value ofn
needs to be a configuration parameter to be defined) with a fixed offsetk'
(value ofk'
needs to be a configuration parameter to be defined which represents the unofficial security parameter).How
CardanoTransactions
signed entity type to use aChainPoint
internallyTimePoint
to have aChainPoint
orBlockNumber
entry that represents the tip in the state machine of the aggregatorblock_number = ((tip.block_number - k') / n) * n
k'
andn
parameters configurable in the aggregator with default values:k'=3000
andn=100
(values can be adjusted)BlockScanner
of immutable files compute the upper bound on its own (try to get the latest immutable file number?)ImmutableFileNumber
andBlockNumber
in the database repositoryCardanoTransactions
to the new beaconCardanoTransactionSnapshot
artifact to support the new beacon