Since September 2016 I’ve been working on an application development framework for the Hyperledger Fabric distributed ledger technology (blockchain). I’ve been fortunate enough to be part of an amazing team that has moved mountains and performed several miracles over the past few months!
The framework, called Fabric Composer, makes it radically simpler to define business networks that run on Hyperledger Fabric.
The problem we set out of solve is multi-faceted:
- How can an economic business network of assets, traded by participants via transactions be modeled?
- How can the programming model be elevated from a key-value store to a higher level of abstraction that makes solution development faster and less error prone?
- How can the business network definition be deployed and operated on Hyperledger Fabric?
- How can existing enterprise systems be integrated with the business network
- How can new applications and user interfaces be created to interact with the business network?
I believe the solution we have developed is not only elegant in terms of capturing the domain model for the business network, but also leverages existing technology and best practices for application development, continuous integration and enterprise integration. The whole exceeds the sum of the parts, and creates a framework that allows a developer (often working alongside a business analyst) to create a full-fledged blockchain application in a matter of days.
We want to create a vibrant development and services ecosystem around Fabric Composer, so we have chosen to Open Source the technology. All the code is available on GitHub today, including documentation and samples, and we encourage anyone building blockchain solutions on Hyperledger Fabric v0.6.x to give it a try. Find a bug? Send us a pull request! What to contribute? Request committer access!
I shall follow up in more detail on the features of Fabric Composer, but here are some highlights:
- Use a domain specific language to define the data model in terms of assets, participant, transactions and their relationships
- Write transaction processor functions (“chaincode”) using ES5 Javascript functions. The functions are run on the blockchain and may update the state of assets in asset registries.
- Publish domain models or networks to the npm registry for reuse across networks or in applications
- Test logic on a full Hyperledger Fabric, in an embedded Node.js runtime (no Fabric required!) or even on a web page. This makes writing unit and system tests easy and integrates smoothly with existing CI tools.
- Easily move business network archives from test networks, to staging networks to production networks
- Expose the business network via the Loopback framework, dynamically creating integration and a REST APIs for the assets in the network
We are actively looking for a diverse set of contributors to help us make Fabric Composer even better. Please give the Getting Started guide a try, submit pull requests with corrections, and post your questions to StackOverflow.
We are just getting started, and will be posting lots more videos, samples and tutorials over the coming weeks.
Leave a Reply