GithubHelp home page GithubHelp logo

ibm / fablet Goto Github PK

View Code? Open in Web Editor NEW
32.0 7.0 10.0 1.99 MB

Fablet, a browser-based dashboard and tools set for Hyperledger Fabric blockchain platform.

License: Apache License 2.0

Go 37.49% Shell 0.51% HTML 0.46% JavaScript 59.97% CSS 0.12% Java 1.46%
fablet fabric go

fablet's Introduction

Fablet

Fablet, a browser-based dashboard and tools set for Hyperledger Fabric blockchain platform. It can help blockchain participants to connect to Fabric network, and perform operations of chaincode, channel, ledger...

Overview

Peers list

Peers list

Chaincodes list

Chaincodes list

Invoke chaincode

Invoke chaincode

Query ledger

Query ledger

Playground

An example Fablet service was set up with a Fabric network, you can try it at:
https://bctest01.fablet.pub:8081/
Due to the self-sign certificate, please accept the security exception in your browser.

Initial connection

If it is the first time you access the service, you need to create a connection profile and identity, we provide some examples corresponding to an example Fabric network (Fabric 1.4.3 first-network). Please download these accordinginly:

Chaincode

Installation

An exmaple chaincode vsinst has already been instantiated.
And you can also install another chaincode instance with below packages. You can download the example package file and look into it for details.

Instantiation

This is a lower machine, it might take several minutes...

  • Policy

    OR ('Org1MSP.peer','Org2MSP.peer')
    
  • Constructor parameters
    For vehiclesharing example chaincode, please leave it as blank.

Execution

  • Function name

    createVehicle 
    
  • Arguments

    v001,brand001
    

Query

  • Function name

    findVehicle 
    
  • Arguments

    v001
    

No more document for user now. I think that user should get all points from the UI directly, instead of documentation.

Binaries

Fablet executable binary (based on Ubuntu 18.04) was built and can be downloaded from here: https://github.com/IBM/fablet/releases/download/v0.0.1/fablet_0.0.1.tar.gz

Start

The build output will be found at ./release/<OS_Arch>/fablet.

  • Start Fablet as default with http on port 8080:

    ./release/<OS_Arch>/fablet
    
  • Start Fablet with https on customized port 8081, and TCP address:

    ./release/<OS_Arch>/fablet -addr localhost -port 8081 -cert <tls_cert> -key <tls_private_key>
    

When Fablet start, you can access it via browser (We tested it on Chrome and Firefox). For connection profile and identity encryption materials, please see section of 'Playground' for examples.

Build

Now, building and development was only validated on Ubuntu 18.04.

Prerequisite

  • Go ^1.13.4
    If there is network issues, please try:
    go env -w GOPROXY=https://goproxy.io,direct

  • Node.js ^12.13.0

  • yarn ^1.19.1
    npm install -g yarn

  • Hyperledger Fabric 1.4.3
    Currently, Fablet supports Fabric 1.4.3, we are working to adapt to 2.0.0. Please refer to Fabric installation document for details.

    You can use Fablet to connect to an existing Fabric blockchain network.

Download repository

git clone https://github.com/IBM/fablet.git

Build

  • Build all

    ./build.sh
    
  • Build service (go) project only

    ./build.sh service
    
  • Build web (js/react) project only

    ./build web
    

Start

Please find above section of 'Start' for details.

Development

It is composed of 2 projects: service project and web project. These 2 projects folders can be opened as individual project, by MS Code or other IDE.

Service project

Under folder ./.
It is developed in Go language, it provides web service, and html/js/image host.

  • Run in development

    go run ./main
    
  • Test
    There are some testing programs in this project, before running those, you have to update connection profiles under folder ./test/connprofiles.
    Basically the profiles are suitable for the fabric-samples/first-network example Fabric network. Please update the tlsCACerts section in the connection profiles with the certificates, an example is fabric-samples/first-network/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem.

    If you want to use your self Fabric blockchain network for testing purposes, please update tlsCACerts with the certificates accordinginly.

    These connection profiles can also be used to create connection to the Fabric blockchain network, via the Fablet web UI.

Web project

Under folder ./web.
It is developed in Javascript with React.

  • Debug environment
    Please open ./web/src/common/debugflag.js, and then change const variable DEBUG to true in development.

  • Dependencies

    yarn install
    
  • Run in development

    yarn start
    

    Then open browser and access the default site: http://localhost:3000.

fablet's People

Contributors

imgbotapp avatar johnwalicki avatar stevemar avatar tomxucnxa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fablet's Issues

Support connection file defined by vscode extension and wallet

Using the standard way of creating connections probably is a better way.
VSCode connection file defines node endpoints, cert. then using the wallet file to tie them together. This is probably going forward be the best way to provide information to connect to a fabric network.

Currently , you are using connection profile and key and cert, it is probably, but I think using same methods other products do will make user's life a bit easier.

Links outdated

The examples of connection profile, identity certificate and identity private key are no longer working. Can you please help by providing an alternative.

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.