popov-vladimir / fabric-starter-rest

REST API server and NodeJS client for Hyperledger Fabric

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fabric-starter-rest

REST API server and client for Hyperledger Fabric built with NodeJS SDK.

See usage examples at fabric-starter.

To run test in development mode (from a developer's machine and not within container) Set environment:

export ORG=org1 DOMAIN=example.com

Start fabric-starter orderer and peer with ports mapped to the host machine so the SDK clients can access them.

docker-compose -f docker-compose-orderer.yaml -f orderer-ports.yaml up

docker-compose -f docker-compose.yaml -f ports.yaml up

Test.

npm test

Develop: run REST server with nodemon to reload on changes.

npm run dev

Serve. Run REST server.

npm start

Build docker image.

docker build -t olegabu/fabric-starter-rest .

Connection options

Connection options can be specified in environment variables to control the keep_alive policy: (Note: Azure's load-balancer uses connection timeout set to 4 minutes. So keep_alive should cover this.)

Environment variable Default value used by Fabric SDK Description
GRPC_MAX_PINGS_WITHOUT_DATA 2 2 - leads to an error of ping process. fabric-starter-rest overrides this to 0 - means no limits
GRPC_KEEP_ALIVE_MS 120000 (120 seconds) Ping interval in milliseconds
GRPC_KEEP_ALIVE_TIMEOUT_MS 20000 (20 seconds) Timeout period for the ping request itself
GRPC_KEEP_ALIVE_PERMIT_WITHOUT_CALLS 1 Allows pings with no payload
GRPC_MIN_TIME_BETWEEN_PINGS_MS 300000 (5 minutes) Fabric-starter-rest resets this to 60 seconds to avoid disconnect of Azure Load Balancer (if GRPC_KEEP_ALIVE_TIMEOUT_MS is specified then the interval is set to GRPC_KEEP_ALIVE_TIMEOUT_MS/1.1)

Versioning

snapshot-0.2-1.4:

  • Support multiple users login
  • Fix parallel simultaneous logons of same user

snapshot-0.1-1.4:

  • Tag stable version

About

REST API server and NodeJS client for Hyperledger Fabric

License:Apache License 2.0


Languages

Language:JavaScript 97.0%Language:Shell 1.4%Language:Dockerfile 1.2%Language:HTML 0.4%