/FabricSharp

Enhanced Hyperledger Fabric

Primary LanguageC++Apache License 2.0Apache-2.0

Overview

FabricSharp (hash) project is a variant of Hyperledger Fabric 1.4, a permissioned blockchain platform from Hyperledger. Compared with the vanilla version, FabricSharp supports fine-grained secure data provenance, sharding, smart transaction management, use of trusted hardware (eg. SGX), and a blockchain native storage engine called ForkBase, to boost system performance.

Thanks to colleagues from MediLOT, NUS, SUTD, BIT, Zhejiang University, MZH Technologies and other organizations for their contributions.

Quick Start

  • Build the chaincode environment
make ccenv # Will build an image hyperledger/fabric-ccenv:forkbase
  • Build the peer docker image
DOCKER_DYNAMIC_LINK=true make peer-docker # Will build an image hyperledger/fabric-peer:forkbase
  • Build the orderer docker image
make orderer-docker

NOTE: FabricSharp relies on ForkBase[3] as the storage engine, which is close-sourced. Hence FabricSharp can only be built and run within the docker container. Running make peer may fail.
NOTE: Always start the peer container with the following environment variable to enable for the above-built chaincode environment. CORE_CHAINCODE_BUILDER=hyperledger/fabric-ccenv:forkbase

Architecture

architecture

Progress

The current master branch incorporates the optimization from [2] and [7] on the basis of Fabric v1.4.2. We dedicate another branch vldb19, which shows more details only about [2], including the experimental baseline, scripts, chaincode examples and so on. Similarly, branch sigmod20 is dedicated for [7]. Refer to branch vldb19 on how to write provenance-dependent smart contracts, and sigmod20 for the snapshot-based transaction management.

We will soon merge the optimization in [1] to this master branch upon v1.4.2 and similarly dedicate another branch for [1].

Old readme

old_readme

Papers.