2

In the English Auction example, let's say both wallet 2 and 3 submit a transaction to bid at the same time. (In the simulator, I just don't add a wait time between wallet 1&2 bids). When Wallet 1 closes the auction, nothing happens in the simulator - only the first transaction is seen :

enter image description here

In general, how does Cardano handle a situation when 2 wallets (say from different geographical locations) submit transactions at the same time ? Do both transactions fail or just 1 ?

1

Whichever transaction the block producer decides to include in block will succeed. Only one can succeed though.

The auction datum exists on a UTxO and each UTxO can only be spent once. In the case of the auction, the validator requires a new UTxO with a new Datum is created to replace the spent TxO. That new Datum isn't visible until the next block though.

Concurrency is a popular topic of conversations in the community and there are many ways a dApp designer can allow participants to interact concurrently. It often requires architectures that are unique to Cardano. Check out this post which includes a lot of helpful resources about concurrency.

1
  • 1
    To add to the above, this is a simple example and doesn't have concurrency support in it. A more complex script would likely have some sort of concurrency model. Jan 15 at 3:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.