(version 2.0 core)
Qortal 2.0 – ‘Infinite’ Scalability
That’s right Qortians! We have launched Qortal version 2.0 (Core)! In version 2.0 there are MANY new enhancements, mainly focused around ease-of-use and scalability. To anyone who has been around for a while, they might have noticed that the Qortal database (the blockchain) grew very quickly, and was at some points over 60 GB already. This was obviously a concern towards the long-term scalability of the project and how many nodes would continue to be able to hold the entire blockchain. This spurred the development team into action surrounding the growth of the database.
What ended up being done is two-fold:
- The database was completely re-structured to allow for full nodes to store most of the ‘older’ block data in ‘archive’ files. This allowed full nodes to become ~10GB total size, instead of anywhere from 25-60+ GB and growing. The 2.0 and beyond full nodes will only require ~10GB of space, and will grow much more slowly.
- Version 2.0 also introduced a new portion of the database that is made to support the ‘Sleeping ATs’ for the Trade Portal SmartContracts. What this will allow is for the ATs (the SmartContracts that allow the trades on the Trade Portal to take place) to ‘sleep’ until they are messaged (during the trade initiation phase). This takes the processing that was previously required EVERY BLOCK, and makes it so that processing is only required for about 3 blocks, during the time a trade is ACTIVE only. This is MASSIVE for performance, scalability, and data use by the blockchain itself.
This ‘sleeping AT’ addition will come shortly after version 2.0 (in 2.1+) and will dramatically reduce both the processing and data storage required by the Trade Portal’s SmartContracts. This is a huge scalability improvement (along with the massive improvements in the database making it smaller and more performant). These two changes alone will give Qortal essentially ‘unlimited’ scalability for the future in terms of both performance of processing transactions and AT information on the chain, and growth of the blockchain overall.
Qortal ‘Top-Only Sync’ Nodes
Version 2.0 also introduces a completely new node type, called ‘top-only’. This is essentially still a ‘full node’ but it is much more ‘trimmed’ or ‘pruned’ making it only ~700MB in total size! With this node type, any computer can run a fully functional Qortal node without worrying about needing even the lower amount of space in the new Qortal full nodes. These types of nodes could potentially open the door for a ‘mobile node’ that would run on phones as well, and still provide every bit of functionality in Qortal.
Bootstrapping is still required for this node type, but the bootstrap is much smaller, and the db is much smaller when bootstrapping is completed (literally only ~700MB total size). However, and leading me to the next topic, bootstrapping is now MUCH simpler in 2.0 as well!
Any Qortian who was familiar with the bootstrapping process in versions below 2.0, will be VERY happy about this new addition. From version 2.0 on, bootstrapping will no longer be a ‘manual’ process. That’s right, bootstrapping will take place completely automatically (this can be disabled with “bootstrap: false” in settings.json). This applies to BOTH node types, full node (which is the default if you do not set “topOnly: true” in settings.json) and top-only nodes.
Automatically downloading a bootstrap (which is created now with a bootstrap API call, so there can be no ‘bad’ bootstraps created) from one of the 3 (with more on the way) official bootstrap hosting locations configured in the core. When version 3.0 and Qortal Data goes live, these bootstraps will be stored there, so there will be ZERO centralization in the process. The bootstrap files are fully capable of being stored on Qortal Data, and we will move the location to Qortal Data as soon as version 3.0 and data goes live.
Qortal Auto-Backup and Restore
Another great addition to version 2.0 is the automatic backup and restore of trade states and minting accounts. Nodes that already have a database and update to version 2.0 will require a modification of that database to make it compatible with the new archive storage mode. When you start your node with a 1.7 or earlier database, the core will automatically convert that database to the new style for you, this process will take 60-120+ minutes, and there are notifications on the Qortal ‘splash screen’ when Qortal starts (as well as in the logs).
Once your database has been converted, all of the previous information backed up (version 1.6+ automatically backed up trade states, and 2.0 does both trade states and minting accounts) will be re-imported to the new db automatically. If a successful db conversion takes place, no manual re-applying of the minting key or trade states backup will be required, and everything will automatically return to its previous state.
If for some reason a user isn’t successful with their 1.7 db conversion, they may simply remove their db folder, and 2.0 will automatically bootstrap, then if there was a trade state backup from 1.6 or 1.7, it will re-import those trade states. Version 1.6+ automatically backed up trade states into TradeStates.json in the ‘qortal-backup’ folder. From version 2.0 and beyond, both the trade states AND minting accounts will automatically backup and re-import to the node (even when there is no db). So all a user will have to do if they have any issues whatsoever, is delete their db folder and the core will auto-bootstrap, and auto-import their backups, leaving them exactly where they were prior.
Ready For the Future
All of these additions in 2.0 and the ones between 2.0 and 3.0 are all preparing for the release of Qortal Data in version 3.0. From 2.0 and beyond there will no longer be worries about the db size and scalability of the platform, and no longer will people have to do anything ‘manual’ in order to get their node running. These enhancements are MASSIVE in terms of attaining new users and getting their nodes running easily.
There will also be many new changes in the next UI version that have been requested, and will make things simpler. Overall this version is MASSIVE for Qortal and the growth of the platform, we are VERY excited about this version and beyond. Version 3.0 will introduce the first iteration of Qortal Data, public data allowing for Web hosting, application hosting, and much more to be accomplished on Qortal’s custom data storage network. This will be the true beginning of Qortal’s end goals, to rebuild the internet entirely.
We are extremely happy with the advancements in 2.0, and from here to 3.0 Qortal will have nearly everything on its existing roadmap! Here’s to the future of Qortal and the new decentralized secure internet!