In order to provide consistent order of transactions on the different nodes, we need to rely on block_number and transaction_hash instead of rowid (which can differ from one node to another). Also we want to make sure that the sorting is fast and optimized.
What
Implement sorting of transactions by block_number and transaction_hash in signer and aggregator.
How
[x] Update GetCardanoTransactionProvider in signer and aggregator
[x] Create a benchmark for retrieval of sorted transactions
[x] Add composite index on block_number and transaction_hash
Why
In order to provide consistent order of transactions on the different nodes, we need to rely on
block_number
andtransaction_hash
instead ofrowid
(which can differ from one node to another). Also we want to make sure that the sorting is fast and optimized.What
Implement sorting of transactions by
block_number
andtransaction_hash
in signer and aggregator.How
GetCardanoTransactionProvider
in signer and aggregatorblock_number
andtransaction_hash
block_range_root