Flow blockchain – Multi-node architecture

Aug 31, 2022by, Aswin S Kumar

Block Chain

Blockchain technology continues to prove its doubters wrong as it strives through innovative projects. Its mass adoption and wide acceptance prove the same. Recent advancements have even seen governments starting to develop on top of blockchain technologies.
However, the ever-growing adoption poses a significant challenge to the scalability of the underlying technology. Reports show that over 1 million transactions are being made on the Ethereum blockchain on a daily basis. Every blockchain network continues to update as it tries to tackle the issues possessed by this huge load of transactions.
The viability of a blockchain network depends on the solution it uses to hurdle scalability issues. The majority of projects rely on the following solutions: Sharding (Layer 1) and rollups (Layer 2). Though these solutions can handle scalability needs, they add additional complexity and challenge to the decentralization of the network.

FLOW Blockchain

Flow blockchain introduces the paradigm of pipelining, which makes it more scalable, decentralized, and secure than existing networks. Flow has specialized nodes which work together. It can be thought of as a team in an IT organization, with each individual having different responsibilities and skills.

Flow has Collection nodes that batch the incoming transactions, consensus nodes that order the batches and secure the work, execution nodes that execute the set of transactions, and verification nodes that check the work.

This forms a multi-node architecture that is highly scalable, decentralized, and secure.

 

Multi-node Architecture

The multi-node architecture of flow is based on “separation of concerns” which enables it to leverage the vertical division of labour, also referred to as pipelining.

Transactions on a flow blockchain are collected by collector nodes which organize them into batches known as collections. Collector nodes are responsible for the availability of the network. Each transaction gets stored in it until it has been incorporated into a block.

A block in Flow references a set of transactions and defines their execution order. Collections are formed into blocks by consensus nodes. They take on the subjective task of ordering transactions. These nodes are most important in regard to the security of the protocol. Another thing to note here is that running a consensus node doesn’t require huge computing resources as they only refer to the transaction IDs provided by the collector nodes. This encourages more users to run consensus nodes.

Once the transactions have been incorporated into blocks, the Execution nodes start execution of the transactions after requesting the full transaction code from the collector nodes. These nodes are core to the performance and speed of the Flow protocol and hence they require a high amount of computing resources. However, a lesser number of execution nodes is preferred as it decreases the redundancy of computation.

The presence of faulty execution nodes is a threat to the Flow protocol. Therefore their actions performed by them should be verified. Verification nodes are assigned with this task. Since execution nodes execute an ordered set of transactions defined by the consensus nodes, the outcome of execution is known. Therefore the correctness of execution can be verified with ease. On detecting a faulty execution, verification nodes initialize a slashing challenge, which results in the deduction of a certain amount of the stake from the corresponding execution node.
Once verification nodes verify the outcome generated by the execution node, the block is sealed by the consensus node.

Thus by separation of concerns, Flow blockchain and its multi-node architecture can hurdle the tackles of scalability without sacrificing decentralization and security. If you would like to know more about the above process, we are here to clear your queries, to know more click here.

Disclaimer: The opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Dexlock.