We will explain the theoretical bases of what a node and a supernode are. So that blockchain projects have created the same, how can we participate and what are their tasks within the blockchain network in which they are executed.
What is a Node?
A node in the context of the blockchain, usually refers to a computer that has downloaded the software of the cryptocurrency in question (Bitcoin, Ethereum, Monero, among others) to participate in the network between peers.
The cryptocurrency blockchain is structured as a network architecture between peers (peer-to-peer or P2P). The term peer-to-peer or P2P means that the computers that participate in the network are equal to each other. The term is not new, because making a bit of history, the first massive use of P2P networks was made by the music file sharing network, Napster.
While the Napster network was not at all complex (just a file sharing protocol), comparing it with the blockchain networks of now, its basic principles are the same. In that sense, the oldest P2P network, which most resembles the work of the current blockchains, is the SETI @ HOME network. SETI @ HOME is a computer network, created by SETI to analyze the data of radio telescopes located throughout the world, for the analysis of data from them, in the search for intelligent life in the galaxy. People can participate in this network, just downloading the software from its official website and executing it.
In this way, it is configured that in P2P networks, each computer that participates in the network receives the name of node. In the network, all nodes share the responsibility to provide network services. This is because the interconnection of the network nodes, is what allows the operation of the same.
So in this way, the term blockchain network refers to the set of nodes that execute the P2P protocol of a given blockchain. The network in its entirety orchestrates and coordinates in a completely federated, decentralized and distributed way, the actions that each user does within the network. This implies that this network of computers throughout the world constantly retransmits and transmits new transactions to each other. Each computer in this network is a node that has downloaded the complete blockchain. With this the network becomes redundant, and the work together makes it scalable with respect to its expansion.
Due to the decentralization of the blockchain, anyone can participate within them. Simply download the node software from them and execute it. Usually, the main wallets of each project allow this functionality. Initially, the network begins the pareo of the blockchain, until reaching the point of synchronization with the network. At that moment, the node begins its full operation, not only allowing and verifying transactions but also supporting an image of the global blockchain. Normally nodes can perform the following functions: routing, blockchain database, mining and wallet or purse services.
The nodes are the individual parts of the largest data structure that is a blockchain. As node owners voluntarily contribute their computing resources to store and validate transactions, they have the opportunity to charge transaction fees and earn a reward in the underlying cryptocurrency for doing so.
The processing of these transactions may require large amounts of computing and processing capacity, which means that the average capabilities of a computer are inadequate. In general, professional miners tend to invest in extremely powerful computing devices known as CPUs (central processing units) or GPUs (graphics processing units) to keep up with the demand for processing power that is required to validate transactions and, as such, earn the rewards that come with doing it.
A node can be a communication endpoint or a redistribution point of communication, linking to other nodes. Each node in the network is considered equal, however, certain nodes have different roles in the way they support the network. For example, not all nodes will store a complete copy of a chain of blocks or validate transactions.
A complete node downloads a complete copy of a chain of blocks and checks the new transactions that arise based on the consensus protocol used by that particular cryptocurrency or utility token. All nodes use the same consensus protocol to remain compatible with each other. It is the nodes in the network that confirm and validate the transactions, placing them in blocks. The nodes always come to their own conclusion about whether a transaction is valid and should be added to a block with other transactions, regardless of how other nodes act.
What are the basic tasks of a node?
When a miner or user by some mechanism of the protocol in question, tries to add a new block of transactions to the blockchain, it transmits the block to all the nodes of the network. On the basis of the legitimacy of the block (validity of the signature and transactions), the nodes can accept or reject the block. When a node accepts a new block of transactions, it saves it and stores it on the rest of the blocks it has already stored. In summary, this is what the nodes do:
They check if a block of transactions is valid and accept or reject it. Store and store transaction blocks (storing the blockchain transaction history). Transmit and extend this transaction history to other nodes that may need to be synchronized with the blockchain (they must be updated in the transaction history).
Classification of Nodes
In blockchain networks, there are traditionally three types of nodes, which provide different functions within the network. These types of nodes are:
Broadcast nodes: they only issue transactions and receive blockchain information, from a third party. They follow what dictates the greatest mining power and are known as light purses, widely used in mobile devices or simply by people who do not want to download the entire blockchain. Complete nodes: when you install a complete node software such as Bitcoin Core, in addition to having the safest wallet, you will be downloading a copy of the blockchain and you will become a node in the Bitcoin network. So you will issue your transactions, propagate the rest of the network and verify that the consensus rules are met. Mining nodes: the miners must necessarily have a copy of the chain of blocks, in addition to operating the software miner they prefer (BTCMiner, CGMiner). These nodes, in addition to mining bitcoins and therefore helping to create new blocks, also issue and propagate transactions.
How safe is a node?
The nodes can be online or offline. The online nodes are receiving, saving and transmitting all the last blocks of transactions to and from other nodes, while the nodes without connection do not. When an offline node comes back online, it will first have to catch up with the rest of the blockchain by downloading all the blocks that were added to the blockchain since the node was disconnected. This process is often called synchronization with the blockchain.
Theoretically, a complete blockchain can be executed in a single node, but as it would be stored in a single device, it would be extremely vulnerable to situations like power outages, hackers or systemic failures. The more full nodes are running in a blockchain, the better their recovery capacity in the face of such catastrophes. When the data of the blockchain is distributed in so many devices, it will be very difficult for a corrupt entity to erase all this data at once. Even if a large number of nodes suddenly fall and become inaccessible due to a global crisis, theoretically a single node can keep a whole chain of blocks operational. And even if all the nodes are disconnected, only one node with the complete blockchain history is needed to get back online and make all the data accessible again.
In addition to the security that the nodes can add to the network, for its large number. The nodes are also vulnerable to computer attacks, which may alter their functioning. For example, a pirate can violate the security of the software in question, and without altering the data of the blockchain, it can redirect the profits of said nodes to addresses different from those programmed by their owners. Stealing address attacks are the types of attacks most common to this type of software, and that is why developers recommend using updated versions of their blockchain software.
Some of these security flaws can be easily solved, using a bit of common sense towards computer security, or using software tools that create security mechanisms to isolate blockchain software from the rest of our computer systems. Among these measures can be mentioned:
Use official or developer software with a long and proven track record. Safeguard private keys, mnemonic keys, and any other privileged information of our activity in the blockchain. Use computers or electronic equipment solely and exclusively for our mining activities. Use sandboxing software to isolate software applications from the rest of our system. Use MAC (Mandatory Access Control) systems or system privileges that allow us to run our blockchain software with the minimum access permissions to our OS and other system APIs (this isolation is greater than a sandboxing).
What are the Master Nodes (Masternodes)?
The master nodes or masters, are unique characteristics of some current blockchains. Masternodes are usually much more equipped than normal nodes. In addition to validating, saving and transmitting transactions, sometimes masternodes also facilitate other events in the chain of blocks depending on their nature, such as voting events, execution of protocol operations and compliance with the laws of the block chain. correspondent. Masternodes are generally always online (24/7) and provide much more memory than normal nodes. Because the accommodation of a masternode usually requires many more resources (electricity, uptime, maintenance, storage space, memory), the accommodation in general provides a payment in the form of interest.
However, given the peculiarity of the masternodes, not everyone can run one. The power to control a masternode can be abused, and therefore requires the host to deposit a minimum (often quite large) amount of cryptocurrencies as collateral. This guarantee is taken as a hostage when the masternode host violates the rules of the block chain. The interest rate received by a masternode host is calculated on your security deposit. Of this money retained, depends the gain of the owner of the masternode, which is measured by a percentage of all transactions and operations handled by the set of masternodes in question. Projects such as DASH and Ethereum have the use and creation of masternodes in their structure.
Also published on Medium.