Key Takeaways
- Blockchain nodes store a complete copy of the distributed ledger and are responsible for the reliability of the stored data. Nodes are used by developers for building blockchain-based applications.
- When it comes to deployment of a full blockchain node, hardware, software and network connection must satisfy certain requirements.
- The process of running and maintaining blockchain nodes has a lot of technical issues, it’s time-consuming, and requires heavy expenses.
- Node service provider is an alternative to self-running of full blockchain nodes; it offers developer tools and infrastructure to set up and manage the nodes connected to the blockchain.
- Node service providers offer APIs for developers to create automated workflows. We briefly review GetBlock’s API as an example.
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.
What the node is for?
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.
How to deploy a node?
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:
- Your device must have the latest version of Windows, Mac OS X, or Linux.
- 500 GB or more of free disk space available with a minimum read speed of 100 MB / s.
- SSD capable of performing: 68 MB / s random write and 30.9 MB / s random read. At least 112GB capacity. At least 8 GB of random access memory (RAM)
- Broadband Internet connection with a download speed of at least 400 kilobits (50 kilobytes) per second. The connection must be unlimited with high upload limits.
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:
- Limited bandwidth: Some internet plans will charge extra for using excess bandwidth not included in the plan. Make sure you don’t have traffic restrictions before deploying your node. Additionally, the internet connection may be unstable. If the synchronization of the node with the blockchain network will be interrupted, then a restart is required.
- If site deployment occurs on your business network, it can slow down or bottleneck in normal network traffic.
- Parts of known computer viruses have been placed by a group of people on the bitcoin blockchain. It is not possible to infect your computer with such data, but some antivirus programs move them to quarantine, which makes it difficult for the bitcoin core to work. Most often this fact takes place on computers running Windows.
- A third party (hackers) might find that a new full node is up and running and try to hack it. You are entirely responsible to ensure your node is not hacked.
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.
How does a blockchain service provider work?
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:
- Initial costs (personnel, infrastructure, hardware, software, licensing, consulting, etc.).
- Operating costs (management, monitoring, etc.).
- Decommissioning (archiving, decommissioning server racks, etc.).
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:
- the number of requests to the node at a certain moment;
- the stability of the node;
- timely update of the node;
- security, etc.
Blockchain provider selection criteria
- Backend services. Make sure the proposed blockchain-enabled systems and processes are user-friendly and can be easily applied to your product.
- Support for pricing. When it comes to dedicated nodes, carefully consider pricing options, terms of service support, and post-deployment support.
- Security guarantee. Look for minor security gaps. This is very important because a minor mistake can have serious consequences.
- Previous experience in blockchain infrastructure. Pay attention to the proven track record of developing and deploying blockchain technologies in an environment similar to your business.
Blockchain providers
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:
- Infura
- GetBlock
- Alchemy
- QuikNode
- Blockdaemon
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.
GetBlock API for Developers
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.
- REST API is a regular HTTP session that is structured as a finite series of requests and responses.
- WebSocket is a method that provides bidirectional, full-duplex communication over a persistent TCP connection.
- JSON-RPC is a protocol encoded in JSON that allows you to execute some commands remotely, pass arguments to these commands and get the results back.
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:
Once the account is registered, the user can navigate to the dashboard where he can see his API key. To start interacting with the GetBlock infrastructure, it’s required to use the API key by sending a request inside the terminal or through a shell script.
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:
Once the requests are issued, the user can start monitoring the information on performance and API usage in the account through GetBlock’s Web UI as shown above.
Benefits of using a node service provider versus running your own node through the example of GetBlock:
- Adding nodes on demand, monitoring work, updating nodes as needed.
- Enterprise-grade connectivity to create and configure smart contracts, send and receive transactions, and request data from the blockchain. Using APIs such as JSON-RPC, REST and WebSockets.
- Information and statistics in real time.
- Connecting your application to the blockchain without complicated configuration.
- Reliable connection 24/7.
- Personal support from the team of experts.
- Possibility to conclude an individual SLA (Service Level Agreement) with clients depending on the needs of the business, which gives confidence in the quality of the services provided.
Summary
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.
About the Author
Deen Newman is a Project Manager at the GetBlock.io service. He has a strong interest in the blockchain and cryptocurrency, with about 5 years of experience in content writing on various portals in the IT sector. He is also extensively focused on multiple disciplines including people management, product management, social media communications, and business development.