Qortal 3.0 and beyond – What is happening now? April 2022

Hello Qortians!

 

It has been a while since my last blog post, so I figured it would be a good time to give a more dynamic picture of the current development of the project overall. There is a LOT going on right now, and since our releases have been less frequently needed, I didn’t want people thinking that development had slowed in any way. In fact, it’s quite the opposite.

Qortal Core version 3.2.4 

In the next release of the Qortal Core, we will see multiple changes, including:

  • Only sync with peers on the same or greater height – this should hopefully be a big improvement to syncing
  • Fixes for some QDN issues
  • Name registration fee reduction – the new fee will be 1.25 QORT.
  • Q-Chat difficulty reduction – this is for new users thinking they’re having issues when they aren’t. Reducing the mempow for 0 balance accounts.
  • Add member counts to group APIs – for ease of use checking number of users in a group on the chain.
  • Don’t send PRESENCE updates if not synced – to prevent orders being listed that are not actually backed by an active node.
  • Performance improvements – to help with overall performance on all systems.
  • Translation updates – support for multiple new languages on UI side.

The information below will be AFTER 3.2.4 and beyond… just giving a bit of a ‘road map’ for the Qortal Core development.

 

EPC fixes

This is a MASSIVE new networking rework to the Qortal Core, this will not only improve massively the networking and data usage, it also fixes a long-standing bug where CPU usage would be increased over time. Many of the changes I will mention below, are reliant upon the EPC fixes. This is a dramatic enhancement to the core of Qortal. EPC is essentially the new engine that coordinates the networking threads. This is a huge overall improvement.

QDN Direct Connections

This will allow direct connections for data as opposed to relying upon relay nodes. Once we have the EPC fixes, this is ready to go.

Bandwidth Reduction

Again relies upon EPC fixes, but our brilliant developers have come up with some methods to hugely reduce network traffic.  These improvements will be rolled out bit-by-bit over the next several releases.

Pirate Chain Support

This is a BIG one that we’ve been talking about for quite some time, and will certainly make the ARRR community happy. We are now directly working on this.

  • We have already built out the ARRR Equivalent of the ‘electrum network’ for submitting transactions to the ARRR network. This allows for the majority of our TradeBot functionality.
  • We are currently awaiting some wallet fixes from the ARRR team, once that has been taken care of we should be able to finish the Pirate Chain implementation.
  • This will give Qortal a fully functional ARRR wallet, and ARRR/QORT Cross-Chain trades in the Trade Portal. 🙂

DigiByte support

This is mostly complete now, development team is just finishing adding TradeBot support. This will allow both DGB wallet and DGB/QORT Trades on the Trade Portal.

RavenCoin support

This is less developed so far than DGB, but it isn’t too far behind.

MemPOW for minting signatures and Online Accounts

This is fully developed, just needs more testing, and will need to be rolled out SLOWLY over the next multiple releases to be sure it doesn’t cause any unwanted negatives. This is an EXTREMELY high risk addition, so we will need to be VERY careful with the roll-out of this one.

Lite Nodes

I am personally quite happy about this addition. This will allow full mobile compatibility to be built out very easily for Qortal. Lite nodes are nodes that do not need to synchronize the entire chain, but instead communicate to their connected full nodes for the chain information necessary. At the moment we already have lite nodes with the following functionality:

  • Developed and tested for wallet, chat, and name registration transactions.
  • Does not yet support showing registered names in chat, a bit more development is required for that.
  • This can probably be merged into one of the upcoming releases within the next couple weeks.

Massive Q-Chat improvements

  • Q-Chat messages are getting their own local database for messages. This will allow setting how long you would like to keep your Q-Chat messages on each node.
  • Q-Chat messages are being turned into their own protocol instead of using unconfirmed transactions, this will be a DRAMATIC increase in speed, and message propagation.
  • Q-Chat UI is getting MASSIVE reworking done, to include all of the functionality seen in centralized messaging services like Telegram and Discord.
  • This is going to be taking place in the very near future, and we are very excited for this opportunity to become one of the best decentralized messengers and give the world TRUE freedom of speech back.

Self-Sponsorship Algorithm

All of the backend data needed for the algorithm has been discussed, and the work on the algo itself will begin shortly. The days of self-sponsorship are coming to an end very soon. Be warned those who still attempt self-sponsorship.

 

That’s it for this blog post, hopefully everyone found this information as interesting and exciting as I did. Until next time!

– crowetic

 

 

Qortal 2.0 is Here!

(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!

 

Qortal Auto-Bootstrapping

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!