Qortal Project

The future of blockchain platforms

User Tools

Site Tools


Sidebar

Qortal Project Wiki

Important Notices

Introduction

Project Model

Minting

Communications

Trade Portal

Qortal Hosting (QDN)

Voting System

AT System

Hardware

Frequently Asked Questions (FAQ)

How-To Guides

Node Setup Guides

Third-Party Services

node_types

Node Types

Full Nodes

There are multiple ‘types’ of nodes on the Qortal Network. The first and ‘main’ node type is called a ‘full node’. A full node is a node that stores the entire blockchain database. A full node is the recommended node type for Minters, as they are meant to be the nodes that ‘power and support’ network, and a full node is the best type of node to accomplish that. However, given that Qortal is meant to be able to be run by anyone and that not everyone has a substantial amount of storage space on which to hold the entirety of the blockchain forever, there is another node type in development called ‘lite nodes’.

The concern over scalability in regard to the size of the Qortal blockchain is what spurred the development of the lite node type, but it also spurred the development of a new method for blockchain storage on full nodes.

Full nodes in archive version 2.0 will have the option of ‘flat file offloading’ for their blockchain database files. What this means is that a full node can choose to store the majority of their ‘older data’ in the blockchain in ‘flat files’ and reduce the size of their full node database considerably. This type of database storage does not impact the full node in regard to retaining all of the data from every block since Genesis. It will still allow calls for older data to be made without the need for the entire database to be in its default SQL-compatible format.

With the release of version 2.0, Qortal has essentially ‘unlimited’ scalability for its blockchain without users having to worry about needing more storage space to continue running their Qortal node.

Lite Nodes

Lite nodes will not store the blockchain at all, but instead, will utilize connected full node peers to facilitate the calls to the blockchain they need to make. With this type of node, minting will not be possible. However, all of the other functionality within Qortal will be. This type of node would be perfect for something like a fully decentralized mobile app making use of any service on Qortal. It could be used to build a decentralized Trade Portal phone app, a full local multi-wallet cross-chain trading enabled app, or simply a fully featured Qortal app with multi-plugin capability (just like the existing Qortal UI). All of this can be done without the need to store the database at all, thus taking very minimal storage space and not requiring the user to synchronize the blockchain at all. Another use case for lite nodes would be bundling a lite node with the Qortal UI, so that users can simply install the UI and make use of everything on the Qortal Network with no need to synchronize the chain or store the blockchain database at all. In order for lite nodes to function as intended, it is essential that the base level of the Qortal Network consist of a majority of full nodes, which is why the development of lite nodes is planned for a good while after the release of the other node types.

Data Nodes

Data nodes in Qortal are a Qortal node with an added feature giving that node the ability to store and host data for access by others. Initially, the only type of data storage that is possible on Qortal, is ‘public data’. Public data is any data that is meant to be accessed by others (website, blog, social media, files for download, etc). Public data storage will utilize a few different concepts to carry out its mission successfully.

NOTE: By default, all nodes are also data nodes, and they have relay mode enabled. Users can change their settings to disable relay mode, or set qdnEnabled to false to disable Qortal Data Network hosting completely. There is also a setting to change the storage policy to host ALL data, instead of just content that was viewed or followed, as detailed below. For information on changing those settings, please see the How To Edit Qortal Core Settings page.

The first concept to implement is that the only data to be hosted on a user’s data node, is the data that the user of the node viewed or follows. A data node user who views a website or anything hosted on a data namespace will become a ‘peer’ for that data (hosting a copy of it on their data node as well). This system functions very similarly to that of the ‘torrent’ network, wherein users are ‘peers’ for data they have downloaded unless they choose to remove that data and others then download the data from them and become a peer for it once it is completed.

Data nodes only the data they choose to have on their node. If the data node views a website, then after viewing it decides they do NOT want to be a peer for that website (they don’t want to host a redundant copy of that website for the website creator), they can subsequently delete the website from their data node, and will no longer hold the data nor continue being a peer for others to download that data. Full individual control over every bit of the data on a user’s node is absolutely essential to Qortal’s functionality. Individual sovereignty over EVERYTHING in Qortal is the end goal. Therefore full control over the data that is stored on the user’s data node is required. There is no data on any user’s node that the user is not aware of.

The concept of ‘following’ has been used in many social media platforms for years. This concept is that of essentially ‘paying attention’ to a certain user and what they do. Following in terms of Qortal data storage will be similar, but slightly different. In Qortal, a data node will have the option to ‘follow’ a content creator’s namespace. If the data node chooses to become a follower of that namespace, they will subsequently automatically become a peer for the data that namespace puts up. If a data node likes the content of a certain website, following that website would bolster the availability of the website to others automatically. Becoming another redundant copy of that website’s data for the creator is a substantial way to support the creator.

Following also opens up many other unique opportunities, such as tracking the most popular websites on Qortal. The websites with the data node followers are most likely also the most popular websites on Qortal. The most popular websites will also have hundreds or thousands of redundant copies of their content so that there is no worry about loss of that content. Each data node follower is a completely redundant copy of their website. Each data node follower also increases the download speed that each subsequent view of the website attains. When viewing a website on Qortal, a user downloads the content from as many peers as possible at the same time, saving the information to their local computer, then accessing it from there. This is true decentralization and it is also a system that will allow much FASTER loading of websites and downloading of files than the traditional Internet as there will be multiple download locations all downloading at the same time (as opposed to a single centralized server supplying the content to multiple users). Qortal will make websites not only redundant, faster, and fully decentralized, but also completely unable to be ‘hacked’ in the traditional sense.

Data storage on Qortal is not only meant to provide redundant copies of the data, improve speeds of the downloads, and decentralize the content. Qortal data will also utilize blockchain technology to SECURE the content beyond any security methods that exist on the traditional Internet. To a degree that the files are literally only able to be modified by the account that put them there. Making websites hosted on Qortal ‘unhackable’ in the traditional sense. There is literally no way for any user other than the creator who holds the private keys for the account that owns the namespace to modify the data.

Every bit of data on Qortal’s data network will be ‘hashed’ (using a cryptographic hashing algorithm to obtain a unique string that identifies the data hasn’t been tampered with) and stored on the ‘data chain’. What this means is that the data chain will be able to keep track of every file’s hash (unique identifier) to verify the file itself without needing the entire file ON the blockchain. The project that Qortal started from back in 2014 called QORA utilized a data storage method that required the data itself to be put up onto the blockchain. When writing Qortal from scratch, the Qortal development team modified this concept to remove the data from the blockchain itself. There are multiple reasons that the data being on the blockchain is a bad idea. If the data itself is on the blockchain, then every user must hold all of the data in order to synchronize the chain. Not only that, but it simply isn’t scalable to the size that Qortal aims to be if every user has to hold the data for every website in existence. Therefore the decision was made to completely revamp the idea of QORA by removing the data from the blockchain, while allowing only the data’s hash to remain so that the chain can SECURE and VERIFY the data, but does not actually HOLD the data. This opens up a plethora of other potential use cases for data storage in Qortal that QORA did not have.

A future development in regard to data storage will be the ability for public data users to browse a ‘data market’ where data nodes with algorithmically defined ‘reputation’ scores are available to choose (and pay a fee for) hosting another redundant copy of their data. The initial iteration will not have this and will be a ‘merit only’ model, wherein users will choose to become a peer for the data they believe has more merit, and will not do so simply for monetary reward.

node_types.txt · Last modified: 11/09/2024 19:43 by magic_ink