By Somnath Mishra and Susmit Sil
There is a lot of excitement around Blockchain technology these days as what was once dubbed as a maverick technology without a central authority is being adapted to benefit the mainstream businesses. There are a number of supporting technology elements that need to come together precisely to make this emerging technology quickly deliver business value. The technical skills and experience of the technical team also plays a decisive role in an implementation. The success of a typical implementation is likely to be a function of all these variables and hence, is likely to be unpredictable. A comprehensive business-ready Blockchain Reference Architecture offering along with pre-assembled Blockchain components from Coforge ensures unconditional success of a standards-based Blockchain implementation with minimal effort. With the reference architecture in hand, development teams can design and develop solutions to specific business problems without having to reinvent the wheel or losing time in experimentation.
There are several popular Blockchain development platforms such as Hyperledger Fabric, R3 Corda and Ethereum. As Blockchain Platform standards are evolving, the technology keeps growing and changing, the development teams can find it difficult to be on top of the latest features without dedicated resources. In such a development framework, it does take their time away from specific business challenges that they are trying to address with Blockchain. In addition, they may come up with different solutions each time with potentially sub-optimal solutions.
Though such challenges are to be expected with any emerging technology, they are more pronounced with Blockchain because of its unique features such as open source development model, distributed computing platform and complete lack of central oversight.
“A Blockchain, originally block chain, is a growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data. By design, a Blockchain is resistant to modification of the data. It is an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way. For use as a distributed ledger, a Blockchain is typically managed by a peer-to-peer network collectively adhering to a protocol for inter-node communication and validating new blocks. Once recorded, the data in any given block cannot be altered retroactively without alteration of all subsequent blocks, which requires consensus of the network majority.”
Figure 1: Archetype of a Blockchain network implementation
The above diagram illustrates the archetype of a Blockchain network-based system.
As can be imagined, developing a distributed system using Blockchain network, DApps, Integrations with Enterprise systems, Oraclize services, and off-chain database to implement enterprise features like security, role-based access, faster time-to-market and micro-services-based architecture becomes a herculean task for the development team. The development teams tend to get bogged down with ensuring a functional implementation of all the plumbing and as a result, are often not able to focus on the actual business problem.
A solution based on well-designed Blockchain reference architecture can alleviate the typical development and implementation challenges that technical teams face in implementing Blockchain. When the development platform is derived from the reference architecture, it can ensure a standards-based Blockchain implementation quickly and successfully. The reference architecture can also help organizations and customers in reducing the overall effort for Blockchain implementation through its ease of integration, accelerated time-to-market and faster development and hence, iron out the overall Blockchain technology adoption process.
The overarching guiding principles of the Blockchain reference architecture from Coforge are to:
Figure 2: Blockchain Reference Architecture from Coforge
The reference architecture as outlined in the above diagram defines the various service components involved in enabling a complete Blockchain enablement platform. As the reference architecture framework and its reusable components and services are elaborated further, it should be noted that the framework is designed and developed to reduce the overall development effort needed for developing a robust Blockchain solution.
Figure 3: Components of the Blockchain Reference Architecture
The various technologies used to develop the accompanying platform for the Blockchain reference architecture are detailed below. The following general guidelines should be kept in mind as one goes through the technical overview of the various foundational technologies:
API Gateway
API Gateway is the gateway to all the services provided by this platform. The services are exposed as REST interfaces and are published on the API Gateway. It is implemented using Spring Boot Netflix Zuul library. The API Gateway provides:
Service Discovery
Service Discovery allows the platform services to register themselves dynamically and keep their state constantly updated. It also provides the feature to locate them based on their updated state. API gateway is integrated with the service discovery to route incoming calls to the final endpoints for all the services. It is implemented using Spring Boot Netflix Eureka service discovery framework.
On-boarding service
The on-boarding service helps in getting multiple organizations on to the Blockchain platform. The following features are supported:
Configuration Service
The configuration service maintains all the configurations required by the system. It primarily supports:
The security services provide the necessary features to authenticate & authorize any user or request.
Authentication Service
The authentication service manages authentication for the platform. It comprises adapter implementations for various supported authentication protocols. It supports the following authentication types:
Access Service
The access service provides access management for the entire platform. Its features are:
This service is integrated with the API gateway to intercept platform-specific service requests and verify their access privileges.
The Asset service is a specific implementation under Business Services and has been implemented as a generic service that provides the required asset management features. Every Blockchain implementation manages one or more asset types and these assets could be physical or liquid. The Asset service would allow management of all these assets and their attributes. The following features are supported:
The signatures of this service are kept generic so that any type of asset can be handled without requiring any service or signature change.
Transaction Services
This set of services aid transaction management on the Blockchain platform. Following services come under its umbrella:
Notification Service
The notification service helps track notifications based on the operations performed on the assets maintained on the Blockchain and accordingly sends the notifications. It provides the implementations to send notifications in the form of SMS, Email and by using messaging queues. It also facilitates to send push notifications to mobile applications.
Search Service
The search service provides the capability to perform indexing on the data being stored on the Blockchain. Based on the generated indexes, it facilitates to perform search and fetch the content from the Blockchain platform.
Cache Service
The cache service provides the capability to cache the data which is continuously referred by various services of the platform. This helps to speed up many of the operations of the platform.
The integration services facilitate the integration of the Blockchain-based system with external platforms used to share data with and to pull data from. It provides messaging queues and Oraclize services that can be integrated with external systems:
As the Blockchain reference architecture is implemented in the development platform, it is recommended that the organization follow the methodology below before enabling their specific Blockchain implementation:
Blockchain is a unique technology conceived as an alternative to what is considered mainstream. It has now matured to a point that its unique capabilities have become extremely attractive to mainstream businesses. Governments around the world are grappling with how to ‘regulate’ it as it was not designed with governance in mind. Technical teams trying to adapt Blockchain need to acquire the expertise in various unique supporting technologies around it. The technical intricacies can easily consume the bandwidth of the technical teams. The Blockchain reference architecture with pre-assembled components designed and delivered by Coforge is production-ready with enterprise-grade capabilities. With its easier adaptability and faster development capability, the reference architecture fills a critical gap in expertise while enabling the business organizations and their technical teams to focus more on their business use cases. It will enable a consistent standards-based solution and help the organizations accelerate their Blockchain adoption journey by driving solutions to the market quickly, cost-effectively and successfully.