Coder Social home page Coder Social logo

luxoft / fabric-utils Goto Github PK

View Code? Open in Web Editor NEW
6.0 11.0 4.0 1006 KB

Fabric network interaction library (SDK wrapper), that contains its own network setup description format, network configuration utility, and convenience methods for working with chaincodes.

License: Apache License 2.0

Java 91.54% Shell 2.33% Go 6.14%
fabric chaincode sdk-wrapper fabric-utils

fabric-utils's People

Contributors

akopnin avatar devaleksei avatar fedyiv avatar jeremiah avatar osesov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fabric-utils's Issues

Examine and support NetworkConfig from Fabric Java SDK

Fabric java SDK now has it's own configuration file, handled by NetworkConfig class. Need to examine it and and migrate to it if possible.
If seems this config file has no information related to network configuration, only connectivity. So we can consider migrating to it partially.

Make timeout for proposal wait time configurable

Move this to some variable
fabric-utils/fabric-connector/src/main/java/com/luxoft/fabric/FabricConfig.java

instantiateProposalRequest.setProposalWaitTime(120000);
...
upgradeProposalRequest.setProposalWaitTime(120000);

StringMapDeserialzier should issue deprecation warning

StringMapDeserialzier was implemented to handle wrong syntax in fabric.yaml, when maps of object were defined as map of array of a single object.

peers:
  - peer1:
    ...
  - peer2
    ...

should be (in yaml syntax)

peers:
  peer1:
    ...
  peer2:
    ...

StringMapDeserialzier should have issue deprecation warning asking to update fabric.yaml to valid map format

Fabric connector should be able to retry transaction attempts failed due to ReadSet conflicts

In case of MVCC_READ_CONFLICT_VALUE or PHANTOM_READ_CONFLICT_VALUE validation errors its good to have option to retry same transaction. These errors happen during parallel chaincode request and basically mean that one transaction is reading states affected by another.

FabricConnector should have configurable parameters - retry delay and max number of retries.

Delay may (in future) directly depend on Block generation timeout (BatchTimeout in configtx.yaml).

When calling invoke() methods callers can specify number of retries (including 0 in case they want to handle such errors themselves)

Replace example chaincode with simplier implementation

example chaincode in files/chaincode/src/map/map.go seems to be originally copied from HLF sources with lots of not so simple things, related permissions, added.
It seems to be an example from some other project.
Thus I suggest to revert to the original map.go from the HLF examples or to use the similar sample chaincode from fabric-skeleton

Make fabric-utils more portable

Currently fabric-utils is quite difficult to run on Windows. In particular, the dependency on bash to handle fabric.sh, and use it in integration test should be removed.
I suggest to use gradle with docker/docker-compose plugin to manage docker invocation instead of shell script, and replace fabric.sh use in integration test calling gradle.

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.