A Users Guide to Cardano Blockchain Congestion and DripDropz
With over 24 hour delays for some transactions users are questioning when they will receive their token withdrawals from DripDropz. It is normal to feel concern when your transaction doesn’t finish right away. Let’s take a look at the whole process and get a good understanding on where your tokens are.
Congestion
First let’s talk a little about what congestion means on the Cardano Network. To do that, we’ll need to know a couple of important terms.
eUTxO
The Cardano blockchain relies on the eUTxO (extended Unspent Transaction Output) model for transactions. This means that you “spend” a transaction by taking everything in one or more unspent transactions, and split those inputs into outputs. See this helpful diagram from the Cardano Plutus Pioneer Program:
You can read more about the eUTxO model here.
minUTXO
Another important feature of Cardano is the minUTXO. This number is simply the ADA required to accompany any other asset on the blockchain. By having a minUTXO associated with every transaction that includes a native asset, it stops an attack vector where a malicious user could just constantly send out garbage native assets, filling up blocks with useless information.
So what do these terms have to do with congestion? Well Cardano’s model is such that your transaction can be submitted into a queue known as the Mempool and just wait it’s turn to be included in an upcoming block. So DripDropz, and other tools like the wallet from CCVault, all use a pretty ingenious product known as Phyrhose to line up that queue. This queue is where you as an end user may experience some pretty extended wait times.
Mempool
This brings us to the third and final term that we will highlight in this article. A Mempool is pretty simple, really. It is a bucket of transactions that need to make it on to the Cardano Blockchain. They sit in this bucket, and wait their turn to get into blocks. Now, let’s take a look at how this all comes together.
The Process
I am going to let you follow along with a transaction that I completed this epoch, so that you can see all of the places that the transaction has to wait in line. I will use the CCVault wallet, and the DripDropz website to do this whole transaction.
The Request
First, I go to DripDropz, put in my receive address for my wallet. I select my tokens as usual, and then I submit the request. At this point the DripDropz server assigns a wallet to me, and asks me to send the withdrawal fee.
DripDropz will leave that wallet open for you for up to six hours, but it won’t do anything to grab your tokens yet. So far, it is just waiting for you. Why? Remember that minUTxO thing? You’ll need to send in the ADA necessary to cover that. The rest of the ADA that you are sending in? That’s what pays for the servers to run, and for the license to Phyrhose to make all the magic happen!
Sending the ADA
Our next step is to open the CCVault wallet, and create a basic transaction. We click on send, paste the address from the DripDropz website, enter our amount and spending password, and then we’re done, right?
Not so fast! See that “Pending” message? That is the very first time you are experiencing the blockchain delays in this transaction. You see, you have submitted your transaction to a Mempool. It will sit there until the CCVault servers can get your transaction into the block chain.
Eventually, this transaction will get included in a block, and the message will change. CCVault does have a flashy green success message. I missed it when I tried to screen capture it, so you’ll have to settle for what it looks like later:
Withdrawal
I actually started sending that ADA at around 18:30 local time. So it took nearly an hour to complete. I am glad I didn’t sit around waiting! Now this transaction is live on chain, so it is only a matter of time before the server message updates on DripDropz as well:
This change only took another few minutes to complete. It looks good! You should be able to just pop open your wallet and see your tokens now, right??
Not yet. You see, at this point, you’re going to get into another queue. This time, since your ADA is with DripDropz, we’re able to take all of the tokens you just requested, bundle them with your minUTXO ADA and create a new transaction that will eventually end up in your wallet as a new unspent transaction output (eUTXO). We can also bundle your transaction with a couple others, so that all three of you awesome Drippers will get your tokens at the same time.
Go back and look at that eUTXO diagram above, and now it should make even more sense.
Swimming in the Mempool
But, there is still another queue! You haven’t escaped the mempool just yet. We have a tool that lets us view the size of the mempool waiting at the DripDropz servers. For us, it is a good health indicator that we are moving through transaction volume, hopefully faster than new transactions are coming in.
Your tokens are one of many transactions standing in queue, just waiting their turn to return to your wallet. Now, we want to clear that queue as fast as we possibly can! But we’ve got lots of transactions. That chart is showing a drop from over 17 MiB to roughly 16.5 Mib in an hour. So at about 8 Kib per transaction, you can see we are processing a ton of transactions, but we still have a big backlog to work through.
This is where your sometimes 24+ hour delays are coming from. The servers are processing all of those DRIP transactions as fast as the chain will allow, but there are only so many transactions that can fit in each block. This is a limit set by Cardano, not by DripDropz. If we could, we would blast all of those transactions out in a second! Unfortunately, for the Blockchain world, that would be a really bad idea, because we have to make sure that these transactions are all valid, and that they all only happen once. So we wait in queue.
Success
Eventually, you’ll see this at your CCVault wallet interface:
My Tokens have arrived! I am a bit of a token degen, I like to collect them all every epoch. I think it is fun to hold on to native assets for the Cardano Blockchain so I can see where all of this grows over the next few years.
I hope this walk through the process is helpful for you. The DripDropz team has built something very special for the Cardano blockchain. There are some definite growing pains, but tokens are being delivered successfully roughly every 20 seconds as Blocks are added to the chain. It just might take a while to get to your specific transaction.
Follow Up
Will this always be the way things are?
In the short term, I would say, yes, this is where you should set your expectations for a successful transaction. If things haven’t moved after 48 hours, you can probably look for some other transaction issue, or open a trouble ticket on the contact us page at DripDropz.
Longer term, Cardano is working through a number of performance improvements that will come online in the next few months. These Basho Era changes will result in more volume of completions of transactions, as well as things like Hydra side chains that will be able to process transactions in large bundles.
So we’re not stuck with this forever, but for now, be patient, and only send your ADA one time to the payment wallet. Users that send the wrong amount, or send duplicate transactions will eventually get refunds. This does add to the mempool queue unnecessarily, and there will be longer delays for those transactions as well.