Based on a peer-to-peer (P2P) topology, blockchain is a distributed ledger technology (DLT). This technology allows data to be stored globally on thousands of servers, with any network user being able to see all the entries that appear at any time. This makes it nearly impossible to gain control of the network.
Blockchain aims to provide transparent transactions for companies, including the ability to create secure networks and real-time communications with partners around the world.
The process of installing and setting up nodes is quite laborious and time-consuming, though, which paved the way to node providers, companies that provide services to other startups or businesses looking to use the blockchain.
In our work at GetBlock since 2019, we have seen various companies that have chosen blockchain as the direction of their business development turn to specialized blockchain service providers to set up nodes.
Blockchain providers offer nodes to enterprises and individual developers as a tool that helps them build decentralized applications faster, so they don’t need to spend engineering time maintaining and managing nodes themselves.
A blockchain node is an open-source, cross-platform runtime that allows developers to create various services. The P2P protocol allows nodes to communicate with each other within the network and transfer information about transactions and new blocks.
Network nodes are responsible for the correctness and reliability of storing the entered data in the distributed ledger. Each node can store a complete copy of the distributed ledger. Thanks to the blockchain nodes, any user can access the data and can view all transactions conducted or stored on the network.
Launching a network node used to be practically the only way to connect to the blockchain. Each new node contributes to the decentralization of the blockchain network, shortening the transaction time, and reducing fees.
By setting up your node, you receive a small income from the transactions that go through your channels.
Nodes participate in consensus, share information about transactions and the number of funds, confirm transactions and store copies of confirmations, participate in the building of new blocks in the chain, for which they receive a reward.
A business using nodes is built on receiving commissions for transfers, purchase/sale of cryptocurrency assets on the exchange.
To deploy a full node, a number of requirements must be taken into account. If earlier it was possible to launch a node on weak equipment, now, when blockchains have grown into popular networks, memory and processor power are a decisive factor in the successful deployment of a node.
Before starting to deploy a node, you need to clarify the minimum hardware requirements. They may differ for each of the currently existing cryptocoins. For example, the minimum requirements for installing a Bitcoin node are:
Running your own Ethereum node requires system administrator skills. Synchronization of an Ethereum node is possible in three modes: fast, full, and light. By default, fast is used. In this mode, there is no download of transaction history, wallet balances, smart contract codes.
The most expensive is full mode as it requires powerful hardware: 16 Gb of RAM and a capacious SSD disk. Synchronization of the Ethereum archive node with tracing can take several weeks, and even then, on an SSD disk. In case of an error in the client/software version for a node, it is necessary to re-synchronize the node from scratch. This can be an expensive process. You should also take care of the security of your site, which will require cybersecurity skills.
If you start synchronization from the HDD (hard disk), the node may not "sync" due to the difference between the speed of blockchain creation (as a rule, it is higher) and the speed of writing to disk. Both the speed of the network connection and the power of the equipment are important.
The Ethereum light node synchronization mode has the most complaints. Errors often occur, although this mode is one of the most balanced: fast synchronization, less resource use, wallet balances, and smart contracts are pulled up.
At the time of writing, the Bitcoin network is supported by over 11 thousand nodes. Most of them are deployed in North America and Western Europe. There are 6447 active Ethereum nodes, according to the statistics of 10 countries with the highest number of nodes.
You can connect a node either to the main network or run it on a test network for any of your purposes: testing, development.
The standard Ethereum node runs right in the console by default. It runs as a background process by writing service in the system or starting a node on the screen. You should carefully monitor in which mode the node is started. If the node is run in test mode, then you will not be able to track transactions.
To install a Bitcoin node, you need to create a folder to store blockchain data somewhere in your filesystem. To sync the full bitcoin blockchain, 380 GB is required today.
The process can take a long time. Hardware problems can also be detected, and an interrupted download will resume from the moment it was interrupted. After a successful copy, the client starts the blockchain synchronization process. Further, to start the node, you need to allow an incoming connection through port 8333 in your firewall.
The next step is to check if the node is working. To do this, send a request to the node with any information about the service, or request data from the blockchain.
You will also want to monitor the node, for which you can use a standard service availability check on the TCP port. If the node crashes, you will have to restart it manually.
Problems you may face when deploying a node yourself:
As a summary, launching a full node on your own requires you: financial costs for purchasing equipment complying with that node requirements, ensuring uninterrupted Internet connection, and the ability to use the command line.
As we have already found out, you can install the node yourself, only lack of experience and technical difficulties can significantly complicate this task.
To resolve technical issues, there are blockchain-as-a-service companies that manage all the necessary tasks and activities to keep the blockchain infrastructure operational. The node provider deploys the core resources and uses the necessary technologies and infrastructure to set up and maintain the nodes connected to the blockchain.
Based on the needs of your business, the provider can provide access to the networks of Bitcoin, Ethereum, Monero, Litecoin, and others. The provider assumes responsibility for all actions related to the node.
For the client, the node provider is a means of entering and exiting the blockchain at any time.
By using the services of blockchain providers, you can focus on your core business and strategies, trusting professionals to manage the blockchain infrastructure and its performance.
On-premises blockchain may be much more expensive than cloud offerings.
In the first case, the high cost is due to:
With such resource costs, the cost of the service can be quite high at the initial stage.
The actual costs of using cloud solutions depend on additional factors:
For those interested in blockchain and considering the option of developing their business using decentralized distributed ledger technology, the following is a list of 5 popular node providers that offer access to the nodes of the most popular cryptocurrencies:
You choose the provider and the required node, and the supplier company will carry out all the settings and installation.
In the following section we will show how you typically interact with a Blockchain-as-a-Service provider at the API level by taking the stack we developed at GetBlock as a reference.
If you have been integrating services with crypto exchanges at least once, tried to deploy a Bitcoin or Ethereum node, or set up a multicurrency wallet yourself, then you probably know all the complexities of these processes.
Using the services of the GetBlock company, you get the opportunity to use a ready-made service without thinking about manual configuration and constant maintenance of the relevance of the data. The service is responsible for handling any hardware issues, synchronization, and interoperability across multiple nodes.
GetBlock solves many of these problems by providing API access to most of the popular cryptocurrencies. APIs add efficiency to business models by streamlining and simplifying the developer's work, giving them flexibility and new perspectives. You don't need to think about your host and its network connectivity. The service provides the smooth operation and maintenance you need so you can fully focus on your business.
Information on node endpoints and supported API methods can be found in Documentation provided by the service. At this level, GetBlock uses several popular methods: REST, JSON-RPC, and WebSockets.
Rate limits, the number of API calls an app or user can make within a given time period, are set to a minimum of 10 requests/second. The limits can be exceeded due to overall usage (autoscaling).
Availability for each node is displayed in real-time on the Nodes page of the website (later on, availability will be displayed on the node specification pages provided for each node, for example, BTC).
To start using the platform, a user has to register an account and receive an API key – a unique identifier that authenticates requests associated with the project. This API key will be displayed on the dashboard together with the statistics such as available requests, bandwidth usage, and most common API methods:
For example, if you are interacting with the Ethereum data, you can make a JSON-RPC request over HTTP. To send JSON RPC over HTTP, it is required to send the request using POST to URL eth.getblock.io with the headers Content-Type:application/json and x-api-key:your-api-key, and also, the request body.
Here is an example of retrieving the last block number:
Benefits of using a node service provider versus running your own node through the example of GetBlock:
In this article, we have reviewed the concept of a blockchain node, the problems a developer might face while deploying a node, and the working principle of node service providers. We found that developers don’t need to use complex software to integrate the blockchain into their products, maintain wallets, or download terabytes of raw blockchain information as there is an alternative.
Even if you are a novice coder who has no practical experience in creating blockchain-related programs, you will be able to easily apply APIs in their line of business – all you need to do is to choose a blockchain API provider. An account on GetBlock or other Blockchain-as-a-Service provider can become an effective tool for obtaining analytics of your applications on the blockchain through the nodes serviced by the platform.