Scaling Up The Hyperledger Fabric

Posted By : Neeraj Kumar | 30-Dec-2017

What Does Scaling-Up Means?

In the Computer Science Scaling-Up is the term of upgrading the computing power by either adding more machines to the existing computing machines pool ( taking server stacks as an example) known as Horizontal Scaling or by enhancing the computing capability of existing computing machines by adding more processing power (CPU), RAM, Storage capability or etc to them which is known as Vertical Scaling. Deciding in which way scaling needs to be done is completely dependent on the demand of the situation and the affordability.

 

Scaling-up Horizontally vs. Scaling-up Vertically

Scaling-up horizontally is more dynamic in nature so it is easy to add more machine to the existing computing machine pool and the process of adding more machine as per the requirement can be made automated too in some cases (taking Amazon AWS as an example), whereas, Scaling up the capability vertically of single machine involves downtime and it is restricted by the upper limit of that single machine.

Scaling Scenarios For Hyperledger

Scaling up the Hyperledger involves two important scenarios:

 

I). Scaling the capability of a single peer: In an existing distributed network, any peer might end up reaching the upper limit of its capability, in our concerns, it’s mostly the storage capability of that peer to hold blocks of the blockchain. After reaching the storage limit it will be impossible for that peer to hold more blocks without being scaled up to acquire more storage capacity, and that right there where we require scaling up the peer vertically.


II). Scaling the existing network by adding more organizations with its peer(s): On the other hand, at any later point of time there can be a scenario where we will be in need to add more peers to the existing support network and to do that the option we have in hand is to add organization which has its own peer(s) to the network. But why we need to add an entire organization with its peer(s) just to add a new peer? An organization in the hyperledger network is basically a Membership Service Provider (MSP) which provides an abstraction of the membership operation architecture. In this way, an MSP abstracts away all cryptographic mechanism and protocols for issuing and validating the certificate, and user authentication. Peers in the permissioned network needs a secure permissioned way of communication with each other, for adding permissioned access and hiding all cryptographic details of permissions access theses peers are stored in an organization. MSP governs the entire network and handles the identity management in the network, so for any peer to be recognized network-wide it has to come through its own MSP or Organization. This way adding more organization with peers falls under scaling the hyperledger network horizontally.

 

Fabric versions supporting scaling

Hyperledger Fabric natively supports both types of scaling of the network. The latest stable version of fabric is v 1.0.4 whereas earlier the first stable version was v0.6 and both of these versions supports scaling, but its the tools required and user friendly access of these tools that make all the difference. In the Fabric version 1.0.4, the use of these tools to read the network configurations of MSP and then modifying these configurations to add a new organization to the already live network is very time taking even for the experienced professionals. To be enabled to update the network configurations for adding more peers to the network in these versions one has to collect the configurational signatures manually which is also hard to automate.

The latest preview version of the fabric v1.1.0 is the version that supports more user-friendly access to reading and modifying these network configurations. Fabric 1.1.0-preview introduces the “peer channel signconfigtx” command for the collection of multiple signatures before submitting configuration updates. It also includes many bug fixes in the configtxlator tool those were not available in v1.0.5.

I will cover exactly how to scale the hyperledger horizontally in my next upcoming blog: “Getting hands dirty with scaling-up the hyperledger Horizontally”.

About Author

Author Image
Neeraj Kumar

Neeraj is a JAVA Developer who possesses skill set in: Data Structures, Core Java, Java Enterprise Edition (Servlets, JSP, Standard Java Beans), Spring (Spring-core, spring-MVC, spring-Data-Access, Spring-Data-JPA), Hibernate, JPA, HTML, CSS, JavaScri

Request for Proposal

Name is required

Comment is required

Sending message..