All Projects → hyperledger → Fabric Sdk Node

hyperledger / Fabric Sdk Node

Licence: apache-2.0
Hyperledger Fabric SDK for Node https://wiki.hyperledger.org/display/fabric

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Fabric Sdk Node

Fabric Sdk Java
Stars: ✭ 982 (+45.27%)
Mutual labels:  blockchain, fabric, hyperledger, distributed-ledger, hacktoberfest
Fabric Gateway Java
Hyperledger Fabric Gateway SDK for Java https://wiki.hyperledger.org/display/fabric
Stars: ✭ 122 (-81.95%)
Mutual labels:  blockchain, fabric, hyperledger, distributed-ledger, hacktoberfest
Fabric Sdk Py
Hyperledger Fabric Python SDK
Stars: ✭ 303 (-55.18%)
Mutual labels:  blockchain, fabric, hyperledger, distributed-ledger
Fabric
Hyperledger Fabric is an enterprise-grade permissioned distributed ledger framework for developing solutions and applications. Its modular and versatile design satisfies a broad range of industry use cases. It offers a unique approach to consensus that enables performance at scale while preserving privacy.
Stars: ✭ 12,911 (+1809.91%)
Mutual labels:  blockchain, fabric, hyperledger, distributed-ledger
Iroha Android
Android library for Iroha, a Distributed Ledger Technology (blockchain) platform.
Stars: ✭ 108 (-84.02%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Ergo
The Language for Smart Legal Contracts
Stars: ✭ 108 (-84.02%)
Mutual labels:  blockchain, hyperledger, hacktoberfest
hyperledger-fabric-sdk-php
Client SDK for Hyperledger Fabric for use in PHP applications
Stars: ✭ 40 (-94.08%)
Mutual labels:  fabric, hyperledger, distributed-ledger
Composer Tools
⚠️ ⚠️ ⚠️ Hyperledger Composer has been deprecated ⚠️ ⚠️ ⚠️
Stars: ✭ 75 (-88.91%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Fabric Explorer
Fabric-explorer is a simple, powerful, maintainable, open source fabric explorer
Stars: ✭ 117 (-82.69%)
Mutual labels:  blockchain, fabric, hyperledger
Composer
⚠️ ⚠️ ⚠️ Hyperledger Composer has been deprecated ⚠️ ⚠️ ⚠️
Stars: ✭ 1,676 (+147.93%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Hyperledger
Hyperledger is a Collaborative Project at The Linux Foundation.
Stars: ✭ 3,653 (+440.38%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Fabric Ca
Stars: ✭ 331 (-51.04%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Fabric Chaintool
Stars: ✭ 89 (-86.83%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Iroha Ios
iOS Swift library for Iroha, a simple distributed ledger
Stars: ✭ 81 (-88.02%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Composer Sample Applications
⚠️ ⚠️ ⚠️ Hyperledger Composer has been deprecated ⚠️ ⚠️ ⚠️
Stars: ✭ 110 (-83.73%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Iroha Javascript
JavaScript library for Iroha, a Distributed Ledger Technology (blockchain) platform.
Stars: ✭ 77 (-88.61%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Iroha
Iroha - A simple, enterprise-grade decentralized ledger
Stars: ✭ 210 (-68.93%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Mortgageblockchainfabric
Mortgage Processing App using Hyperledger Fabric Blockchain. Uses channels for privacy and access, and restricts read/write previleges through endorsement policies
Stars: ✭ 45 (-93.34%)
Mutual labels:  blockchain, fabric, hyperledger
Fabric Baseimage
Stars: ✭ 53 (-92.16%)
Mutual labels:  blockchain, hyperledger, distributed-ledger
Hyperledger Fabric Gm
支持国密加密算法的Hyperledger Fabric版本
Stars: ✭ 152 (-77.51%)
Mutual labels:  blockchain, fabric, hyperledger

Hyperledger Fabric Client SDK for Node.js

Branch Build status
master
release-2.2
release-1.4

The Hyperledger Fabric Client SDK makes it possible to use APIs to interact with a Hyperledger Fabric blockchain. This readme is directed towards a current or future contributor to this project, and gives an overview of setting up the project locally and running tests. For more information on the SDK, including features and an API reference, please visit the SDK documentation.

This project publishes the following npm packages:

  • fabric-ca-client - client for the optional component in Hyperledger Fabric, fabric-ca. The fabric-ca component allows applications to enroll Peers and application users to establish trusted identities on the blockchain network. It also provides support for pseudonymous transaction submissions with Transaction Certificates. If the target blockchain network is configured with standard Certificate Authorities for trust anchors, the application does not need to use this package.
  • fabric-common - encapsulates the common code used by all fabric-sdk-node packages supporting fine grain interactions with the Fabric network to send transaction invocations
  • fabric-network - This package encapsulates the APIs to connect to a Fabric network, submit transactions and perform queries against the ledger at a higher level of abstraction than through the fabric-common.
  • fabric-protos - This package encapsulates the protobuffers that are used to communicate over gRPC

Build and Test

To build and test, the following pre-requisites must be installed first:

  • Node.js, version 10 is supported from 10.15.3 and higher
  • Node.js, version 12 is supported from 12.13.1 and higher
  • npm tool version 6 or higher
  • docker (only required for running integration tests, see below)

Run unit tests

Clone the project and launch the following commands to install the dependencies and perform various tasks.

In the project root folder:

  • Install all dependencies via npm install
  • Optionally, to generate API docs via npm run docs
  • To generate the required crypto material used by the tests, use the npm task npm run installAndGenerateCerts
  • To run the unit tests that do not require any additional set up, use npm run testHeadless

Run Integration Tests

Integration tests run on the master branch require the most recent stable Fabric images, which are hosted on Artifactory. A utility script is provided to retrieve non-published docker images, which may be run using the command npm run pullFabricImages

Now you are ready to run the integration tests. It is advisable to clear out any previous key value stores that may have cached user enrollment certificates using the command (rm -rf /tmp/hfc-*, rm -rf ~/.hfc-key-store) prior to testing in isolation.

We have functional and scenario based tests that may be run via the following commands:

  • end to end (tape) tests may be run via npm run tapeIntegration
  • scenario (cucumber) tests may be run via npm run cucumberScenario
  • You may run both integration test styles using npm run tapeAndCucumber
  • All tests (unit and integration) may be run using the command npm test or npm run testNoHSM when not using a HSM or HSM simulator

Special Tests for Hardware Security Module support via PKCS #11 interface

The SDK has support for Hardware Security Module (HSM) via PKCS #11 interface. See the test README for details of how to run HSM tests locally.

Pluggability

HFC defines the following abstract classes for application developers to supply extensions or alternative implementations. For each abstract class, a built-in implementation is included with the ability to load alternative implementations via designated environment variables:

  1. To replace FileKeyValueStore with a different implementation, such as one that saves data to a database, specify "KEY_VALUE_STORE" and provide the full require() path to an alternative implementation of the api.KeyValueStore abstract class.

  2. The cryptography suite used by the default implementation uses ECDSA for asymmetric keys cryptography, AES for encryption and SHA2/3 for secure hashes. A different suite can be plugged in with "CRYPTO_SUITE" environment variable specifying full require() path to the alternative implementation of the api.CrytoSuite abstract class.

  3. If the user application uses an alternative membership service than the one provided by the component fabric-ca, the client code will likely need to use an alternative client to fabric-ca-client to interact with that membership service.

Continuous Integration

Our Continuous Integration is run using Azure Pipelines. Builds are automatically triggered on opening pull requests.

Release notes

Check the ./release_notes directory for the release notes of the specified release.

Contributing

Check the documentation on how to contribute to this project for the full details.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].