Giter VIP home page Giter VIP logo

bestbeforetoday / fabric-smart-client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hyperledger-labs/fabric-smart-client

0.0 0.0 0.0 3.57 MB

The Fabric Smart Client is a new Fabric Client that lets you focus on the business processes and simplifies the development of Fabric-based distributed application.

License: Apache License 2.0

Shell 0.06% Go 99.61% Makefile 0.32% Dockerfile 0.01%

fabric-smart-client's Introduction

Fabric Smart Client

License Go Report Card Go CodeQL

The Fabric Smart Client (FSC, for short) is a new Fabric client-side component whose objective is twofold.

  1. To simplify the development of Fabric-based distributed application by hiding the complexity of Fabric and leveraging Fabric's Hidden Gems that too often are underestimated if not ignored.
  2. To allow developers and/or domain experts to focus on the business processes and not the blockchain technicalities.

Disclaimer

Fabric Smart Client has not been audited and is provided as-is, use at your own risk. The project will be subject to rapid changes to complete the list of features.

Useful Links

  • Documentation: Discover the design principles of the Fabric Smart Client based on the Hidden Gems of Hyperledger Fabric.

  • Samples: A collection of sample applications that demonstrate the use of the Fabric Smart Client.

  • Feedback: Your help is the key to the success of the Fabric Smart Client.

  • Fabric Token SDK: Do you want to develop Token-Based Distributed application with simplicity and joy? Check our Token SDK out here.

Getting started

Clone the code. Sometimes, we use $FSC_PATH to refer to the Fabric Smart Client repository in your filesystem, for example:

export FSC_PATH=$HOME/myprojects/fabric-smart-client
git clone https://github.com/hyperledger-labs/fabric-smart-client.git $FSC_PATH

You are ready to run the samples in $FSC_PATH.

Getting Help

Found a bug? Need help to fix an issue? You have a great idea for a new feature? Talk to us! You can reach us on Discord in #fabric-smart-client.

Motivation

Hyperledger Fabric is a permissioned, modular, and extensible open-source DLT platform. Fabric architecture follows a novel execute-order-validate paradigm that supports distributed execution of untrusted code in an untrusted environment. Indeed, Fabric-based distributed applications can be written in any general-purpose programming language.

Developing applications for Hyperledger Fabric is often hard, sometimes painful. Fabric is a very powerful ecosystem whose building blocks must be carefully orchestrated to achieve the desired results. Currently, the Fabric Client SDKs are too limited. They do not offer any advanced capabilities to let the developers focus on the application business processes, and harness the full potential of Fabric.

What would happen if the developers could use a Smart(er) Fabric Client that offers:

  • A high level API that hides the complexity of Fabric;
  • A Peer-to-Peer infrastructure that let Fabric Clients and Endorsers talk to each as required by the business processes;
  • Advanced transaction orchestration;
  • A simplified model to interact with chaincodes;
  • A State-based programming model that let you forget about RW sets and focus on business objects and their interactions?

Developing Fabric-based distributed applications would become simpler and joyful. If you are a domain expert, the Fabric Smart Client hides the complexity of Fabric and allows you to focus on the business interactions. If you are a skilled software engineer, you will be able to leverage the full power of Fabric.

But, this is not all. The Fabric Smart Client is a client-side component that can be used to develop applications:

Explore our Samples to see how you can use the Fabric Smart Client to develop your own applications.

Testing Philosophy

Write tests. Not too many. Mostly Integration

We also believe that when developing new functions running tests is preferable than running the application to verify the code is working as expected.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the Apache 2 License - see the LICENSE file for details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.