“ Many Nodes, One Chain, One Distributed System”
With the ever-grown technological expansion in the world, businesses are coming to embrace blockchain technology.
The distributed system lies at the core of the blockchain and so blockchain is also known as a ‘Decentralized Distributed System’. A distributed system is the more widespread and complex field of study.
In this article, I will be taking a beginner’s approach to explaining distributed systems in a basic manner, and showing you how it works and how blockchain uses it while not diving deep into the details.
What are Distributed Systems?
- A group of independent nodes connected with one another in a coordinated manner in order to achieve a common result and they are structured in such a way that the group appears to be a single system to the end user.
- The nodes are programmable, asynchronous, autonomous and failure-prone.
- Every node has its own memory and processor. They have shared states and can operate concurrently.
- The nodes are connected with one another in order to offer a service, share data or simply store data ( e.g. blockchain ).
- All the nodes communicate with each other using Messages.
- All the nodes in the distributed system are capable of sending or receiving messages to each other.
Goals to be met to build an efficient distributed system are -
- Connecting users with the resources
- Transparency in hiding fact about process and resources
- Openness in offering services as per the standard rules
- Scalability
In what way can we organize our computers?
So we have two types of architecture in distributed computing:
- Client-Server Architecture
- Peer-Peer Architecture
Below, I will be briefing you with both the type of architectures along with their respective diagrams.
Client-Server Architecture
There are two main entities of this architecture,
- Server
- Clients
- This architecture forms the basis of all the services provided by the Distributed architecture which is easy to design and it can accomplish the task from a single point. (i.e. server).
- Here in this architecture, the server acts as the main centralized entity which is responsible to fulfill all the requests coming from all the clients connected to the server in the same network.
- Server and Clients communicate with each other using the Request-Response approach.
- Modern day examples of this architecture are Cloud services, IoT devices, Browsers, etc.
Server
An Entity that is responsible to offer the services to the client, server provides services like data processing, storage, deploying applications, etc.
Client
An Entity which communicates with the server in order to complete their task. They are usually connected to the server on the Internet.
Fig. Client – Server Architecture Diagram
This architecture is a good service-oriented system.
The biggest disadvantage of this architecture is that the whole system is dependent on the central point (i.e. server). If the server goes down, then the whole system stops working.
In a client-server architecture, there is tiered/layered architecture in which we can add several layers on both the client and the server side in order to accomplish the system requirements, complexity and security.
The most commonly used layered/tiered architecture is 2-tier and 3-tier architecture.
Peer-to-Peer Architecture
This architecture is like a network of interconnected computers systems in which they are able to share the information and resources.
Here, every system in the network is referred to as a node or ‘peer’.
This architecture can be used in Blockchain technology, Transportation services, E-Commerce, Education, Banking & Finance, etc.
Advantages of this architecture are,
- It can be easily configured and installed.
- All the nodes in the network are capable of sharing resource and information with others node present in the network.
- Even if any one node goes down it does not affect the whole system.
- Maintaining and building such architecture is comparatively cost effective.
Fig. Peer-Peer Architecture diagram
Blockchain technology works on the principle of P2P architecture which helps the technology to be more secure and efficient. Blockchain technology can be used in many industries but the main highlight where it is mostly used is ‘Cryptocurrencies’.
A P2P network is central when it comes to doing a transaction within a blockchain. All the nodes can transact with each other in the blockchain. Now, all the P2P networks are decentralized and that is why blockchain is also known as decentralized applications. This characteristic makes blockchain more secure and hard to hack or break into.
In P2P networks, limitations come into the picture when the size of the network grows which results in performance, security, and accessibility within the network.
Disadvantages of this network are,
- No centralized entity to manage all the network operations.
- Backup should be done on each computer within the network.
- As any node can be accessed anytime in order for that network, security is applied to each node individually.
Conclusion
Blockchain, as we know, is a decentralized system but its core is based on the P2P network which is one of the types of distributed architectures. All the transactions done among the nodes are available on each node of the network. A consensus algorithm is a general through which all the nodes in the blockchain network reach a common decision about the present state of the ledger. Here, also distributed computing is used as all the nodes communicate with their neighbor nodes in order to come to a particular decision.
Using consensus protocol many objectives such as coming to a particular decision, co-operation, and equal rights to all the nodes and their active participation in the process are accomplished. Consensus algorithms help the network to achieve reliability in the network and establish trust within the peers in the blockchain.
At last, it can be said that blockchain is just another type of distributed system which has used the concepts of a distributed system widely. All the computations taking place in the blockchain can be termed as distributed system computing.