In our last article we asked the question, “is Cryptsy’s new UI updates enough?” and we got some good feedback on twitter and reddit. One of the main complaints from customers was that wallets seem to go into maintenance a lot on Cryptsy which delay trades and withdraws.
I happen to know and talk to Cryptsy’s “Master of Chains” Mullick on a pretty regular basis. He and I go way back because we started getting more heavily involved into crypto about the same time back in 2012/2013. In passing I mentioned peoples reaction to the last article and asked him directly about the maintenance issue. So this response below is coming straight from the horses mouth.
There are many reasons wallets go into maintenance and can take a while to come back online. One of which is our cautious (sometimes over cautious) approach to blockchain forks wether intentional or not.
If the fork is part of a planned update we need to review the new code before we can build the new wallet in production. Some developers make it harder by not working from the original repository. Which forces us to do a full review of the code from its codebase. Which is not always easy. If the codebase is not BTC/LTC/PPC/NVC or another coin we already have listed then we need to also review the codebase used by the developers.
If the update involves fundamental changes to network consensus we usually wait to see how the network reacts to it and make sure it doesnt introduce any critical bugs into the code. Once recent example of this was potcoin. The proof of stake consensus model was changed and the network was slightly unstable for a week or so. We detected invalid chains up to 50 blocks longer which is more than enough to get a deposit to clear at cryptsy. We couldnt bring the wallet online until we were sure it couldnt be exploited to double spend at our expense. The network has since stabilized and is doing well.
Another reason a wallet may go into maintenance (more commonly network issues) is blockchain security. If a network is found to be insecure due to an exploit, low network hashrate or low network stake weight the wallet may be taken offline until we can contact the developers and get the security of the blockchain back to a level we are confident in allowing the transfer of again. This is not always possible since some developers abandon their projects shortly after listing.
Wallet sizes can also lead to extended periods of maintenance. Some of our wallets are over 5Gb in size due to a large volume of transactions. A simple rescan or reindex with wallets of this size commonly take days. Some of our largest wallets can take upwards of a week to rescan, even in ramfs ( an extremely fast file system stored in ram). Rescans and reindexes are common maintenance. and are done routinely to verify the integrity of our wallets. All transaction data will be stripped from the wallet and the daemon started with the rescan parameter. This will go through the data in the blockchain and only pick up valid transactions in a block. This clears up a lot of overhead from transactions that never confirmed. As well as removing any invalid unconfirmed transactions created by us.
Then there are the really tricky issues. Wallet bugs created by the developers, stalled blockchains due to spikes in difficulty. As well as blockchains with few to no connectable peers. These can be very time consuming and we are very cautious about accepting any chain as valid. Anyone can mine their own chain on a coin with little to no network. Mine by themselves with no competition and send up their nodes as the valid chain. If we were to update anyone mining the real chain would have the transactions invalidated. if we reverted back to the real chain we would be out any coins deposited by the malicious miner. We need to be sure there are not multiple chains before opening up withdrawals or deposits.
As you can see there are a myriad of reasons why Cryptsy has the ongoing maintenance problem. With hundreds of chains (some of which are completely abandoned by developers) it becomes one hell of a chore to doctor all the problems a chain can face.
The staff at Cryptsy have a really good grasp on why the problem is happening it would be nice to see some more efforts into solving it. Perhaps increase the wallet staff. The only problem then is, how many people would you trust working on wallets? For each person you grant access to becomes one more avenue for attack. So are they trading customer complaints for security then? What do you think? How would you make it better with out sacrificing security.