Is a cryptocurrency for the actively developed decentralized private cloud data storage service Sia
A decentralized cloud storage SiaCoin has reported on some withdrawal issues recently.
Now, the company unveils the details of the problem in its blog.
We just published a post about the withdrawal issues, how we responded, and what we are doing to scale the network. https://t.co/fCsnJR7q5W
— Sia Tech (@SiaTechHQ) 13 июня 2017 г.
Distributed database that is used to maintain a continuously growing list of records, called blocks
According to the report, the wallet issues were caused by a major spike in transaction volume on the Sia blockchain.
As SiaСoin entered May with a market cap of ~$30M, the things grew fast and quickly increased to over $400M by early June. That's why when the users transferred their coins out of exchanges, and became hosts and renters on the Sia network, the number of transactions grew significantly as well. As a result, the transaction pool, at 2 MB in size, occasionally filled up at peak times. If the pool is full, new transactions get thrown away. Since miners pick transactions from the pool to form blocks, any transaction that is not included in the pool will not be added to the Sia blockchain.
So, as users requested withdrawals from Poloniex and Bittrex, the exchanges broadcasted the transactions to the network — but didn’t check to make sure they actually were added to the blockchain. The transactions were marked as complete as soon as they were broadcasted. This caused a lot of confusion, since users with completed transactions were not seeing their coins appearing in their wallets, reports Sia team.
What was done
- Add support for getting and sending raw transactions
Allows exchanges to grab a raw transaction associated with an ID and re-broadcast it to the network.
- Add logging to the wallet
Improve logging so that exchanges can more easily know if a transaction confirmed.
- Try reverted transactions in tpool Update()
Every reverted transaction will now be retried to be added in the pool. Long-term upgrade for transaction pool to make reorgs less disruptive.
- Add logging for failed transaction sends
Further improved logging.
- Prune unconfirmed transactions older than 12 blocks from the tpool
Allows transaction pool to naturally clear of glut, preventing obtuse network fragmentation.
- Add API support for send-to-many
Allows exchanges to process 25x the withdrawals per hour, using 1/3 the blockchain space per withdrawal.
- Add market based transaction accepting and fee estimation
Add a fee market to allow high priority transactions to go through.
- Tpool block estimation
Help drive intelligent fee estimation.
- Optimize Block.MerkleRoot by replacing tree.PushObject calls
Performance optimization to safely allow for a bigger transaction pool.
- Add /tpool/fee endpoint
Allow visibility into fee market prices.
- Add support for user-set txn fees
Allow users to choose their own fees.
- Optimize Transaction.ID() by adding direct calls to MarshalSia
Optimization to allow safe larger transaction pool.
- New Block Fee Estimation Algo
More optimal fee estimation.
- Switch to diff-based updates for tpool
Scalability upgrade with stress tests to allow safe larger transaction pool.