Hyperledger Fabric (HLF) is a modular and extensible permissioned blockchain platform released to open-source and hosted by the Linux Foundation. The platform's design exhibits principles required by enterprise grade business applications like supply-chains, financial transactions, asset management, food safety, and many more. For that end HLF introduces several innovations, two of which are smart contracts in general purpose languages (chaincode in HLF), and flexible endorsement policies, which govern whether a transaction is considered valid. Typical blockchain applications are comprised of two tiers: the first tier focuses on the modelling of the data schema and embedding of business rules into the blockchain by means of smart contracts (chaincode) and endorsment policies; and the second tier uses the SDK (Software Development Kit) provided by HLF to implement client side application logic. However there is a gap between the two tiers that hinders the rapid adoption of changes in the chaincode and endorsement policies within the client SDK. Currently, the chaincode location and endorsement policies are statically configured into the client SDK. This limits the reliability and availability of the client in the event of changes in the platform, and makes the platform more difficult to use. In this work we address and bridge the gap by describing the design and implementation of Service Discovery. Service Discovery provides APIs which allow dynamic discovery of the configuration required for the client SDK to interact with the platform, alleviating the client from the burden of maintaining it. This enables the client to rapidly adapt to changes in the platform, thus significantly improving the reliability of the application layer. It also makes the HLF platform more consumable, simplifying the job of creating blockchain applications.
[1]
Fred B. Schneider,et al.
Implementing fault-tolerant services using the state machine approach: a tutorial
,
1990,
CSUR.
[2]
Satoshi Nakamoto.
Bitcoin : A Peer-to-Peer Electronic Cash System
,
2009
.
[3]
Vitalik Buterin.
A NEXT GENERATION SMART CONTRACT & DECENTRALIZED APPLICATION PLATFORM
,
2015
.
[4]
Fred B. Schneider,et al.
The primary-backup approach
,
1993
.
[5]
Yacov Manevich,et al.
Scalable communication middleware for permissioned distributed ledgers
,
2017,
SYSTOR.
[6]
Marko Vukolic,et al.
Hyperledger fabric: a distributed operating system for permissioned blockchains
,
2018,
EuroSys.
[7]
André Schiper,et al.
Replication: Theory and Practice
,
2010,
Replication.
[8]
Rachid Guerraoui,et al.
Replication Techniques for Availability
,
2010,
Replication.