0.0.1 • Published 6 years ago

fabric-sdk-kvs-mongo v0.0.1

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
6 years ago

fabric-ca-kvs-mongo

mongodb kvs for fabric-sdk-node

Install

npm i fabric-ca-kvs-mongo

Config

  1. config your network definition to use mongodb credentialStore
# your network.yaml
client:
  # Since the node.js SDK supports pluggable KV stores, the properties under "credentialStore"
  # are implementation specific
  credentialStore:
    url: "mongodb://localhost:27017"
    dbname: "org1"
    collectionName: "credential"

    # Specific to the CryptoSuite implementation. Software-based implementations like
    # CryptoSuite_ECDSA_AES.js requires a key store. PKCS#11 based implementations does
    # not.
    cryptoStore:
      # Specific to the underlying KeyValueStore that backs the crypto key store.
      url: "mongodb://localhost:27017"
      dbname: "org1"
      collectionName: "crypto"
  1. config fabric-sdk-node to use fabric-ca-kvs-mongo
const Client = require('fabric-client');

// this code config the fabric-sdk-node to use fabric-sdk-kvs-mongo
Client.setConfigSetting('key-value-store', 'fabric-sdk-kvs-mongo');

// this load the network.yaml from step 1
const client = Client.loadFromConfig('<some-path-to-your-network.yaml>');

// init credential stores
await client.initCredentialStores();

// then it's done.

// Next time you just need to load this use again from state store
const user = await client.loadUserFromStateStore(username);
await client.setUserContext(user);

// do some invoke/query with this user's identity
// Enjoy!

Check the credentials from mongodb

# suppose you followed the instructions above and make no change.
# and you start your mongodb like this
mongodb:
    container_name: mongo
    image: mongo
    ports:
      - 27017:27017

use mongo shell to see what is in the credentials store.

$ mongo
> show dbs;
...
org1  0.000GB
org2  0.000GB
> use org1;
switched to db org1
> show collections;
credential
crypto
> db.credential.find();
> db.crypto.find();