The ETN (Electroneum) wallet on Cryptopia is now open for Deposits and Withdrawals again.
If you are depositing, please be aware that the deposit address HAS CHANGED (but not your payment ID).
PLEASE check your deposit page before depositing, as any deposits sent to the old address may face significant delays and at some point will stop being credited. Read on for more details.
Cryptopia’s wallet has sent and received well over a million ETN transactions, which resulted in the wallet file growing to 4.6 GB. After restarting to apply an update, the wallet daemon refused to load this file, complaining it was “invalid”. We dug through the code and found there was a hardcoded limit on the wallet file size of 1 GB, inherited from Monero
. It would happily save a wallet file this size but refused to load it.
Patching out that check makes it clear why this limit was there, the wallet daemon is very sluggish with a wallet file that large. It takes around 40 hours to load. Generating small transactions of 10,000 ETN takes several minutes. The time it takes to load this wallet and send transactions gets longer and longer as more and more transactions go into it.
Worse, generating larger transactions would cause the wallet daemon to segfault and crash, forcing us to spend 40+ hours loading the wallet file again.
We had the wallet running on a server with 128 GB of RAM and 24 cores (not underpowered) but the code was only taking advantage of one or two cores.
Unfortunately, the majority of our user’s ETN was stuck in this overloaded wallet. Even if it wasn’t crashing, rough calculations show that it might take several months to transfer all the ETN into a new wallet.
It’s important to note that none of our user’s funds were lost, just stuck in a misbehaving wallet.
How are we fixing this?
We have multiple developers working on this issue, developing multiple solutions. The two most promising solutions are:
#1. Improve the current code enough so that we can move all the funds out of the original wallet into a new one, faster than the current code allows. This would only be a short-term fix – the new wallet will eventually develop the same issues as the old wallet.
#2. Create a new enterprise grade wallet – one which is built from the ground up to deal with the massive number of transactions we are seeing. This will solve the long-term issues, but it will take many months before it’s fully tested, audited and operational.
We are making progress on both fronts.
We tracked that segfault crash down to this commit
, which triggers a null deference in some error handling code. With that bug fixed, we have been able to move the ETN out of that overloaded wallet slowly but surely over the last few weeks. Enough ETN have been moved out that we are comfortable allowing deposits and withdrawals again.
A new deposit address has been created, resetting our wallet file back to zero.
PLEASE MAKE SURE you are sending funds to the correct address and payment ID on your deposit page. If you send funds to the old deposit address, we can’t guarantee we will be able to recover it.
This is only a short-term solution, we may have to move to a new deposit address a few times before our long-term solution is ready.
Sorry for the delays, this was not a simple problem to fix but we are working very hard to resolve this and appreciate your patience.
The Cryptopia Team