Explaining the queue system
The queue system was implemented because it was the easier and more future-proof way (in our opinion) to manage raffles UTxOs. Here are the two main reasons for that:
Cardano tx size limitation. To understand: each user entry in a raffle will generate a new UTxO, now, considering a raffle with 100 unique user entries this would mean 100 inputs when claiming the prize. Since the tx also includes SC bytes, claim transactions would usually need to be split.
Prize claim concurrency. If we put all raffle entry UTxOs in the same SC, multiple users could be trying to claim the same UTxO at the same time and this would fail. We could use data hash to identify them, but the tx size would drastically increase (point 1 becomes even worse)
So, considering raffles usually take at least 24h to finish and do not settle while there's someone in the queue, we didn't consider the queue system that harmful, but obviously not the ideal solution for popular raffles.
Is it possible to create a raffle system without this? Yes. We really hope that Cardano moves towards a faster transaction confirmation system (i.e. Hydra) and this won't be an issue anymore.
Last updated