Git Product home page Git Product logo

probe's Introduction

Probe

Build Status Issues GitHub pull requests

δΈ­ζ–‡

What is Probe

Probe According to blockchain-performance-metrics, Probe is a web GUI application for Hyperledger Fabric mantianer, user, research. Recently, aims at providing a way to control both SUT and LGC to find the best block config logic for specific chaincode for specific fabric network. Meanwhile has a better understanding of how block config impacts performance.

  • Probe provides loop test control for given block parameter arrays.
  • Probe provides TPS result review via GUI.
  • Probe provides sample chaincode for some test cases.

Long term goal for Probe is a coordinator between Test Harness or LGC, SUT.

  • Probe will allow you design shell scripts to schedule SUT and Test Harness.
  • Probe will allow you investigate performance matrix with GUI in customer way.

You can use Probe to ...

Why Probe

As discussed with TWGC performance work group, we found out that different block parameters, networks, chaincode language and chaincode logic having influence final TPS. To answer, the best parameter for specific fabric network and fabric chaincode, this project been created.

Probe is not

  • Real time time monitor, for real time tps monitor, pls use Prometheus. (But Probe has demo for it with test network here)
  • Auto test framework for Fabric performance, as in probe, we will invoke as byfn or minifab for your network up/down/cleanup.
  • Performance test tool for Fabric, for this we using tape.
  • GUI for tape, tape focus on once off time performance testing.

Quick start

  1. Install this project npm install

  2. Install fabric-sample environment

    curl -vsS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash

    Note

    If the above curl command fails, it may be that the old version of curl cannot handle redirection or cannot be redirected due to network reasons in some countries and regions. At this time, users can download the bootstrap.sh script then run it.

  3. Get tape docker pull guoger/tape

  4. Apply the bridge file to adjust block parameters for test network cp sample/prepareConfig.sh fabric-samples/test-network

  5. npm start

  6. Access localhost:3000, click TestNetworkSample

  7. Clicksubmit

  8. Access localhost:3000/result/BatchTimeout to see TPS relationship with BatchTimeout

  9. Access localhost:3000/result/MaxMessageCount to see TPS relationship with MaxMessageCount

Version Plan

version define feature
0.0.4 customer UI enhancement allow user chose parameters to show on UI
0.0.5 support different deploy plan with peers 4/5 6/3 8/1
0.0.6 support different deploy plan with orgs 2 3 4
0.0.7 support different deploy plan with gossip 1:1 1:2 1:3
0.0.8 support different deploy plan with mvcc 10 20 40
0.0.9 support different deploy plan with data size 10k 512k 1M
1.0.0 fix up bugs after 0.0.4
1.1.x tools supporting supports caliper
1.2.x network starter supporting supports cello

How to contribute

If your want to contribute Probe with new feature, bug fixing please create a new issue, of course with PR is best.

Also welcome for documentatoin, learning course, etc.

For development, please complete Quick start above.

For Frontend, please use npm run build.

For backend, please develop --DryRun as mock for unit test and adding real cases in CI

Video (in Chinese)

version URL comments
0.0.1 https://www.bilibili.com/video/BV1x54y1x78Z N/A
0.0.1 https://www.bilibili.com/video/BV1dV411y7oZ N/A
0.0.2 https://www.bilibili.com/video/bv13t4y1B7AE N/A
0.0.3 https://www.bilibili.com/video/BV1Kz4y1179L N/A

probe's People

Contributors

samyuan1990 avatar dependabot[bot] avatar lyp830414 avatar

Watchers

James Cloos avatar

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.