diff --git a/.eslintrc.yml b/.eslintrc.yml
new file mode 100755
index 0000000..df5e369
--- /dev/null
+++ b/.eslintrc.yml
@@ -0,0 +1,51 @@
+env:
+ node: true
+ mocha: true
+extends: 'eslint:recommended'
+parserOptions:
+ sourceType:
+ - script
+globals:
+ getFactory: true
+ getSerializer: true
+ getAssetRegistry: true
+ getParticipantRegistry: true
+ getCurrentParticipant: true
+ post: true
+ emit: true
+rules:
+ indent:
+ - error
+ - 4
+ linebreak-style:
+ - error
+ - unix
+ quotes:
+ - error
+ - single
+ semi:
+ - error
+ - always
+ no-unused-vars:
+ - 0
+ - args: none
+ no-console: off
+ curly: error
+ eqeqeq: error
+ no-throw-literal: error
+ strict: error
+ dot-notation: error
+ no-tabs: error
+ no-trailing-spaces: error
+ no-useless-call: error
+ no-with: error
+ operator-linebreak: error
+ require-jsdoc:
+ - error
+ - require:
+ ClassDeclaration: true
+ MethodDefinition: true
+ FunctionDeclaration: true
+ yoda: error
+ no-confusing-arrow: 2
+ no-constant-condition: 2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2703b9f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+# Mac files.
+**/.DS_Store
+.DS_Store
+
+node_modules
+npm-debug.log
+.npm
+
+.git
+
+composer-logs
+
+*.bna
+*.card
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..9793146
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,14 @@
+# Contributing
+
+This is an open source project, and we appreciate your help!
+
+We use the GitHub issue tracker to discuss new features and non-trivial bugs.
+
+In addition to the issue tracker, [#ibmcode on
+Slack](https://dwopen.slack.com) is the best way to get into contact with the
+project's maintainers.
+
+To contribute code, documentation, or tests, please submit a pull request to
+the GitHub repository. Generally, we expect two maintainers to review your pull
+request before it is approved for merging. For more details, see the
+[MAINTAINERS](MAINTAINERS.md) page.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..e06d208
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
new file mode 100644
index 0000000..887e4da
--- /dev/null
+++ b/MAINTAINERS.md
@@ -0,0 +1,74 @@
+## Maintainers Guide
+
+This guide is intended for maintainers — anybody with commit access to one or
+more Developer Journey repositories.
+
+## Methodology:
+
+A master branch. This branch MUST be releasable at all times. Commits and
+merges against this branch MUST contain only bugfixes and/or security fixes.
+Maintenance releases are tagged against master.
+
+A develop branch. This branch contains your proposed changes.
+
+The remainder of this document details how to merge pull requests to the
+repositories.
+
+## Merge approval
+
+The project maintainers use LGTM (Looks Good To Me) in comments on the code
+review to indicate acceptance. A change requires LGTMs from two of the members
+of the [eti-journey-admins](https://github.com/orgs/IBM/teams/eti-journey-admins/members)
+team. If the code is written by a member, the change only requires one more
+LGTM.
+
+## Reviewing Pull Requests
+
+We recommend reviewing pull requests directly within GitHub. This allows a
+public commentary on changes, providing transparency for all users. When
+providing feedback be civil, courteous, and kind. Disagreement is fine, so
+long as the discourse is carried out politely. If we see a record of uncivil
+or abusive comments, we will revoke your commit privileges and invite you to
+leave the project.
+
+During your review, consider the following points:
+
+### Does the change have impact?
+
+While fixing typos is nice as it adds to the overall quality of the project,
+merging a typo fix at a time can be a waste of effort.
+(Merging many typo fixes because somebody reviewed the entire component,
+however, is useful!) Other examples to be wary of:
+
+Changes in variable names. Ask whether or not the change will make
+understanding the code easier, or if it could simply a personal preference
+on the part of the author.
+
+Essentially: feel free to close issues that do not have impact.
+
+### Do the changes make sense?
+
+If you do not understand what the changes are or what they accomplish,
+ask the author for clarification. Ask the author to add comments and/or
+clarify test case names to make the intentions clear.
+
+At times, such clarification will reveal that the author may not be using
+the code correctly, or is unaware of features that accommodate their needs.
+If you feel this is the case, work up a code sample that would address the
+issue for them, and feel free to close the issue once they confirm.
+
+### Is this a new feature? If so:
+
+Does the issue contain narrative indicating the need for the feature? If not,
+ask them to provide that information. Since the issue will be linked in the
+changelog, this will often be a user's first introduction to it.
+
+Are new unit tests in place that test all new behaviors introduced? If not, do
+not merge the feature until they are!
+Is documentation in place for the new feature? (See the documentation
+guidelines). If not do not merge the feature until it is!
+Is the feature necessary for general use cases? Try and keep the scope of any
+given component narrow. If a proposed feature does not fit that scope,
+recommend to the user that they maintain the feature on their own, and close
+the request. You may also recommend that they see if the feature gains traction
+amongst other users, and suggest they re-submit when they can show such support.
diff --git a/README.md b/README.md
index f8d44d7..8e4ba2c 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,124 @@
-# customer-loyalty-program
\ No newline at end of file
+# Customer Loyalty Program with blockchain
+
+A customer loyalty program allows companies to reward customers who frequently make purchases. Program members are able to earn points on purchases, which can translate into some type of reward such as discount, freebie or special customer treatment. The members work toward a certain amount of points to redeem their reward. These programs can have multiple companies as partners on the program, to cater to a customer base. However, current loyalty program systems are restraint on relations between partners, and with visibility to members. These restraints can be removed by creating the customer loyalty program on a blockchain network.
+
+This blockchain model for a customer loyalty program enhances the value of points to loyalty program members and brings in new value to the partners. Participants in this network have a more level relation among each other and points are in the centric position to connect all participants.
+
+In this code pattern, we will create a customer loyalty program as a blockchain application using Hyperledger Composer API and Node.js. The application will allow members to register on the network where they will create their account. They will be identified on the network with their account number and will create a access key which they will use to sign in. This access key is used as the card id for the member to make transactions and query records. The member once signed in, can make transactions to earn points and redeem points from the partners on the network. They can view their transactions as part of the blockchain ledger. This code pattern illustrates the use of permissions as part of the network where a member can only view their transactions.
+
+Similarly for the partner, they will register by creating an identity on the network and an access key which will be used to view their records. Partners are allowed to view only transactions they were part of, and thus can keep track of all their transactions where they allocated or redeemed points. The application shows a basic dashboard for the partner displaying the total points that they have allocated and redeemed to members. As transactions get complex, the partner can perform analysis on their transactions to create informative dashboards.
+
+This code pattern is for developers looking to start building blockchain applications with Hyperledger Composer. When the reader has completed this code pattern, they will understand how to:
+
+* Create basic business network using Hyperledger Composer
+* Deploy the network to an instance of Hyperledger Fabric locally and IBM Blockchain
+* Build a Node.js web application to interact with the blockchain network using Composer API
+
+
+# Architecture Flow
+
+
+
+
+
+1. Member is registered on the network
+2. Member can sign-in to make transactions to earn points, redeem points and view their transactions
+3. Partner is registered on the network
+4. Partner can sign-in to view their transactions and display dashboard
+
+
+# Included Components
+
+* [Hyperledger Composer](https://hyperledger.github.io/composer/latest/) Hyperledger Composer is an extensive, open development toolset and framework to make developing blockchain applications easier
+* [Hyperledger Fabric](https://hyperledger-fabric.readthedocs.io) Hyperledger Fabric is a platform for distributed ledger solutions, underpinned by a modular architecture delivering high degrees of confidentiality, resiliency, flexibility and scalability.
+* [IBM Blockchain Starter Plan](https://console.bluemix.net/catalog/services/blockchain) The IBM Blockchain Platform Starter Plan allows to build and try out blockchain network in an environment designed for development and testing
+
+## Featured technology
++ [Nodejs](https://www.python.org/) Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code server-side
++ [Bootstrap](https://getbootstrap.com/) Bootstrap is an open source toolkit for developing with HTML, CSS, and JS
+
+
+# Setup Locally
+
+Follow these steps to setup and run this code pattern. The steps are described in detail below.
+
+## Prerequisite
+- Operating Systems: Ubuntu Linux 14.04 / 16.04 LTS (both 64-bit), or Mac OS 10.12
+- [Docker](https://www.docker.com/) (Version 17.03 or higher)
+- [npm](https://www.npmjs.com/) (v5.x)
+- [Node](https://nodejs.org/en/) (version 8.9 or higher - note version 9 is not supported)
+ * to install specific Node version you can use [nvm](https://davidwalsh.name/nvm)
+- [Hyperledger Composer](https://hyperledger.github.io/composer/installing/development-tools.html)
+ * to install composer cli
+ `npm install -g composer-cli`
+ * to install composer-rest-server
+ `npm install -g composer-rest-server`
+ * to install generator-hyperledger-composer
+ `npm install -g generator-hyperledger-composer`
+
+## Steps
+1. [Clone the repo](#1-clone-the-repo)
+2. [Generate the Business Network Archive](#2-generate-the-business-network-archive)
+3. [Deploy Network](#3-deploy-network)
+ - [Deploy to Fabric locally](./docs/deploy-local-fabric.md)
+ - [Deploy to IBM Blockchain Starter Plan](./docs/deploy-ibm-starter.md)
+5. [Run Application](#5-run-application)
+
+
+## 1. Clone the repo
+
+Clone the `Customer Loyalty Program with Blockchain` repo locally. In a terminal, run:
+
+`git clone https://github.com/IBM/Customer-Loyalty-Program`
+
+## 2. Generate the Business Network Archive
+
+Next generate the Business Network Archive (BNA) file from the root directory:
+
+```
+cd Customer-Loyalty-Program/
+npm install
+```
+
+The `composer archive create` command in `package.json` has created a file called `clp-network@0.0.1.bna`.
+
+
+
+## 3. Deploy Network
+
+The bna can be deployed to a local instance of Fabric or can use IBM Blockchain Starter Plan.
+
+- [Deploy to Hyperledger Fabric locally](./docs/deploy-local-fabric.md)
+- [Deploy to IBM Blockchain Starter Plan](./docs/deploy-ibm-starter.md)
+
+
+## 5. Run Application
+
+Go into the `web-app` folder and install the dependency:
+
+```
+cd web-app/
+npm install
+```
+
+Start the application:
+```
+npm start
+```
+
+The application should now be running at:
+`http://localhost:8000`
+
+
+
+
+
+
+If hosting on IBM Blockchain Starter Plan, then you can [deploy the app to IBM Cloud](./docs/deploy-app-cloud.md).
+
+## Links
+* [Hyperledger Fabric Docs](http://hyperledger-fabric.readthedocs.io/en/latest/)
+* [Hyperledger Composer Docs](https://hyperledger.github.io/composer/latest/introduction/introduction.html)
+
+## License
+[Apache 2.0](LICENSE)
diff --git a/docs/deploy-app-cloud.md b/docs/deploy-app-cloud.md
new file mode 100644
index 0000000..4aeffdf
--- /dev/null
+++ b/docs/deploy-app-cloud.md
@@ -0,0 +1,47 @@
+# Deploy application to IBM Cloud
+
+You can deploy the application to IBM Cloud with the network hosted on the IBM Blockhain Starter Plan.
+
+* First, add `connection-profile.json` into the `network` folder.
+
+
+* Next update `network.js` in that folder to retrieve connection from `connection-profile.json`. You will update the code to use `connection-profile.json` instead of `./local_connection.json`
+
+
+
+
+
+
+* Next, add the `admin@clp-network.card` file to `webapp` folder. We will deploy the card with application.
+
+* Update `package.json` file in your `web-app` folder and make the following update to the `start` script.
+```
+"scripts": {
+ "start": "composer card import -f admin@clp-network.card && node app.js",
+```
+Add the following to ensure correct node version
+```
+"engines": {
+ "node": "^8.11.0"
+},
+```
+
+* Open `manifest.yml` file. Give a unique url name by updating the `name` field.
+```
+applications:
+- disk_quota: 1024M
+ name: clp-on-ibm-blockchain
+ buildpack: sdk-for-nodejs
+ command: "npm start"
+ path: "."
+ instances: 1
+ memory: 256M
+```
+
+* Now you are ready to deploy the application to IBM Cloud. You can use cloud foundry cli to deploy the application. In the `web-app` directory, run the following command.
+
+```
+cf push
+```
+
+View a sample app here: http://clp-on-ibm-blockchain.mybluemix.net/
diff --git a/docs/deploy-ibm-starter.md b/docs/deploy-ibm-starter.md
new file mode 100644
index 0000000..0e4e4c2
--- /dev/null
+++ b/docs/deploy-ibm-starter.md
@@ -0,0 +1,182 @@
+# Deploy to IBM Blockchain Starter Plan
+
+In this section we will:
+- [Create IBM Blockchain Starter Plan service](#create-ibm-blockchain-starter-plan-service)
+- [Prepare a local Business Network card for Network Administration](#prepare-a-local-business-network-card-for-network-administration)
+- [Uploading your Certificate to the Monitor](#uploading-your-certificate-to-the-monitor)
+- [Deploying the Business Network Archive](#deploying-the-business-network-archive)
+- [Create a Business network card which can interact with the deployed network](create-a-business-network-card-which-can-interact-with-the-deployed-network)
+
+
+These steps follow the instructions presented in the guide [Deploying Hyperledger Composer Business Network to IBM Blockchain Platform Enterprise Plan on IBM Cloud](https://ibm-blockchain.github.io/platform-deployment/)
+
+## Create IBM Blockchain Starter Plan service
+
+Create the IBM Blockchain Starter Plan service in IBM Blockchain. Ensure you have IBM account
+
+* You can access IBM Cloud by going to https://console.bluemix.net/. If you do not have an IBM Cloud account you can create one.
+
+
+
+
+
+* If you do have an IBM Cloud account or have created on, then login to create the service. You can find the service in `Catalog` and choose `Blochchain` from the menu. Select `Blockchain`
+
+
+
+
+
+* Or alternatively can go directly to the [link here](https://console.bluemix.net/catalog/services/blockchain) to create the service. Give your service a name and choose the `region`, `organization` and `space`.
+
+
+
+
+
+Choose the `IBM Blockchain Starter Plan`. And click `Create`.
+**NOTE** This plan is free during beta period
+
+
+
+
+
+This service plan has been added to your IBM Cloud. In your blockchain service - choose `Enter Monitor`.
+
+
+
+
+
+
+## Prepare a local Business Network card for Network Administration
+
+In the `Overview` section, click on `Connection Profile`. In the pop up option, choose `Download`.
+
+
+
+
+
+The downloaded file contains a registrar element containing an enrollId and enrollSecret that is specific to your service/organization. For example:
+
+```
+"registrar": [
+ {
+ "enrollId": "admin",
+ "enrollSecret": "PA55W0RD12"
+ }
+],
+```
+
+Make a note of `enrollId` and `enrollSecret` values as you will need them shortly.
+
+Before starting, you can remove all composer cards with the following command.
+```
+rm -rf ~/.composer
+```
+
+Now in your terminal, run the following command to create a Composer business network card.
+
+```
+composer card create -p connection-profile.json -u -s -r PeerAdmin -r ChannelAdmin
+
+```
+View the card created:
+```
+composer card list
+```
+
+Make a note of this card name as it will be used for commands below as ``
+
+
+Next, import the card into the card store.
+
+```
+composer card import -f
+```
+
+Now request an identity for the admin from the fabric Certificate Authority. The certificates will be stored in a `credentials` directory.
+
+```
+composer identity request --card ./credentials
+```
+
+Once you have the credentials created, you can delete the card as it may cause conflict error, when importing card using the credentials from the `credentials` folder.
+
+```
+composer card delete --card
+```
+
+You now need to create a new business network card containing the credentials issued from the identity request.
+
+```
+composer card create -f adminCard.card -p connection-profile.json -u admin -c ./credentials/admin-pub.pem -k ./credentials/admin-priv.pem --role PeerAdmin --role ChannelAdmin
+```
+
+Import the card.
+```
+composer card import -f adminCard.card
+```
+View the card created.
+```
+composer card list
+```
+
+
+## Uploading your Certificate to the Monitor
+
+Next, we will upload the certificates created to our blockchain monitor.
+
+* In your monitor, go to `Members` in the menu. Select the `Certificates` tab, and click on `Add Certificate`.
+
+
+
+
+
+* Enter a unique name for this certificate (don’t use dashes in the name) in the `Name` field.
+
+* Open the file `admin-pub.pem` in your `credentials` folder and copy the entire content of this file into the Key field and press the Submit button.
+
+
+* Restart your peers by clicking OK when asked. Once created it should appear in the list of certificates.
+
+
+
+
+
+* Go to the `Channels` page from the navigation panel and from the 3-dot actions menu select the `Sync Certificate` option. This pulls the certificates just uploaded into the channel.
+
+
+
+
+
+
+## Deploying the Business Network Archive
+
+Now you can deploy your .bna file to your IBM Blockchain Platform instance. Ensure you are in the same directory as the bna file. To install the business network, run the following command:
+
+```
+composer network install --card --archiveFile clp-network@0.0.1.bna
+```
+
+To start the business network, run the following command:
+
+```
+composer network start --networkName clp-network --networkVersion 0.0.1 -c -A admin -C ./credentials/admin-pub.pem -f delete_me.card
+```
+
+## Create a Business network card which can interact with the deployed network
+
+Now you need a Business network card that will allow you to interact on the deployed business network which can perform actions such as issue identities. To create the card issue the following command:
+
+```
+composer card create -n clp-network -p connection-profile.json -u admin -c ./credentials/admin-pub.pem -k ./credentials/admin-priv.pem
+```
+
+Import this card into the card store.
+
+```
+composer card import -f admin@clp-network.card
+```
+
+You can then test this card by doing.
+```
+composer network ping -c admin@clp-network
+```
diff --git a/docs/deploy-local-fabric.md b/docs/deploy-local-fabric.md
new file mode 100644
index 0000000..77b47d8
--- /dev/null
+++ b/docs/deploy-local-fabric.md
@@ -0,0 +1,73 @@
+# Deploy network to Fabric locally
+
+In this section we will:
+* [Setup Hyperledger Fabric locally](#setup-hyperledger-fabric-locally)
+* [Deploy network to Hyperledger Fabric instance](#deploy-network-to-hyperledger-fabric-instance)
+
+## Setup Hyperledger Fabric Locally
+
+**Note** The following instruction to setup fabric instance are used from [Installing the development environment](https://hyperledger.github.io/composer/latest/tutorials/developer-tutorial) for Hyperledger Composer.
+
+
+Prior to starting, would recommend removing all running containers, and all previously created Hyperledger Fabric chaincode images:
+
+```none
+docker kill $(docker ps -q)
+docker rm $(docker ps -aq)
+docker rmi $(docker images dev-* -q)
+```
+
+This command will remove all composer cards
+```
+rm -rf ~/.composer
+```
+
+The fabric setup scripts will be in the `/fabric-dev-servers` directory. Start fabric and create peer admin card:
+
+```
+cd fabric-dev-servers/
+./downloadFabric.sh
+./startFabric.sh
+./createPeerAdminCard.sh
+```
+
+## Deploy network to Hyperledger Fabric instance
+
+**Note** The following instruction to deploy to fabric instance are used from the [Developer Tutorial](https://hyperledger.github.io/composer/latest/tutorials/developer-tutorial) for Hyperledger Composer.
+
+
+Now, we are ready to deploy the business network to Hyperledger Fabric. This requires the Hyperledger Composer chaincode to be installed on the peer,then the business network archive (.bna) must be sent to the peer, and a new participant, identity, and associated card must be created to be the network administrator. Finally, the network administrator business network card must be imported for use, and the network can then be pinged to check it is responding.
+
+First, install the business network:
+
+```
+cd ../
+composer network install --card PeerAdmin@hlfv1 --archiveFile clp-network@0.0.1.bna
+```
+
+Start the business network:
+
+```
+composer network start --networkName clp-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card
+```
+
+Import the network administrator identity as a usable business network card:
+```
+composer card import --file networkadmin.card
+```
+
+Check that the business network has been deployed successfully, run the following command to ping the network:
+```
+composer network ping --card admin@clp-network
+```
+
+If the command returns successfully, you can [run the application](#5-run-application).
+
+
+At the end of your session, stop fabric:
+
+```
+cd ~/fabric-dev-servers
+./stopFabric.sh
+./teardownFabric.sh
+```
diff --git a/docs/doc-images/add-certificate.png b/docs/doc-images/add-certificate.png
new file mode 100644
index 0000000..e73d738
Binary files /dev/null and b/docs/doc-images/add-certificate.png differ
diff --git a/docs/doc-images/app.png b/docs/doc-images/app.png
new file mode 100644
index 0000000..0958544
Binary files /dev/null and b/docs/doc-images/app.png differ
diff --git a/docs/doc-images/catalog-ibm-blockchain.png b/docs/doc-images/catalog-ibm-blockchain.png
new file mode 100644
index 0000000..e765bcc
Binary files /dev/null and b/docs/doc-images/catalog-ibm-blockchain.png differ
diff --git a/docs/doc-images/certificate.png b/docs/doc-images/certificate.png
new file mode 100644
index 0000000..ead1275
Binary files /dev/null and b/docs/doc-images/certificate.png differ
diff --git a/docs/doc-images/connection-profile-code.png b/docs/doc-images/connection-profile-code.png
new file mode 100644
index 0000000..53e2c59
Binary files /dev/null and b/docs/doc-images/connection-profile-code.png differ
diff --git a/docs/doc-images/create-ibm-blockchain.png b/docs/doc-images/create-ibm-blockchain.png
new file mode 100644
index 0000000..89104c0
Binary files /dev/null and b/docs/doc-images/create-ibm-blockchain.png differ
diff --git a/docs/doc-images/diagram.png b/docs/doc-images/diagram.png
new file mode 100644
index 0000000..40622bb
Binary files /dev/null and b/docs/doc-images/diagram.png differ
diff --git a/docs/doc-images/download-connection-json.png b/docs/doc-images/download-connection-json.png
new file mode 100644
index 0000000..f29222f
Binary files /dev/null and b/docs/doc-images/download-connection-json.png differ
diff --git a/docs/doc-images/enter-monitor.png b/docs/doc-images/enter-monitor.png
new file mode 100644
index 0000000..61302d7
Binary files /dev/null and b/docs/doc-images/enter-monitor.png differ
diff --git a/docs/doc-images/ibm-blockchain-service.png b/docs/doc-images/ibm-blockchain-service.png
new file mode 100644
index 0000000..4dc0710
Binary files /dev/null and b/docs/doc-images/ibm-blockchain-service.png differ
diff --git a/docs/doc-images/loyalty_program.png b/docs/doc-images/loyalty_program.png
new file mode 100644
index 0000000..6ff2a8e
Binary files /dev/null and b/docs/doc-images/loyalty_program.png differ
diff --git a/docs/doc-images/register-ibm-cloud.png b/docs/doc-images/register-ibm-cloud.png
new file mode 100644
index 0000000..e75a17d
Binary files /dev/null and b/docs/doc-images/register-ibm-cloud.png differ
diff --git a/docs/doc-images/sync-certificate.png b/docs/doc-images/sync-certificate.png
new file mode 100644
index 0000000..8f95cb2
Binary files /dev/null and b/docs/doc-images/sync-certificate.png differ
diff --git a/fabric-dev-servers/DevServer_connection.json b/fabric-dev-servers/DevServer_connection.json
new file mode 100644
index 0000000..3bb63f4
--- /dev/null
+++ b/fabric-dev-servers/DevServer_connection.json
@@ -0,0 +1,57 @@
+{
+ "name": "hlfv1",
+ "x-type": "hlfv1",
+ "x-commitTimeout": 300,
+ "version": "1.0.0",
+ "client": {
+ "organization": "Org1",
+ "connection": {
+ "timeout": {
+ "peer": {
+ "endorser": "300",
+ "eventHub": "300",
+ "eventReg": "300"
+ },
+ "orderer": "300"
+ }
+ }
+ },
+ "channels": {
+ "composerchannel": {
+ "orderers": [
+ "orderer.example.com"
+ ],
+ "peers": {
+ "peer0.org1.example.com": {}
+ }
+ }
+ },
+ "organizations": {
+ "Org1": {
+ "mspid": "Org1MSP",
+ "peers": [
+ "peer0.org1.example.com"
+ ],
+ "certificateAuthorities": [
+ "ca.org1.example.com"
+ ]
+ }
+ },
+ "orderers": {
+ "orderer.example.com": {
+ "url": "grpc://localhost:7050"
+ }
+ },
+ "peers": {
+ "peer0.org1.example.com": {
+ "url": "grpc://localhost:7051",
+ "eventUrl": "grpc://localhost:7053"
+ }
+ },
+ "certificateAuthorities": {
+ "ca.org1.example.com": {
+ "url": "http://localhost:7054",
+ "caName": "ca.org1.example.com"
+ }
+ }
+}
diff --git a/fabric-dev-servers/_loader.sh b/fabric-dev-servers/_loader.sh
new file mode 100755
index 0000000..ea9fdcb
--- /dev/null
+++ b/fabric-dev-servers/_loader.sh
@@ -0,0 +1,50 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+echo "Development only script for Hyperledger Fabric control"
+
+
+# Grab the current directory
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+THIS_SCRIPT=`basename "$0"`
+echo "Running '${THIS_SCRIPT}'"
+
+if [ "${HL_FABRIC_VERSION}" ]; then
+ export FABRIC_VERSION="${HL_FABRIC_VERSION}"
+fi
+
+if [ "${HL_FABRIC_START_TIMEOUT}" ]; then
+ export FABRIC_START_TIMEOUT="${HL_FABRIC_START_TIMEOUT}"
+fi
+
+if [ -z ${FABRIC_VERSION+x} ]; then
+ echo "FABRIC_VERSION is unset, assuming hlfv11"
+ export FABRIC_VERSION="hlfv11"
+else
+ echo "FABRIC_VERSION is set to '$FABRIC_VERSION'"
+fi
+
+
+if [ -z ${FABRIC_START_TIMEOUT+x} ]; then
+ echo "FABRIC_START_TIMEOUT is unset, assuming 15 (seconds)"
+ export FABRIC_START_TIMEOUT=15
+else
+
+ re='^[0-9]+$'
+ if ! [[ $FABRIC_START_TIMEOUT =~ $re ]] ; then
+ echo "FABRIC_START_TIMEOUT: Not a number" >&2; exit 1
+ fi
+
+ echo "FABRIC_START_TIMEOUT is set to '$FABRIC_START_TIMEOUT'"
+fi
+
+"${DIR}"/fabric-scripts/"${FABRIC_VERSION}"/"${THIS_SCRIPT}" "$@"
diff --git a/fabric-dev-servers/createComposerProfile.sh b/fabric-dev-servers/createComposerProfile.sh
new file mode 100755
index 0000000..b1b5ffe
--- /dev/null
+++ b/fabric-dev-servers/createComposerProfile.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/_loader.sh
+echo
+echo NOTE: createComposerProfile is deprecated from v0.15.0 Please use createPeerAdminCard.sh
diff --git a/fabric-dev-servers/createPeerAdminCard.sh b/fabric-dev-servers/createPeerAdminCard.sh
new file mode 100755
index 0000000..90a16c5
--- /dev/null
+++ b/fabric-dev-servers/createPeerAdminCard.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/_loader.sh
diff --git a/fabric-dev-servers/downloadFabric.sh b/fabric-dev-servers/downloadFabric.sh
new file mode 100755
index 0000000..90a16c5
--- /dev/null
+++ b/fabric-dev-servers/downloadFabric.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/_loader.sh
diff --git a/fabric-dev-servers/fabric-dev-servers.tar.gz b/fabric-dev-servers/fabric-dev-servers.tar.gz
new file mode 100644
index 0000000..13b24cf
Binary files /dev/null and b/fabric-dev-servers/fabric-dev-servers.tar.gz differ
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/composer-channel.tx b/fabric-dev-servers/fabric-scripts/hlfv1/composer/composer-channel.tx
new file mode 100644
index 0000000..1506954
Binary files /dev/null and b/fabric-dev-servers/fabric-scripts/hlfv1/composer/composer-channel.tx differ
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/composer-genesis.block b/fabric-dev-servers/fabric-scripts/hlfv1/composer/composer-genesis.block
new file mode 100644
index 0000000..b8b6eef
Binary files /dev/null and b/fabric-dev-servers/fabric-scripts/hlfv1/composer/composer-genesis.block differ
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/configtx.yaml b/fabric-dev-servers/fabric-scripts/hlfv1/composer/configtx.yaml
new file mode 100644
index 0000000..bf74735
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/configtx.yaml
@@ -0,0 +1,136 @@
+# Copyright IBM Corp. All Rights Reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+---
+################################################################################
+#
+# Profile
+#
+# - Different configuration profiles may be encoded here to be specified
+# as parameters to the configtxgen tool
+#
+################################################################################
+Profiles:
+
+ ComposerOrdererGenesis:
+ Orderer:
+ <<: *OrdererDefaults
+ Organizations:
+ - *OrdererOrg
+ Consortiums:
+ ComposerConsortium:
+ Organizations:
+ - *Org1
+ ComposerChannel:
+ Consortium: ComposerConsortium
+ Application:
+ <<: *ApplicationDefaults
+ Organizations:
+ - *Org1
+
+################################################################################
+#
+# Section: Organizations
+#
+# - This section defines the different organizational identities which will
+# be referenced later in the configuration.
+#
+################################################################################
+Organizations:
+
+ # SampleOrg defines an MSP using the sampleconfig. It should never be used
+ # in production but may be used as a template for other definitions
+ - &OrdererOrg
+ # DefaultOrg defines the organization which is used in the sampleconfig
+ # of the fabric.git development environment
+ Name: OrdererOrg
+
+ # ID to load the MSP definition as
+ ID: OrdererMSP
+
+ # MSPDir is the filesystem path which contains the MSP configuration
+ MSPDir: crypto-config/ordererOrganizations/example.com/msp
+
+ # turn off security for the channel
+ AdminPrincipal: Role.MEMBER
+
+ - &Org1
+ # DefaultOrg defines the organization which is used in the sampleconfig
+ # of the fabric.git development environment
+ Name: Org1
+
+ # ID to load the MSP definition as
+ ID: Org1MSP
+
+ MSPDir: crypto-config/peerOrganizations/org1.example.com/msp
+
+ # turn off security for the peer
+ AdminPrincipal: Role.MEMBER
+
+ AnchorPeers:
+ # AnchorPeers defines the location of peers which can be used
+ # for cross org gossip communication. Note, this value is only
+ # encoded in the genesis block in the Application section context
+ - Host: peer0.org1.example.com
+ Port: 7051
+
+################################################################################
+#
+# SECTION: Orderer
+#
+# - This section defines the values to encode into a config transaction or
+# genesis block for orderer related parameters
+#
+################################################################################
+Orderer: &OrdererDefaults
+
+ # Orderer Type: The orderer implementation to start
+ # Available types are "solo" and "kafka"
+ OrdererType: solo
+
+ Addresses:
+ - orderer.example.com:7050
+
+ # Batch Timeout: The amount of time to wait before creating a batch
+ BatchTimeout: 2s
+
+ # Batch Size: Controls the number of messages batched into a block
+ BatchSize:
+
+ # Max Message Count: The maximum number of messages to permit in a batch
+ MaxMessageCount: 10
+
+ # Absolute Max Bytes: The absolute maximum number of bytes allowed for
+ # the serialized messages in a batch.
+ AbsoluteMaxBytes: 98 MB
+
+ # Preferred Max Bytes: The preferred maximum number of bytes allowed for
+ # the serialized messages in a batch. A message larger than the preferred
+ # max bytes will result in a batch larger than preferred max bytes.
+ PreferredMaxBytes: 512 KB
+
+ Kafka:
+ # Brokers: A list of Kafka brokers to which the orderer connects
+ # NOTE: Use IP:port notation
+ Brokers:
+ - 127.0.0.1:9092
+
+ # Organizations is the list of orgs which are defined as participants on
+ # the orderer side of the network
+ Organizations:
+
+################################################################################
+#
+# SECTION: Application
+#
+# - This section defines the values to encode into a config transaction or
+# genesis block for application related parameters
+#
+################################################################################
+Application: &ApplicationDefaults
+
+ # Organizations is the list of orgs which are defined as participants on
+ # the application side of the network
+ Organizations:
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457-priv b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457-priv
new file mode 100644
index 0000000..b35cc04
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457-priv
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
+ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
+4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457-pub b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457-pub
new file mode 100644
index 0000000..0038541
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457-pub
@@ -0,0 +1,4 @@
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEa7wrEFDUaTFJMxWgu/s1eJgpaPm3
+oOFZFMkEecuRZXuVFR9hooAoVp1KKLkztntmnAPw1Lsiwx09HpngTIaDAg==
+-----END PUBLIC KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/PeerAdmin b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/PeerAdmin
new file mode 100644
index 0000000..7db3ed0
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/PeerAdmin
@@ -0,0 +1 @@
+{"name":"PeerAdmin","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{"signingIdentity":"114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457","identity":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2\nWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh\nWRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G\nA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9\nrRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6\nCEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS\nXVMHPa0iyC497vdNURA=\n-----END CERTIFICATE-----\n"}}}
\ No newline at end of file
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/PeerAdmin.cert b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/PeerAdmin.cert
new file mode 100644
index 0000000..ead1b27
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/creds/PeerAdmin.cert
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
+
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config.yaml b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config.yaml
new file mode 100644
index 0000000..c012971
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config.yaml
@@ -0,0 +1,72 @@
+# Copyright IBM Corp. All Rights Reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+# ---------------------------------------------------------------------------
+# "OrdererOrgs" - Definition of organizations managing orderer nodes
+# ---------------------------------------------------------------------------
+OrdererOrgs:
+ # ---------------------------------------------------------------------------
+ # Orderer
+ # ---------------------------------------------------------------------------
+ - Name: Orderer
+ Domain: example.com
+ # ---------------------------------------------------------------------------
+ # "Specs" - See PeerOrgs below for complete description
+ # ---------------------------------------------------------------------------
+ Specs:
+ - Hostname: orderer
+# ---------------------------------------------------------------------------
+# "PeerOrgs" - Definition of organizations managing peer nodes
+# ---------------------------------------------------------------------------
+PeerOrgs:
+ # ---------------------------------------------------------------------------
+ # Org1
+ # ---------------------------------------------------------------------------
+ - Name: Org1
+ Domain: org1.example.com
+ # ---------------------------------------------------------------------------
+ # "Specs"
+ # ---------------------------------------------------------------------------
+ # Uncomment this section to enable the explicit definition of hosts in your
+ # configuration. Most users will want to use Template, below
+ #
+ # Specs is an array of Spec entries. Each Spec entry consists of two fields:
+ # - Hostname: (Required) The desired hostname, sans the domain.
+ # - CommonName: (Optional) Specifies the template or explicit override for
+ # the CN. By default, this is the template:
+ #
+ # "{{.Hostname}}.{{.Domain}}"
+ #
+ # which obtains its values from the Spec.Hostname and
+ # Org.Domain, respectively.
+ # ---------------------------------------------------------------------------
+ # Specs:
+ # - Hostname: foo # implicitly "foo.org1.example.com"
+ # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above
+ # - Hostname: bar
+ # - Hostname: baz
+ # ---------------------------------------------------------------------------
+ # "Template"
+ # ---------------------------------------------------------------------------
+ # Allows for the definition of 1 or more hosts that are created sequentially
+ # from a template. By default, this looks like "peer%d" from 0 to Count-1.
+ # You may override the number of nodes (Count), the starting index (Start)
+ # or the template used to construct the name (Hostname).
+ #
+ # Note: Template and Specs are not mutually exclusive. You may define both
+ # sections and the aggregate nodes will be created for you. Take care with
+ # name collisions
+ # ---------------------------------------------------------------------------
+ Template:
+ Count: 1
+ # Start: 5
+ # Hostname: {{.Prefix}}{{.Index}} # default
+ # ---------------------------------------------------------------------------
+ # "Users"
+ # ---------------------------------------------------------------------------
+ # Count: The number of user accounts _in addition_ to Admin
+ # ---------------------------------------------------------------------------
+ Users:
+ Count: 0
\ No newline at end of file
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/ca/5a6c4ce688103f8220147c6f8257eefbb5a1a8a80220c720d8152a2158021893_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/ca/5a6c4ce688103f8220147c6f8257eefbb5a1a8a80220c720d8152a2158021893_sk
new file mode 100755
index 0000000..b7f5725
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/ca/5a6c4ce688103f8220147c6f8257eefbb5a1a8a80220c720d8152a2158021893_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFH6mpG1eMF5aHxPT
+x9EYelK+x4Rsr0DwOcEAQx6CcHihRANCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ96P4
+WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJV
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4947ca37ff6aca98aed30b2f50b64b152f22089e51cf0a70ff5ceb76e9872d66_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4947ca37ff6aca98aed30b2f50b64b152f22089e51cf0a70ff5ceb76e9872d66_sk
new file mode 100755
index 0000000..3783ba7
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4947ca37ff6aca98aed30b2f50b64b152f22089e51cf0a70ff5ceb76e9872d66_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgT7Z7Si4n8bLYZp7z
+VG0zT1Na1jVRSsXZROJfkFeYt9+hRANCAATy+yoX2/Kvg+cpraErwgNpz/rugkll
+Gk5Iwhpg3aaNvvdJ6z8i2+jzUPJtixGEzdWH/ZwXEffrA6oJJyP0jQtX
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem
new file mode 100644
index 0000000..e738d4b
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICDDCCAbOgAwIBAgIRAJqWoKHhtATinG8VJNgTMXUwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMFgxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI
+KoZIzj0DAQcDQgAE8vsqF9vyr4PnKa2hK8IDac/67oJJZRpOSMIaYN2mjb73Ses/
+Itvo81DybYsRhM3Vh/2cFxH36wOqCScj9I0LV6NNMEswDgYDVR0PAQH/BAQDAgeA
+MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgC
+IMcg2BUqIVgCGJMwCgYIKoZIzj0EAwIDRwAwRAIgWKl+h9EpAQ1IAvDtjdheG6nJ
+dq7Vs2+hFs9vnNv09bQCIB5s9mNGSUJHte1i5AvaIPjc/hws2eb66+bfX1QNwbhn
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
new file mode 100644
index 0000000..3cf668b
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICWTCCAgCgAwIBAgIRALhcp6WnvPf/2+0jWtUq0nMwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMFgxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C
+AQYIKoZIzj0DAQcDQgAE+kgsualE6tqaaQ+Ci7p+JfwsNSyluabckhFeV9N1e2x9
+k/3cjZ87ty66SXrThm3OJ+9Ufz5aLKcpsJbH18Z+NqOBljCBkzAOBgNVHQ8BAf8E
+BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC
+MAAwKwYDVR0jBCQwIoAge1C2E6t/gUKp88GntUbJ8EICb/x0Ofo3tsXA65GuDB0w
+JwYDVR0RBCAwHoITb3JkZXJlci5leGFtcGxlLmNvbYIHb3JkZXJlcjAKBggqhkjO
+PQQDAgNHADBEAiAB21tBbEkaoRJHeNpGcC7VGznhnj6J2UAylgZyNfTfowIgOvLL
+4C5cTksc9tLh6v1WvEKV2JhbKHZgQdUY4R13Y90=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
new file mode 100755
index 0000000..b470076
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgpWulWhjFbPGJB/d0
+D/k4aWjBNnSNLtFN2QY/pBwitQqhRANCAAT6SCy5qUTq2pppD4KLun4l/Cw1LKW5
+ptySEV5X03V7bH2T/dyNnzu3LrpJetOGbc4n71R/PlospymwlsfXxn42
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/tlsca/7b50b613ab7f8142a9f3c1a7b546c9f042026ffc7439fa37b6c5c0eb91ae0c1d_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/tlsca/7b50b613ab7f8142a9f3c1a7b546c9f042026ffc7439fa37b6c5c0eb91ae0c1d_sk
new file mode 100755
index 0000000..b30faa3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/tlsca/7b50b613ab7f8142a9f3c1a7b546c9f042026ffc7439fa37b6c5c0eb91ae0c1d_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD6gfAHZtuIPiblb0
+EZdrYVbPqajueJxb6P5Ifd2hZBehRANCAASJn3QUVcKCp+s6lSPEP5KlWmE9rEG0
+kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi8zhr
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c6211e0b87d5ac94276dbf92e4cfadf385ee78e1c46cffb9a2e454e090736065_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c6211e0b87d5ac94276dbf92e4cfadf385ee78e1c46cffb9a2e454e090736065_sk
new file mode 100755
index 0000000..04694ac
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c6211e0b87d5ac94276dbf92e4cfadf385ee78e1c46cffb9a2e454e090736065_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg66zme6zQ30DbyTCY
+rFN6a5OpK279aD2iBKpVgtv0OMChRANCAATMnfON22yJYU+2+BqU8s/ZgaxO41Vk
+NCedJ40v/6RaJBSl5bMWQPgFEt61nBGZn3XnpqpAg8CfyIKOT9k0DpJi
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt
new file mode 100644
index 0000000..264edaf
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLTCCAdOgAwIBAgIRAONgtrFpsgoaRf+ViGEBS7gwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMFYxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEG
+CCqGSM49AwEHA0IABMoRWQ5005OSZtyuhHSoWabVdObnX+78B2xW+XfwW+q7s0fd
+z+op9R0loEXmPK0aR2qMladp3aQauD8sKxrP5EKjbDBqMA4GA1UdDwEB/wQEAwIF
+oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAr
+BgNVHSMEJDAigCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDrka4MHTAKBggq
+hkjOPQQDAgNIADBFAiEA1AzzNiqrn11QGcFMvf92a5O9rhexmmDYAwLxBdxY8tEC
+IF8y+sswrAEB/7QiSM8U4/OV4bGux66wOcG0aOHxaARN
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key
new file mode 100755
index 0000000..1d7a793
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBagM2GuFRP2W/XB0
+w7K+w9cerWwNgglYOC7utFjugYShRANCAATKEVkOdNOTkmbcroR0qFmm1XTm51/u
+/AdsVvl38Fvqu7NH3c/qKfUdJaBF5jytGkdqjJWnad2kGrg/LCsaz+RC
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/ca/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/ca/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk
new file mode 100755
index 0000000..4022198
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/ca/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZObukzIpU5YmhZT2
+5ib2VVACxDNw4hNqV4z6NM4oQ5ehRANCAASRDbXpgEPySSz4jMonIGZ0uqH8v+wR
+nm3BOpimwrXO02EhQOmWyV60AU4lBZEf6RuHMUU29LWrC94ZFTrO03mF
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/dfb17cf51dc061d585b4850599be0e4b8b7cc8cc363a67c23bc03c6c5393b0e0_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/dfb17cf51dc061d585b4850599be0e4b8b7cc8cc363a67c23bc03c6c5393b0e0_sk
new file mode 100755
index 0000000..09c32dc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/dfb17cf51dc061d585b4850599be0e4b8b7cc8cc363a67c23bc03c6c5393b0e0_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgszLZKjxiBoP/F/N6
+sos8vrz9xpmA9+3vwHjFMXqgbGChRANCAAQ88dSnv4RhvbEhuV5Z9EKUyCpu1CpG
+YhLZrkXxPQvcnohmn3Cbsr7DgsgEiDDULP0Pyeodbp/g5gGtunRxIadH
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem
new file mode 100644
index 0000000..9e3c927
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGTCCAb+gAwIBAgIQTx2TvwYtAf62KKQliP6UoTAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw
+EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPPHUp7+EYb2xIbleWfRClMgqbtQqRmIS
+2a5F8T0L3J6IZp9wm7K+w4LIBIgw1Cz9D8nqHW6f4OYBrbp0cSGnR6NNMEswDgYD
+VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgGatlq7sEgH2t
+EuTAqaqmZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDSAAwRQIhAK4i2Hz2
+K398TvjJk62neDoenYhkMY7rBN3BN/GI0G0SAiAOTx36wuy9/4BBV8NVBCZ9V+Iw
+msdI9CyZ59oVMVmNYQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
new file mode 100644
index 0000000..468e4b3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICZzCCAg6gAwIBAgIRAPg4tGCAaeumX7LxD1EiExYwCgYIKoZIzj0EAwIwdjEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
+c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0
+OTI2WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
+BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNv
+bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAQvfo4RUKA/+Lto3Kzon2k0kZrf
+P+F/BKJwILFnjSSDRGCzc2+gNRVL7KXAEd+75NJabDrCxw9ZAQDQrj9NtnmjgZcw
+gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD
+AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIO2aAH/ggPeNGvVBDb81ztrJeBzm
+gI88NXO3SOsN4UKsMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzEuZXhhbXBsZS5jb22C
+BXBlZXIwMAoGCCqGSM49BAMCA0cAMEQCIEVK0KrupF/8duJzcB+YYKHBiiYfDILn
+o6fqqV4psjOLAiBje9/eSoOTyC36AltmoMH4WtqMW8wgxBN1/WykTJKqfA==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
new file mode 100755
index 0000000..d29be79
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguNQETuKE+vnWg7gS
+uZRf6Ap96UkLrEcnjZZjc5SesouhRANCAAQEL36OEVCgP/i7aNys6J9pNJGa3z/h
+fwSicCCxZ40kg0Rgs3NvoDUVS+ylwBHfu+TSWmw6wscPWQEA0K4/TbZ5
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/ed9a007fe080f78d1af5410dbf35cedac9781ce6808f3c3573b748eb0de142ac_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/ed9a007fe080f78d1af5410dbf35cedac9781ce6808f3c3573b748eb0de142ac_sk
new file mode 100755
index 0000000..edf2025
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/ed9a007fe080f78d1af5410dbf35cedac9781ce6808f3c3573b748eb0de142ac_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgwf+XintinolU/uHq
++VTfq/HMZt1Ig/uO3PYsePxVvEahRANCAAReF/M/q6fREbsm7fEHYv5nU3e2LtlZ
+NRyPKW8Uij1YfaR1t3azYxckCKrSJYjrgVRrhlHCV309evXainChp/lD
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk
new file mode 100755
index 0000000..11b9fd4
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
+ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
+4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt
new file mode 100644
index 0000000..30cab19
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICOjCCAeGgAwIBAgIQBJoV3CWCr6nSXQsjv8BgQzAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29t
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3pLUrkpTc/+Dvk9q64SHYpbg0H14
+dDbqWiIHsdcRSKv1GLgW60Rs4WKcRgKj6jAzzt9qf3sNNyiLg6p4z4ROTaNsMGow
+DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM
+BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIO2aAH/ggPeNGvVBDb81ztrJeBzmgI88
+NXO3SOsN4UKsMAoGCCqGSM49BAMCA0cAMEQCIH7xbUq9DMhy21bXXb3i8dIta/vV
+mxLxZfSuu9+GLkZKAiBIRXd31n9LaoI1dgklt+d9A2ogpHX5+euq3k/fnp57qQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key
new file mode 100755
index 0000000..b040bb2
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPc3M5x+tOTwF+nKp
+t+LfeCHjPdzRGAgEF1PxtyApEnahRANCAATektSuSlNz/4O+T2rrhIdiluDQfXh0
+NupaIgex1xFIq/UYuBbrRGzhYpxGAqPqMDPO32p/ew03KIuDqnjPhE5N
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/docker-compose.yml b/fabric-dev-servers/fabric-scripts/hlfv1/composer/docker-compose.yml
new file mode 100644
index 0000000..d6d5ff1
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/docker-compose.yml
@@ -0,0 +1,73 @@
+version: '2'
+
+services:
+ ca.org1.example.com:
+ image: hyperledger/fabric-ca:$ARCH-1.0.4
+ environment:
+ - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
+ - FABRIC_CA_SERVER_CA_NAME=ca.org1.example.com
+# - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/org1.example.com-cert.pem
+# - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/a22daf356b2aab5792ea53e35f66fccef1d7f1aa2b3a2b92dbfbf96a448ea26a_sk
+
+ ports:
+ - "7054:7054"
+ command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk -b admin:adminpw -d'
+ volumes:
+ - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
+ container_name: ca.org1.example.com
+
+ orderer.example.com:
+ container_name: orderer.example.com
+ image: hyperledger/fabric-orderer:$ARCH-1.0.4
+ environment:
+ - ORDERER_GENERAL_LOGLEVEL=debug
+ - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
+ - ORDERER_GENERAL_GENESISMETHOD=file
+ - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/composer-genesis.block
+ - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
+ - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
+ working_dir: /opt/gopath/src/github.com/hyperledger/fabric
+ command: orderer
+ ports:
+ - 7050:7050
+ volumes:
+ - ./:/etc/hyperledger/configtx
+ - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/etc/hyperledger/msp/orderer/msp
+
+ peer0.org1.example.com:
+ container_name: peer0.org1.example.com
+ image: hyperledger/fabric-peer:$ARCH-1.0.4
+ environment:
+ - CORE_LOGGING_PEER=debug
+ - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
+ - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
+ - CORE_PEER_ID=peer0.org1.example.com
+ - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=composer_default
+ - CORE_PEER_LOCALMSPID=Org1MSP
+ - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/peer/msp
+ - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
+ - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
+ working_dir: /opt/gopath/src/github.com/hyperledger/fabric
+ command: peer node start --peer-defaultchain=false
+ ports:
+ - 7051:7051
+ - 7053:7053
+ volumes:
+ - /var/run/:/host/var/run/
+ - ./:/etc/hyperledger/configtx
+ - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/peer/msp
+ - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
+ depends_on:
+ - orderer.example.com
+ - couchdb
+
+ couchdb:
+ container_name: couchdb
+ image: hyperledger/fabric-couchdb:$ARCH-1.0.4
+ ports:
+ - 5984:5984
+ environment:
+ DB_URL: http://localhost:5984/member_db
+
+
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/composer/howtobuild.txt b/fabric-dev-servers/fabric-scripts/hlfv1/composer/howtobuild.txt
new file mode 100644
index 0000000..93c0310
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/composer/howtobuild.txt
@@ -0,0 +1,4 @@
+cryptogen generate --config=./crypto-config.yaml
+export FABRIC_CFG_PATH=$PWD
+configtxgen -profile ComposerOrdererGenesis -outputBlock ./composer-genesis.block
+configtxgen -profile ComposerChannel -outputCreateChannelTx ./composer-channel.tx -channelID composerchannel
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/createComposerProfile.sh b/fabric-dev-servers/fabric-scripts/hlfv1/createComposerProfile.sh
new file mode 100755
index 0000000..585eed6
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/createComposerProfile.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -ev
+# Grab the current directory
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+rm -rf ~/.composer-connection-profiles/hlfv1/*
+rm -rf ~/.composer-credentials/*
+
+# copy org admin credentials into the keyValStore
+mkdir -p ~/.composer-credentials
+cp "${DIR}"/composer/creds/* ~/.composer-credentials
+
+# create a composer connection profile
+mkdir -p ~/.composer-connection-profiles/hlfv1
+cat << EOF > ~/.composer-connection-profiles/hlfv1/connection.json
+{
+ "type": "hlfv1",
+ "orderers": [
+ { "url" : "grpc://localhost:7050" }
+ ],
+ "ca": { "url": "http://localhost:7054",
+ "name": "ca.org1.example.com"
+ },
+ "peers": [
+ {
+ "requestURL": "grpc://localhost:7051",
+ "eventURL": "grpc://localhost:7053"
+ }
+ ],
+ "keyValStore": "${HOME}/.composer-credentials",
+ "channel": "composerchannel",
+ "mspID": "Org1MSP",
+ "timeout": "300"
+}
+EOF
+echo "Hyperledger Composer profile has been created for the Hyperledger Fabric v1.0 instance"
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/createPeerAdminCard.sh b/fabric-dev-servers/fabric-scripts/hlfv1/createPeerAdminCard.sh
new file mode 100755
index 0000000..c4a9e4c
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/createPeerAdminCard.sh
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Grab the current directory
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+if [ -z "${HL_COMPOSER_CLI}" ]; then
+ HL_COMPOSER_CLI=$(which composer)
+fi
+
+echo
+# check that the composer command exists at a version >v0.14
+COMPOSER_VERSION=$("${HL_COMPOSER_CLI}" --version 2>/dev/null)
+COMPOSER_RC=$?
+
+if [ $COMPOSER_RC -eq 0 ]; then
+ AWKRET=$(echo $COMPOSER_VERSION | awk -F. '{if ($2<15 || $2>16) print "1"; else print "0";}')
+ if [ $AWKRET -eq 1 ]; then
+ echo $COMPOSER_VERSION is not supported for this level of fabric. Please use version 0.16
+ exit 1
+ else
+ echo Using composer-cli at $COMPOSER_VERSION
+ fi
+else
+ echo 'Need to have composer-cli installed at version 0.16'
+ exit 1
+fi
+
+cat << EOF > /tmp/.connection.json
+{
+ "name": "hlfv1",
+ "type": "hlfv1",
+ "orderers": [
+ { "url" : "grpc://localhost:7050" }
+ ],
+ "ca": { "url": "http://localhost:7054", "name": "ca.org1.example.com"},
+ "peers": [
+ {
+ "requestURL": "grpc://localhost:7051",
+ "eventURL": "grpc://localhost:7053"
+ }
+ ],
+ "channel": "composerchannel",
+ "mspID": "Org1MSP",
+ "timeout": 300
+}
+EOF
+
+PRIVATE_KEY="${DIR}"/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk
+CERT="${DIR}"/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
+
+if "${HL_COMPOSER_CLI}" card list -n PeerAdmin@hlfv1 > /dev/null; then
+ "${HL_COMPOSER_CLI}" card delete -n PeerAdmin@hlfv1
+fi
+"${HL_COMPOSER_CLI}" card create -p /tmp/.connection.json -u PeerAdmin -c "${CERT}" -k "${PRIVATE_KEY}" -r PeerAdmin -r ChannelAdmin --file /tmp/PeerAdmin@hlfv1.card
+"${HL_COMPOSER_CLI}" card import --file /tmp/PeerAdmin@hlfv1.card
+
+rm -rf /tmp/.connection.json
+
+echo "Hyperledger Composer PeerAdmin card has been imported"
+"${HL_COMPOSER_CLI}" card list
+
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/downloadFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv1/downloadFabric.sh
new file mode 100755
index 0000000..664712a
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/downloadFabric.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -ev
+
+# Set ARCH
+ARCH=`uname -m`
+
+# Grab the current directory.
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Pull and tag the latest Hyperledger Fabric base image.
+docker pull hyperledger/fabric-peer:$ARCH-1.0.4
+docker pull hyperledger/fabric-ca:$ARCH-1.0.4
+docker pull hyperledger/fabric-ccenv:$ARCH-1.0.4
+docker pull hyperledger/fabric-orderer:$ARCH-1.0.4
+docker pull hyperledger/fabric-couchdb:$ARCH-1.0.4
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/startFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv1/startFabric.sh
new file mode 100755
index 0000000..4ee65f4
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/startFabric.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -ev
+
+#Detect architecture
+ARCH=`uname -m`
+
+# Grab the current directory
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+#
+
+ARCH=$ARCH docker-compose -f "${DIR}"/composer/docker-compose.yml down
+ARCH=$ARCH docker-compose -f "${DIR}"/composer/docker-compose.yml up -d
+
+# wait for Hyperledger Fabric to start
+# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=
+echo ${FABRIC_START_TIMEOUT}
+sleep ${FABRIC_START_TIMEOUT}
+
+# Create the channel
+docker exec peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c composerchannel -f /etc/hyperledger/configtx/composer-channel.tx
+
+# Join peer0.org1.example.com to the channel.
+docker exec -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel join -b composerchannel.block
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/stopFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv1/stopFabric.sh
new file mode 100755
index 0000000..3b0a89c
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/stopFabric.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -ev
+
+#Detect architecture
+ARCH=`uname -m`
+
+# Grab the current directorydirectory.
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Shut down the Docker containers that might be currently running.
+cd "${DIR}"/composer
+ARCH=$ARCH docker-compose -f "${DIR}"/composer/docker-compose.yml stop
diff --git a/fabric-dev-servers/fabric-scripts/hlfv1/teardownFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv1/teardownFabric.sh
new file mode 100755
index 0000000..0fe181b
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv1/teardownFabric.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -ev
+
+#Detect architecture
+ARCH=`uname -m`
+
+# Grab the current directory.
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Shut down the Docker containers for the system tests.
+cd "${DIR}"/composer
+ARCH=$ARCH docker-compose -f docker-compose.yml kill && docker-compose -f docker-compose.yml down
+
+# remove the local state
+#rm -fr ~/.composer
+#rm -rf ~/.composer-connection-profiles/hlfv1
+#rm -f ~/.composer-credentials/*
+
+# remove chaincode docker images
+# docker rmi $(docker images dev-* -q)
+
+# Your system is now clean
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/composer-channel.tx b/fabric-dev-servers/fabric-scripts/hlfv11/composer/composer-channel.tx
new file mode 100644
index 0000000..1506954
Binary files /dev/null and b/fabric-dev-servers/fabric-scripts/hlfv11/composer/composer-channel.tx differ
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/composer-genesis.block b/fabric-dev-servers/fabric-scripts/hlfv11/composer/composer-genesis.block
new file mode 100644
index 0000000..b8b6eef
Binary files /dev/null and b/fabric-dev-servers/fabric-scripts/hlfv11/composer/composer-genesis.block differ
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/configtx.yaml b/fabric-dev-servers/fabric-scripts/hlfv11/composer/configtx.yaml
new file mode 100644
index 0000000..bf74735
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/configtx.yaml
@@ -0,0 +1,136 @@
+# Copyright IBM Corp. All Rights Reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+---
+################################################################################
+#
+# Profile
+#
+# - Different configuration profiles may be encoded here to be specified
+# as parameters to the configtxgen tool
+#
+################################################################################
+Profiles:
+
+ ComposerOrdererGenesis:
+ Orderer:
+ <<: *OrdererDefaults
+ Organizations:
+ - *OrdererOrg
+ Consortiums:
+ ComposerConsortium:
+ Organizations:
+ - *Org1
+ ComposerChannel:
+ Consortium: ComposerConsortium
+ Application:
+ <<: *ApplicationDefaults
+ Organizations:
+ - *Org1
+
+################################################################################
+#
+# Section: Organizations
+#
+# - This section defines the different organizational identities which will
+# be referenced later in the configuration.
+#
+################################################################################
+Organizations:
+
+ # SampleOrg defines an MSP using the sampleconfig. It should never be used
+ # in production but may be used as a template for other definitions
+ - &OrdererOrg
+ # DefaultOrg defines the organization which is used in the sampleconfig
+ # of the fabric.git development environment
+ Name: OrdererOrg
+
+ # ID to load the MSP definition as
+ ID: OrdererMSP
+
+ # MSPDir is the filesystem path which contains the MSP configuration
+ MSPDir: crypto-config/ordererOrganizations/example.com/msp
+
+ # turn off security for the channel
+ AdminPrincipal: Role.MEMBER
+
+ - &Org1
+ # DefaultOrg defines the organization which is used in the sampleconfig
+ # of the fabric.git development environment
+ Name: Org1
+
+ # ID to load the MSP definition as
+ ID: Org1MSP
+
+ MSPDir: crypto-config/peerOrganizations/org1.example.com/msp
+
+ # turn off security for the peer
+ AdminPrincipal: Role.MEMBER
+
+ AnchorPeers:
+ # AnchorPeers defines the location of peers which can be used
+ # for cross org gossip communication. Note, this value is only
+ # encoded in the genesis block in the Application section context
+ - Host: peer0.org1.example.com
+ Port: 7051
+
+################################################################################
+#
+# SECTION: Orderer
+#
+# - This section defines the values to encode into a config transaction or
+# genesis block for orderer related parameters
+#
+################################################################################
+Orderer: &OrdererDefaults
+
+ # Orderer Type: The orderer implementation to start
+ # Available types are "solo" and "kafka"
+ OrdererType: solo
+
+ Addresses:
+ - orderer.example.com:7050
+
+ # Batch Timeout: The amount of time to wait before creating a batch
+ BatchTimeout: 2s
+
+ # Batch Size: Controls the number of messages batched into a block
+ BatchSize:
+
+ # Max Message Count: The maximum number of messages to permit in a batch
+ MaxMessageCount: 10
+
+ # Absolute Max Bytes: The absolute maximum number of bytes allowed for
+ # the serialized messages in a batch.
+ AbsoluteMaxBytes: 98 MB
+
+ # Preferred Max Bytes: The preferred maximum number of bytes allowed for
+ # the serialized messages in a batch. A message larger than the preferred
+ # max bytes will result in a batch larger than preferred max bytes.
+ PreferredMaxBytes: 512 KB
+
+ Kafka:
+ # Brokers: A list of Kafka brokers to which the orderer connects
+ # NOTE: Use IP:port notation
+ Brokers:
+ - 127.0.0.1:9092
+
+ # Organizations is the list of orgs which are defined as participants on
+ # the orderer side of the network
+ Organizations:
+
+################################################################################
+#
+# SECTION: Application
+#
+# - This section defines the values to encode into a config transaction or
+# genesis block for application related parameters
+#
+################################################################################
+Application: &ApplicationDefaults
+
+ # Organizations is the list of orgs which are defined as participants on
+ # the application side of the network
+ Organizations:
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config.yaml b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config.yaml
new file mode 100644
index 0000000..c012971
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config.yaml
@@ -0,0 +1,72 @@
+# Copyright IBM Corp. All Rights Reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+# ---------------------------------------------------------------------------
+# "OrdererOrgs" - Definition of organizations managing orderer nodes
+# ---------------------------------------------------------------------------
+OrdererOrgs:
+ # ---------------------------------------------------------------------------
+ # Orderer
+ # ---------------------------------------------------------------------------
+ - Name: Orderer
+ Domain: example.com
+ # ---------------------------------------------------------------------------
+ # "Specs" - See PeerOrgs below for complete description
+ # ---------------------------------------------------------------------------
+ Specs:
+ - Hostname: orderer
+# ---------------------------------------------------------------------------
+# "PeerOrgs" - Definition of organizations managing peer nodes
+# ---------------------------------------------------------------------------
+PeerOrgs:
+ # ---------------------------------------------------------------------------
+ # Org1
+ # ---------------------------------------------------------------------------
+ - Name: Org1
+ Domain: org1.example.com
+ # ---------------------------------------------------------------------------
+ # "Specs"
+ # ---------------------------------------------------------------------------
+ # Uncomment this section to enable the explicit definition of hosts in your
+ # configuration. Most users will want to use Template, below
+ #
+ # Specs is an array of Spec entries. Each Spec entry consists of two fields:
+ # - Hostname: (Required) The desired hostname, sans the domain.
+ # - CommonName: (Optional) Specifies the template or explicit override for
+ # the CN. By default, this is the template:
+ #
+ # "{{.Hostname}}.{{.Domain}}"
+ #
+ # which obtains its values from the Spec.Hostname and
+ # Org.Domain, respectively.
+ # ---------------------------------------------------------------------------
+ # Specs:
+ # - Hostname: foo # implicitly "foo.org1.example.com"
+ # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above
+ # - Hostname: bar
+ # - Hostname: baz
+ # ---------------------------------------------------------------------------
+ # "Template"
+ # ---------------------------------------------------------------------------
+ # Allows for the definition of 1 or more hosts that are created sequentially
+ # from a template. By default, this looks like "peer%d" from 0 to Count-1.
+ # You may override the number of nodes (Count), the starting index (Start)
+ # or the template used to construct the name (Hostname).
+ #
+ # Note: Template and Specs are not mutually exclusive. You may define both
+ # sections and the aggregate nodes will be created for you. Take care with
+ # name collisions
+ # ---------------------------------------------------------------------------
+ Template:
+ Count: 1
+ # Start: 5
+ # Hostname: {{.Prefix}}{{.Index}} # default
+ # ---------------------------------------------------------------------------
+ # "Users"
+ # ---------------------------------------------------------------------------
+ # Count: The number of user accounts _in addition_ to Admin
+ # ---------------------------------------------------------------------------
+ Users:
+ Count: 0
\ No newline at end of file
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/ca/5a6c4ce688103f8220147c6f8257eefbb5a1a8a80220c720d8152a2158021893_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/ca/5a6c4ce688103f8220147c6f8257eefbb5a1a8a80220c720d8152a2158021893_sk
new file mode 100755
index 0000000..b7f5725
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/ca/5a6c4ce688103f8220147c6f8257eefbb5a1a8a80220c720d8152a2158021893_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgFH6mpG1eMF5aHxPT
+x9EYelK+x4Rsr0DwOcEAQx6CcHihRANCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ96P4
+WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJV
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4947ca37ff6aca98aed30b2f50b64b152f22089e51cf0a70ff5ceb76e9872d66_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4947ca37ff6aca98aed30b2f50b64b152f22089e51cf0a70ff5ceb76e9872d66_sk
new file mode 100755
index 0000000..3783ba7
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/4947ca37ff6aca98aed30b2f50b64b152f22089e51cf0a70ff5ceb76e9872d66_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgT7Z7Si4n8bLYZp7z
+VG0zT1Na1jVRSsXZROJfkFeYt9+hRANCAATy+yoX2/Kvg+cpraErwgNpz/rugkll
+Gk5Iwhpg3aaNvvdJ6z8i2+jzUPJtixGEzdWH/ZwXEffrA6oJJyP0jQtX
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem
new file mode 100644
index 0000000..e738d4b
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICDDCCAbOgAwIBAgIRAJqWoKHhtATinG8VJNgTMXUwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMFgxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI
+KoZIzj0DAQcDQgAE8vsqF9vyr4PnKa2hK8IDac/67oJJZRpOSMIaYN2mjb73Ses/
+Itvo81DybYsRhM3Vh/2cFxH36wOqCScj9I0LV6NNMEswDgYDVR0PAQH/BAQDAgeA
+MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgC
+IMcg2BUqIVgCGJMwCgYIKoZIzj0EAwIDRwAwRAIgWKl+h9EpAQ1IAvDtjdheG6nJ
+dq7Vs2+hFs9vnNv09bQCIB5s9mNGSUJHte1i5AvaIPjc/hws2eb66+bfX1QNwbhn
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
new file mode 100644
index 0000000..3cf668b
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICWTCCAgCgAwIBAgIRALhcp6WnvPf/2+0jWtUq0nMwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMFgxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C
+AQYIKoZIzj0DAQcDQgAE+kgsualE6tqaaQ+Ci7p+JfwsNSyluabckhFeV9N1e2x9
+k/3cjZ87ty66SXrThm3OJ+9Ufz5aLKcpsJbH18Z+NqOBljCBkzAOBgNVHQ8BAf8E
+BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC
+MAAwKwYDVR0jBCQwIoAge1C2E6t/gUKp88GntUbJ8EICb/x0Ofo3tsXA65GuDB0w
+JwYDVR0RBCAwHoITb3JkZXJlci5leGFtcGxlLmNvbYIHb3JkZXJlcjAKBggqhkjO
+PQQDAgNHADBEAiAB21tBbEkaoRJHeNpGcC7VGznhnj6J2UAylgZyNfTfowIgOvLL
+4C5cTksc9tLh6v1WvEKV2JhbKHZgQdUY4R13Y90=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
new file mode 100755
index 0000000..b470076
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgpWulWhjFbPGJB/d0
+D/k4aWjBNnSNLtFN2QY/pBwitQqhRANCAAT6SCy5qUTq2pppD4KLun4l/Cw1LKW5
+ptySEV5X03V7bH2T/dyNnzu3LrpJetOGbc4n71R/PlospymwlsfXxn42
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/tlsca/7b50b613ab7f8142a9f3c1a7b546c9f042026ffc7439fa37b6c5c0eb91ae0c1d_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/tlsca/7b50b613ab7f8142a9f3c1a7b546c9f042026ffc7439fa37b6c5c0eb91ae0c1d_sk
new file mode 100755
index 0000000..b30faa3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/tlsca/7b50b613ab7f8142a9f3c1a7b546c9f042026ffc7439fa37b6c5c0eb91ae0c1d_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgD6gfAHZtuIPiblb0
+EZdrYVbPqajueJxb6P5Ifd2hZBehRANCAASJn3QUVcKCp+s6lSPEP5KlWmE9rEG0
+kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi8zhr
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem
new file mode 100644
index 0000000..baa89f3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLzCCAdagAwIBAgIRAIt8vOTsiBPBWyNE7RX6dfcwCgYIKoZIzj0EAwIwaTEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt
+cGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGkxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp
+c2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEXMBUGA1UEAxMOY2EuZXhhbXBsZS5j
+b20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQ3itSHQBz1FH7u6C6J+DpPeFjQ
+96P4WvKd9m1NOm0IbYH+im0PZiKhc6ACmbecspGwtxZ4As8fWzXmFJgiIpJVo18w
+XTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMBAf8EBTAD
+AQH/MCkGA1UdDgQiBCBabEzmiBA/giAUfG+CV+77taGoqAIgxyDYFSohWAIYkzAK
+BggqhkjOPQQDAgNHADBEAiAiXeykPXGb1ThUmmV10TeX74kXOCCqg05b/QsmkUwc
+KAIgMbOlp0sQDf1/hBneh4le+ZvnLWIjJ4/cIMlS/ryI7hk=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c6211e0b87d5ac94276dbf92e4cfadf385ee78e1c46cffb9a2e454e090736065_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c6211e0b87d5ac94276dbf92e4cfadf385ee78e1c46cffb9a2e454e090736065_sk
new file mode 100755
index 0000000..04694ac
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/c6211e0b87d5ac94276dbf92e4cfadf385ee78e1c46cffb9a2e454e090736065_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg66zme6zQ30DbyTCY
+rFN6a5OpK279aD2iBKpVgtv0OMChRANCAATMnfON22yJYU+2+BqU8s/ZgaxO41Vk
+NCedJ40v/6RaJBSl5bMWQPgFEt61nBGZn3XnpqpAg8CfyIKOT9k0DpJi
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem
new file mode 100644
index 0000000..e5828b9
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICCjCCAbCgAwIBAgIQYJ/IIUmQMuLLE8LOsguhRzAKBggqhkjOPQQDAjBpMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
+bGUuY29tMB4XDTE3MDYyNjEyNDkyNloXDTI3MDYyNDEyNDkyNlowVjELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
+Y28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZI
+zj0DAQcDQgAEzJ3zjdtsiWFPtvgalPLP2YGsTuNVZDQnnSeNL/+kWiQUpeWzFkD4
+BRLetZwRmZ9156aqQIPAn8iCjk/ZNA6SYqNNMEswDgYDVR0PAQH/BAQDAgeAMAwG
+A1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgWmxM5ogQP4IgFHxvglfu+7WhqKgCIMcg
+2BUqIVgCGJMwCgYIKoZIzj0EAwIDSAAwRQIhAMauKcX8PeGZVeJHWkTUdpEJS7vJ
+B3fIwmaqZMEHxRRTAiAgDT48GHGfkCHiIE7AfcnywtES9h1kJ0102TCQ5o8JzQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt
new file mode 100644
index 0000000..e6f2d0e
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICNTCCAdygAwIBAgIRAMNvmQpnXi7uM19BLdha3MwwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMGwxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh
+bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASJn3QUVcKCp+s6lSPE
+P5KlWmE9rEG0kpECsAfW28vZQSIg2Ez+Tp1alA9SYN/5BtL1N6lUUoVhG3lz8uvi
+8zhro18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB
+Af8EBTADAQH/MCkGA1UdDgQiBCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDr
+ka4MHTAKBggqhkjOPQQDAgNHADBEAiB2hLiS8B1g4J5Qbxu15dVWAZTAXX9xPAvm
+4l25e1oS+gIgBiU/aBwSxY0uambwMB6xtQz0ZE/D4lyTZZcW9SODlOE=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt
new file mode 100644
index 0000000..264edaf
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICLTCCAdOgAwIBAgIRAONgtrFpsgoaRf+ViGEBS7gwCgYIKoZIzj0EAwIwbDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l
+eGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZaMFYxCzAJ
+BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh
+bmNpc2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEG
+CCqGSM49AwEHA0IABMoRWQ5005OSZtyuhHSoWabVdObnX+78B2xW+XfwW+q7s0fd
+z+op9R0loEXmPK0aR2qMladp3aQauD8sKxrP5EKjbDBqMA4GA1UdDwEB/wQEAwIF
+oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAr
+BgNVHSMEJDAigCB7ULYTq3+BQqnzwae1RsnwQgJv/HQ5+je2xcDrka4MHTAKBggq
+hkjOPQQDAgNIADBFAiEA1AzzNiqrn11QGcFMvf92a5O9rhexmmDYAwLxBdxY8tEC
+IF8y+sswrAEB/7QiSM8U4/OV4bGux66wOcG0aOHxaARN
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key
new file mode 100755
index 0000000..1d7a793
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgBagM2GuFRP2W/XB0
+w7K+w9cerWwNgglYOC7utFjugYShRANCAATKEVkOdNOTkmbcroR0qFmm1XTm51/u
+/AdsVvl38Fvqu7NH3c/qKfUdJaBF5jytGkdqjJWnad2kGrg/LCsaz+RC
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/ca/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/ca/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk
new file mode 100755
index 0000000..4022198
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/ca/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgZObukzIpU5YmhZT2
+5ib2VVACxDNw4hNqV4z6NM4oQ5ehRANCAASRDbXpgEPySSz4jMonIGZ0uqH8v+wR
+nm3BOpimwrXO02EhQOmWyV60AU4lBZEf6RuHMUU29LWrC94ZFTrO03mF
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/dfb17cf51dc061d585b4850599be0e4b8b7cc8cc363a67c23bc03c6c5393b0e0_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/dfb17cf51dc061d585b4850599be0e4b8b7cc8cc363a67c23bc03c6c5393b0e0_sk
new file mode 100755
index 0000000..09c32dc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/dfb17cf51dc061d585b4850599be0e4b8b7cc8cc363a67c23bc03c6c5393b0e0_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgszLZKjxiBoP/F/N6
+sos8vrz9xpmA9+3vwHjFMXqgbGChRANCAAQ88dSnv4RhvbEhuV5Z9EKUyCpu1CpG
+YhLZrkXxPQvcnohmn3Cbsr7DgsgEiDDULP0Pyeodbp/g5gGtunRxIadH
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem
new file mode 100644
index 0000000..9e3c927
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGTCCAb+gAwIBAgIQTx2TvwYtAf62KKQliP6UoTAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw
+EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPPHUp7+EYb2xIbleWfRClMgqbtQqRmIS
+2a5F8T0L3J6IZp9wm7K+w4LIBIgw1Cz9D8nqHW6f4OYBrbp0cSGnR6NNMEswDgYD
+VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgGatlq7sEgH2t
+EuTAqaqmZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDSAAwRQIhAK4i2Hz2
+K398TvjJk62neDoenYhkMY7rBN3BN/GI0G0SAiAOTx36wuy9/4BBV8NVBCZ9V+Iw
+msdI9CyZ59oVMVmNYQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
new file mode 100644
index 0000000..468e4b3
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICZzCCAg6gAwIBAgIRAPg4tGCAaeumX7LxD1EiExYwCgYIKoZIzj0EAwIwdjEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs
+c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0
+OTI2WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE
+BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNv
+bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAQvfo4RUKA/+Lto3Kzon2k0kZrf
+P+F/BKJwILFnjSSDRGCzc2+gNRVL7KXAEd+75NJabDrCxw9ZAQDQrj9NtnmjgZcw
+gZQwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD
+AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIO2aAH/ggPeNGvVBDb81ztrJeBzm
+gI88NXO3SOsN4UKsMCgGA1UdEQQhMB+CFnBlZXIwLm9yZzEuZXhhbXBsZS5jb22C
+BXBlZXIwMAoGCCqGSM49BAMCA0cAMEQCIEVK0KrupF/8duJzcB+YYKHBiiYfDILn
+o6fqqV4psjOLAiBje9/eSoOTyC36AltmoMH4WtqMW8wgxBN1/WykTJKqfA==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
new file mode 100755
index 0000000..d29be79
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQguNQETuKE+vnWg7gS
+uZRf6Ap96UkLrEcnjZZjc5SesouhRANCAAQEL36OEVCgP/i7aNys6J9pNJGa3z/h
+fwSicCCxZ40kg0Rgs3NvoDUVS+ylwBHfu+TSWmw6wscPWQEA0K4/TbZ5
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/ed9a007fe080f78d1af5410dbf35cedac9781ce6808f3c3573b748eb0de142ac_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/ed9a007fe080f78d1af5410dbf35cedac9781ce6808f3c3573b748eb0de142ac_sk
new file mode 100755
index 0000000..edf2025
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/ed9a007fe080f78d1af5410dbf35cedac9781ce6808f3c3573b748eb0de142ac_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgwf+XintinolU/uHq
++VTfq/HMZt1Ig/uO3PYsePxVvEahRANCAAReF/M/q6fREbsm7fEHYv5nU3e2LtlZ
+NRyPKW8Uij1YfaR1t3azYxckCKrSJYjrgVRrhlHCV309evXainChp/lD
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
new file mode 100644
index 0000000..1ae5692
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQjCCAemgAwIBAgIQDJbOh88U+tlJ9He5sjUwBDAKBggqhkjOPQQDAjBzMQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu
+b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5MjZa
+MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
+YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD
+ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
+kQ216YBD8kks+IzKJyBmdLqh/L/sEZ5twTqYpsK1ztNhIUDplsletAFOJQWRH+kb
+hzFFNvS1qwveGRU6ztN5haNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG
+BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgGatlq7sEgH2tEuTAqaqm
+ZJ5who46vQIXoyLYnkfhpq4wCgYIKoZIzj0EAwIDRwAwRAIgCyrj/lUjtBYaEgMt
+x98l5z+iLU6r+gp4CsdcDYzKLugCIGXlcU56avWSUtRAGn8Avpb6TOxtkrKIpeTE
+QfM8VsS/
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk
new file mode 100755
index 0000000..11b9fd4
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
+ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
+4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
new file mode 100644
index 0000000..3adfdfc
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
+cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
+Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
+WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
+U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
+MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
+WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
+A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
+rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
+CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
+XVMHPa0iyC497vdNURA=
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt
new file mode 100644
index 0000000..f779b66
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICSDCCAe+gAwIBAgIQEvXT1R9Bjz16NNZ0lRCnyDAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD
+VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D
+AQcDQgAEXhfzP6un0RG7Ju3xB2L+Z1N3ti7ZWTUcjylvFIo9WH2kdbd2s2MXJAiq
+0iWI64FUa4ZRwld9PXr12opwoaf5Q6NfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud
+JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQg7ZoAf+CA940a
+9UENvzXO2sl4HOaAjzw1c7dI6w3hQqwwCgYIKoZIzj0EAwIDRwAwRAIgLAHv49O1
+uEF96e1m45g5wOsBUDwFnYWg9iy53tJ815kCIAXL7AvDlNHk2eEGOKVi6UZUOrcP
+d0fDafkffCmv86mE
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt
new file mode 100644
index 0000000..30cab19
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICOjCCAeGgAwIBAgIQBJoV3CWCr6nSXQsjv8BgQzAKBggqhkjOPQQDAjB2MQsw
+CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
+YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz
+Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjYxMjQ5MjZaFw0yNzA2MjQxMjQ5
+MjZaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29t
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3pLUrkpTc/+Dvk9q64SHYpbg0H14
+dDbqWiIHsdcRSKv1GLgW60Rs4WKcRgKj6jAzzt9qf3sNNyiLg6p4z4ROTaNsMGow
+DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM
+BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIO2aAH/ggPeNGvVBDb81ztrJeBzmgI88
+NXO3SOsN4UKsMAoGCCqGSM49BAMCA0cAMEQCIH7xbUq9DMhy21bXXb3i8dIta/vV
+mxLxZfSuu9+GLkZKAiBIRXd31n9LaoI1dgklt+d9A2ogpHX5+euq3k/fnp57qQ==
+-----END CERTIFICATE-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key
new file mode 100755
index 0000000..b040bb2
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key
@@ -0,0 +1,5 @@
+-----BEGIN PRIVATE KEY-----
+MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgPc3M5x+tOTwF+nKp
+t+LfeCHjPdzRGAgEF1PxtyApEnahRANCAATektSuSlNz/4O+T2rrhIdiluDQfXh0
+NupaIgex1xFIq/UYuBbrRGzhYpxGAqPqMDPO32p/ew03KIuDqnjPhE5N
+-----END PRIVATE KEY-----
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/docker-compose-dev.yml b/fabric-dev-servers/fabric-scripts/hlfv11/composer/docker-compose-dev.yml
new file mode 100644
index 0000000..60153de
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/docker-compose-dev.yml
@@ -0,0 +1,72 @@
+version: '2'
+
+services:
+ ca.org1.example.com:
+ image: hyperledger/fabric-ca:$ARCH-1.1.0
+ environment:
+ - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
+ - FABRIC_CA_SERVER_CA_NAME=ca.org1.example.com
+
+ ports:
+ - "7054:7054"
+ command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk -b admin:adminpw -d'
+ volumes:
+ - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
+ container_name: ca.org1.example.com
+
+ orderer.example.com:
+ container_name: orderer.example.com
+ image: hyperledger/fabric-orderer:$ARCH-1.1.0
+ environment:
+ - ORDERER_GENERAL_LOGLEVEL=debug
+ - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
+ - ORDERER_GENERAL_GENESISMETHOD=file
+ - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/composer-genesis.block
+ - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
+ - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
+ working_dir: /opt/gopath/src/github.com/hyperledger/fabric
+ command: orderer
+ ports:
+ - 7050:7050
+ volumes:
+ - ./:/etc/hyperledger/configtx
+ - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/etc/hyperledger/msp/orderer/msp
+
+ peer0.org1.example.com:
+ container_name: peer0.org1.example.com
+ image: hyperledger/fabric-peer:$ARCH-1.1.0
+ environment:
+ - CORE_LOGGING_LEVEL=debug
+ - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
+ - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
+ - CORE_PEER_ID=peer0.org1.example.com
+ - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=composer_default
+ - CORE_PEER_LOCALMSPID=Org1MSP
+ - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/peer/msp
+ - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
+ - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
+ working_dir: /opt/gopath/src/github.com/hyperledger/fabric
+ command: peer node start --peer-chaincodedev=true
+ ports:
+ - 7051:7051
+ - 7052:7052
+ - 7053:7053
+ volumes:
+ - /var/run/:/host/var/run/
+ - ./:/etc/hyperledger/configtx
+ - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/peer/msp
+ - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
+ depends_on:
+ - orderer.example.com
+ - couchdb
+
+ couchdb:
+ container_name: couchdb
+ image: hyperledger/fabric-couchdb:$ARCH-0.4.6
+ ports:
+ - 5984:5984
+ environment:
+ DB_URL: http://localhost:5984/member_db
+
+
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/docker-compose.yml b/fabric-dev-servers/fabric-scripts/hlfv11/composer/docker-compose.yml
new file mode 100644
index 0000000..616ebf5
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/docker-compose.yml
@@ -0,0 +1,71 @@
+version: '2'
+
+services:
+ ca.org1.example.com:
+ image: hyperledger/fabric-ca:$ARCH-1.1.0
+ environment:
+ - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
+ - FABRIC_CA_SERVER_CA_NAME=ca.org1.example.com
+
+ ports:
+ - "7054:7054"
+ command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/19ab65abbb04807dad12e4c0a9aaa6649e70868e3abd0217a322d89e47e1a6ae_sk -b admin:adminpw -d'
+ volumes:
+ - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
+ container_name: ca.org1.example.com
+
+ orderer.example.com:
+ container_name: orderer.example.com
+ image: hyperledger/fabric-orderer:$ARCH-1.1.0
+ environment:
+ - ORDERER_GENERAL_LOGLEVEL=debug
+ - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
+ - ORDERER_GENERAL_GENESISMETHOD=file
+ - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/composer-genesis.block
+ - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
+ - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp
+ working_dir: /opt/gopath/src/github.com/hyperledger/fabric
+ command: orderer
+ ports:
+ - 7050:7050
+ volumes:
+ - ./:/etc/hyperledger/configtx
+ - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp:/etc/hyperledger/msp/orderer/msp
+
+ peer0.org1.example.com:
+ container_name: peer0.org1.example.com
+ image: hyperledger/fabric-peer:$ARCH-1.1.0
+ environment:
+ - CORE_LOGGING_LEVEL=debug
+ - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
+ - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
+ - CORE_PEER_ID=peer0.org1.example.com
+ - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=composer_default
+ - CORE_PEER_LOCALMSPID=Org1MSP
+ - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/peer/msp
+ - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
+ - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
+ working_dir: /opt/gopath/src/github.com/hyperledger/fabric
+ command: peer node start
+ ports:
+ - 7051:7051
+ - 7053:7053
+ volumes:
+ - /var/run/:/host/var/run/
+ - ./:/etc/hyperledger/configtx
+ - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/peer/msp
+ - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users
+ depends_on:
+ - orderer.example.com
+ - couchdb
+
+ couchdb:
+ container_name: couchdb
+ image: hyperledger/fabric-couchdb:$ARCH-0.4.6
+ ports:
+ - 5984:5984
+ environment:
+ DB_URL: http://localhost:5984/member_db
+
+
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/composer/howtobuild.txt b/fabric-dev-servers/fabric-scripts/hlfv11/composer/howtobuild.txt
new file mode 100644
index 0000000..93c0310
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/composer/howtobuild.txt
@@ -0,0 +1,4 @@
+cryptogen generate --config=./crypto-config.yaml
+export FABRIC_CFG_PATH=$PWD
+configtxgen -profile ComposerOrdererGenesis -outputBlock ./composer-genesis.block
+configtxgen -profile ComposerChannel -outputCreateChannelTx ./composer-channel.tx -channelID composerchannel
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/createComposerProfile.sh b/fabric-dev-servers/fabric-scripts/hlfv11/createComposerProfile.sh
new file mode 100755
index 0000000..bdd512c
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/createComposerProfile.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+echo "Not available on this level of fabric."
\ No newline at end of file
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/createPeerAdminCard.sh b/fabric-dev-servers/fabric-scripts/hlfv11/createPeerAdminCard.sh
new file mode 100755
index 0000000..7a7b265
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/createPeerAdminCard.sh
@@ -0,0 +1,160 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+Usage() {
+ echo ""
+ echo "Usage: ./createPeerAdminCard.sh [-h host] [-n]"
+ echo ""
+ echo "Options:"
+ echo -e "\t-h or --host:\t\t(Optional) name of the host to specify in the connection profile"
+ echo -e "\t-n or --noimport:\t(Optional) don't import into card store"
+ echo ""
+ echo "Example: ./createPeerAdminCard.sh"
+ echo ""
+ exit 1
+}
+
+Parse_Arguments() {
+ while [ $# -gt 0 ]; do
+ case $1 in
+ --help)
+ HELPINFO=true
+ ;;
+ --host | -h)
+ shift
+ HOST="$1"
+ ;;
+ --noimport | -n)
+ NOIMPORT=true
+ ;;
+ esac
+ shift
+ done
+}
+
+HOST=localhost
+Parse_Arguments $@
+
+if [ "${HELPINFO}" == "true" ]; then
+ Usage
+fi
+
+# Grab the current directory
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+if [ -z "${HL_COMPOSER_CLI}" ]; then
+ HL_COMPOSER_CLI=$(which composer)
+fi
+
+echo
+# check that the composer command exists at a version >v0.16
+COMPOSER_VERSION=$("${HL_COMPOSER_CLI}" --version 2>/dev/null)
+COMPOSER_RC=$?
+
+if [ $COMPOSER_RC -eq 0 ]; then
+ AWKRET=$(echo $COMPOSER_VERSION | awk -F. '{if ($2<19) print "1"; else print "0";}')
+ if [ $AWKRET -eq 1 ]; then
+ echo Cannot use $COMPOSER_VERSION version of composer with fabric 1.1, v0.19 or higher is required
+ exit 1
+ else
+ echo Using composer-cli at $COMPOSER_VERSION
+ fi
+else
+ echo 'No version of composer-cli has been detected, you need to install composer-cli at v0.19 or higher'
+ exit 1
+fi
+
+cat << EOF > DevServer_connection.json
+{
+ "name": "hlfv1",
+ "x-type": "hlfv1",
+ "x-commitTimeout": 300,
+ "version": "1.0.0",
+ "client": {
+ "organization": "Org1",
+ "connection": {
+ "timeout": {
+ "peer": {
+ "endorser": "300",
+ "eventHub": "300",
+ "eventReg": "300"
+ },
+ "orderer": "300"
+ }
+ }
+ },
+ "channels": {
+ "composerchannel": {
+ "orderers": [
+ "orderer.example.com"
+ ],
+ "peers": {
+ "peer0.org1.example.com": {}
+ }
+ }
+ },
+ "organizations": {
+ "Org1": {
+ "mspid": "Org1MSP",
+ "peers": [
+ "peer0.org1.example.com"
+ ],
+ "certificateAuthorities": [
+ "ca.org1.example.com"
+ ]
+ }
+ },
+ "orderers": {
+ "orderer.example.com": {
+ "url": "grpc://${HOST}:7050"
+ }
+ },
+ "peers": {
+ "peer0.org1.example.com": {
+ "url": "grpc://${HOST}:7051",
+ "eventUrl": "grpc://${HOST}:7053"
+ }
+ },
+ "certificateAuthorities": {
+ "ca.org1.example.com": {
+ "url": "http://${HOST}:7054",
+ "caName": "ca.org1.example.com"
+ }
+ }
+}
+EOF
+
+PRIVATE_KEY="${DIR}"/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457_sk
+CERT="${DIR}"/composer/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
+
+if [ "${NOIMPORT}" != "true" ]; then
+ CARDOUTPUT=/tmp/PeerAdmin@hlfv1.card
+else
+ CARDOUTPUT=PeerAdmin@hlfv1.card
+fi
+
+"${HL_COMPOSER_CLI}" card create -p DevServer_connection.json -u PeerAdmin -c "${CERT}" -k "${PRIVATE_KEY}" -r PeerAdmin -r ChannelAdmin --file $CARDOUTPUT
+
+if [ "${NOIMPORT}" != "true" ]; then
+ if "${HL_COMPOSER_CLI}" card list -c PeerAdmin@hlfv1 > /dev/null; then
+ "${HL_COMPOSER_CLI}" card delete -c PeerAdmin@hlfv1
+ fi
+
+ "${HL_COMPOSER_CLI}" card import --file /tmp/PeerAdmin@hlfv1.card
+ "${HL_COMPOSER_CLI}" card list
+ echo "Hyperledger Composer PeerAdmin card has been imported, host of fabric specified as '${HOST}'"
+ rm /tmp/PeerAdmin@hlfv1.card
+else
+ echo "Hyperledger Composer PeerAdmin card has been created, host of fabric specified as '${HOST}'"
+fi
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/downloadFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv11/downloadFabric.sh
new file mode 100755
index 0000000..0180b2d
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/downloadFabric.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -e
+
+# Set ARCH
+ARCH=`uname -m`
+
+# Grab the current directory.
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Pull and tag the latest Hyperledger Fabric base image.
+docker pull hyperledger/fabric-peer:$ARCH-1.1.0
+docker pull hyperledger/fabric-ca:$ARCH-1.1.0
+docker pull hyperledger/fabric-ccenv:$ARCH-1.1.0
+docker pull hyperledger/fabric-orderer:$ARCH-1.1.0
+docker pull hyperledger/fabric-couchdb:$ARCH-0.4.6
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/startFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv11/startFabric.sh
new file mode 100755
index 0000000..87f1a17
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/startFabric.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -e
+
+Usage() {
+ echo ""
+ echo "Usage: ./startFabric.sh [-d || --dev]"
+ echo ""
+ echo "Options:"
+ echo -e "\t-d or --dev: (Optional) enable fabric development mode"
+ echo ""
+ echo "Example: ./startFabric.sh"
+ echo ""
+ exit 1
+}
+
+Parse_Arguments() {
+ while [ $# -gt 0 ]; do
+ case $1 in
+ --help)
+ HELPINFO=true
+ ;;
+ --dev | -d)
+ FABRIC_DEV_MODE=true
+ ;;
+ esac
+ shift
+ done
+}
+
+Parse_Arguments $@
+
+if [ "${HELPINFO}" == "true" ]; then
+ Usage
+fi
+
+#Detect architecture
+ARCH=`uname -m`
+
+# Grab the current directory
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+if [ "${FABRIC_DEV_MODE}" == "true" ]; then
+ DOCKER_FILE="${DIR}"/composer/docker-compose-dev.yml
+else
+ DOCKER_FILE="${DIR}"/composer/docker-compose.yml
+fi
+
+ARCH=$ARCH docker-compose -f "${DOCKER_FILE}" down
+ARCH=$ARCH docker-compose -f "${DOCKER_FILE}" up -d
+
+# wait for Hyperledger Fabric to start
+# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=
+echo "sleeping for ${FABRIC_START_TIMEOUT} seconds to wait for fabric to complete start up"
+sleep ${FABRIC_START_TIMEOUT}
+
+# Create the channel
+docker exec peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c composerchannel -f /etc/hyperledger/configtx/composer-channel.tx
+
+# Join peer0.org1.example.com to the channel.
+docker exec -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel join -b composerchannel.block
+
+if [ "${FABRIC_DEV_MODE}" == "true" ]; then
+ echo "Fabric Network started in chaincode development mode"
+fi
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/stopFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv11/stopFabric.sh
new file mode 100755
index 0000000..03f91e6
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/stopFabric.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -e
+
+#Detect architecture
+ARCH=`uname -m`
+
+# Grab the current directorydirectory.
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Shut down the Docker containers that might be currently running.
+DOCKER_FILE="${DIR}"/composer/docker-compose.yml
+
+ARCH=$ARCH docker-compose -f "${DOCKER_FILE}" stop
diff --git a/fabric-dev-servers/fabric-scripts/hlfv11/teardownFabric.sh b/fabric-dev-servers/fabric-scripts/hlfv11/teardownFabric.sh
new file mode 100755
index 0000000..84d48ba
--- /dev/null
+++ b/fabric-dev-servers/fabric-scripts/hlfv11/teardownFabric.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Exit on first error, print all commands.
+set -e
+
+#Detect architecture
+ARCH=`uname -m`
+
+# Grab the current directory.
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Shut down the Docker containers
+DOCKER_FILE="${DIR}"/composer/docker-compose.yml
+
+ARCH=$ARCH docker-compose -f "${DOCKER_FILE}" down
+
+# remove the local state
+#rm -rf ~/.composer
+
+# remove chaincode docker images
+# docker rmi $(docker images dev-* -q)
+
+# Your system is now clean
diff --git a/fabric-dev-servers/package.json b/fabric-dev-servers/package.json
new file mode 100644
index 0000000..3376390
--- /dev/null
+++ b/fabric-dev-servers/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "fabric-dev-servers",
+ "version": "0.0.11",
+ "description": "Helper Scripts to start Hyperledger Fabric v1.0 for development/test purposes",
+ "private": true,
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/hyperledger/composer-tools.git"
+ },
+ "author": "Hyperledger Composer",
+ "license": "Apache-2.0",
+ "keywords": [
+ "hyperledger",
+ "blockchain",
+ "solutions"
+ ],
+ "scripts": {
+ "licchk": "license-check-and-add",
+ "prepare": "npm run build-archives",
+ "build-archives": "gulp --gulpfile .travis/gulp.js",
+ "test": "npm run licchk"
+ },
+ "devDependencies": {
+ "gulp": "^3.9.1",
+ "gulp-gzip": "^1.4.0",
+ "gulp-tar": "^1.9.0",
+ "gulp-zip": "^4.0.0",
+ "license-check-and-add": "~2.3.0"
+ },
+ "license-check-and-add-config": {
+ "folder": ".",
+ "license": "LICENSE.txt",
+ "exact_paths_method": "EXCLUDE",
+ "exact_paths": [
+ "node_modules"
+ ],
+ "file_type_method": "INCLUDE",
+ "file_types": [
+ ".js",
+ ".sh"
+ ],
+ "license_formats": {
+ "js": {
+ "prepend": "/*",
+ "append": " */",
+ "eachLine": {
+ "prepend": " * "
+ }
+ }
+ },
+ "insert_license": false
+ }
+}
diff --git a/fabric-dev-servers/startFabric.sh b/fabric-dev-servers/startFabric.sh
new file mode 100755
index 0000000..02ef7e5
--- /dev/null
+++ b/fabric-dev-servers/startFabric.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/_loader.sh
+
+#DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+#npm install --prefix "${DIR}"
+
+#source "${DIR}"/_loader.sh
diff --git a/fabric-dev-servers/stopFabric.sh b/fabric-dev-servers/stopFabric.sh
new file mode 100755
index 0000000..90a16c5
--- /dev/null
+++ b/fabric-dev-servers/stopFabric.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/_loader.sh
diff --git a/fabric-dev-servers/teardownAllDocker.sh b/fabric-dev-servers/teardownAllDocker.sh
new file mode 100755
index 0000000..58011b2
--- /dev/null
+++ b/fabric-dev-servers/teardownAllDocker.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# BASH function that kill and remove the running containers
+function stop()
+{
+
+P1=$(docker ps -q)
+if [ "${P1}" != "" ]; then
+ echo "Killing all running containers" &2> /dev/null
+ docker kill ${P1}
+fi
+
+P2=$(docker ps -aq)
+if [ "${P2}" != "" ]; then
+ echo "Removing all containers" &2> /dev/null
+ docker rm ${P2} -f
+fi
+}
+
+# Function to remove the images as well
+function remove()
+{
+P=$(docker images -aq)
+if [ "${P}" != "" ]; then
+ echo "Removing images" &2> /dev/null
+ docker rmi ${P} -f
+fi
+}
+
+echo "For all Docker containers or images (not just Hyperledger Fabric and Composer)"
+echo "1 - Kill and remove only the containers"
+echo "2 - Kill and remove the containers and remove all the downloaded images"
+echo "3 - Quit and not do anything"
+echo
+PS3="Please select which option > "
+options=("Kill & Remove" "Remove Images" "Quit")
+select yn in "${options[@]}"; do
+ case $yn in
+ "Kill & Remove" ) stop; break;;
+ "Remove Images" ) stop; remove; break;;
+ "Quit" ) exit;;
+ esac
+done
diff --git a/fabric-dev-servers/teardownFabric.sh b/fabric-dev-servers/teardownFabric.sh
new file mode 100755
index 0000000..90a16c5
--- /dev/null
+++ b/fabric-dev-servers/teardownFabric.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/_loader.sh
diff --git a/lib/logic.js b/lib/logic.js
new file mode 100644
index 0000000..4358764
--- /dev/null
+++ b/lib/logic.js
@@ -0,0 +1,69 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+'use strict';
+
+/* global getParticipantRegistry emit */
+
+
+/**
+ * Sample transaction
+ * @param {org.clp.biznet.EarnPoints} earnPoints
+ * @transaction
+ */
+async function EarnPoints(earnPoints) {
+
+ //update member points
+ earnPoints.member.points = earnPoints.member.points + earnPoints.points;
+
+ //update member
+ const memberRegistry = await getParticipantRegistry('org.clp.biznet.Member');
+ await memberRegistry.update(earnPoints.member);
+
+ // check if partner exists on the network
+ const partnerRegistry = await getParticipantRegistry('org.clp.biznet.Partner');
+ partnerExists = await partnerRegistry.exists(earnPoints.partner.id);
+ if (partnerExists == false) {
+ throw new Error('Partner does not exist - check partner id');
+ }
+
+}
+
+
+/**
+ * Sample transaction
+ * @param {org.clp.biznet.UsePoints} usePoints
+ * @transaction
+ */
+async function UsePoints(usePoints) {
+
+ //check if member has sufficient points
+ if(usePoints.member.points < usePoints.points) {
+ throw new Error('Insufficient points');
+ }
+
+ //update member points
+ usePoints.member.points = usePoints.member.points - usePoints.points
+
+ //update member
+ const memberRegistry = await getParticipantRegistry('org.clp.biznet.Member');
+ await memberRegistry.update(usePoints.member);
+
+ // check if partner exists on the network
+ const partnerRegistry = await getParticipantRegistry('org.clp.biznet.Partner');
+ partnerExists = await partnerRegistry.exists(usePoints.partner.id);
+ if (partnerExists == false) {
+ throw new Error('Partner does not exist - check id');
+ }
+}
diff --git a/models/org.clp.biznet.cto b/models/org.clp.biznet.cto
new file mode 100644
index 0000000..467834f
--- /dev/null
+++ b/models/org.clp.biznet.cto
@@ -0,0 +1,46 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace org.clp.biznet
+
+//members identified by email
+participant Member identified by accountNumber {
+ o String accountNumber
+ o String firstName
+ o String lastName
+ o String phoneNumber
+ o String email
+ o Integer points
+}
+
+//partner identified by id
+participant Partner identified by id {
+ o String id
+ o String name
+}
+
+//points earned
+transaction EarnPoints {
+ o Integer points
+ --> Partner partner
+ --> Member member
+}
+
+//points spent
+transaction UsePoints {
+ o Integer points
+ --> Partner partner
+ --> Member member
+}
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..1e8869d
--- /dev/null
+++ b/package.json
@@ -0,0 +1,36 @@
+{
+ "engines": {
+ "composer": "^0.19.4"
+ },
+ "name": "clp-network",
+ "version": "0.0.1",
+ "description": "Customer Loyalty Program network",
+ "scripts": {
+ "prepublish": "composer archive create -t dir -n .",
+ "pretest": "npm run lint",
+ "lint": "eslint .",
+ "test": "nyc mocha -t 0 test/*.js && cucumber-js"
+ },
+ "keywords": [
+ "composer",
+ "composer-network"
+ ],
+ "author": "Raheel Zubairy",
+ "email": "raheel.zubairy@ibm.com",
+ "license": "Apache-2.0",
+ "devDependencies": {
+ "composer-admin": "^0.19.4",
+ "composer-cli": "^0.19.4",
+ "composer-client": "^0.19.4",
+ "composer-common": "^0.19.4",
+ "composer-connector-embedded": "^0.19.4",
+ "composer-cucumber-steps": "^0.19.4",
+ "chai": "latest",
+ "chai-as-promised": "latest",
+ "cucumber": "^2.2.0",
+ "eslint": "latest",
+ "nyc": "latest",
+ "mkdirp": "latest",
+ "mocha": "latest"
+ }
+}
diff --git a/permissions.acl b/permissions.acl
new file mode 100644
index 0000000..bfd0cff
--- /dev/null
+++ b/permissions.acl
@@ -0,0 +1,148 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+//Members to have access only to their own account
+rule MemberAccessOwnRecord {
+ description: "Allow memebers to access only their profile"
+ participant(p): "org.clp.biznet.Member"
+ operation: ALL
+ resource(r): "org.clp.biznet.Member"
+ condition: (r.getIdentifier() === p.getIdentifier())
+ action: ALLOW
+}
+
+//Members now to have access to other member accounts
+rule MemberAccessMembers {
+ description: "Allow memebers to access only their profile"
+ participant: "org.clp.biznet.Member"
+ operation: ALL
+ resource: "org.clp.biznet.Member"
+ action: DENY
+}
+
+//Members have access to Partners on the network
+rule MemberAccessPartners {
+ description: "Allow memebers to access only their profile"
+ participant: "org.clp.biznet.Member"
+ operation: ALL
+ resource: "org.clp.biznet.Partner"
+ action: ALLOW
+}
+
+//Members
+rule MemberAccessEarnPoints {
+ description: "Allow memebers to access only their profile"
+ participant(p): "org.clp.biznet.Member"
+ operation: ALL
+ resource(r): "org.clp.biznet.EarnPoints"
+ condition: (r.member.getIdentifier() === p.getIdentifier())
+ action: ALLOW
+}
+
+//Members
+rule MemberAccessUsePoints {
+ description: "Allow memebers to access only their profile"
+ participant(p): "org.clp.biznet.Member"
+ operation: ALL
+ resource(r): "org.clp.biznet.UsePoints"
+ condition: (r.member.getIdentifier() === p.getIdentifier())
+ action: ALLOW
+}
+
+
+//////Partner Access
+
+rule PartnerAccessOwnRecord {
+ description: "Allow memebers to access only their profile"
+ participant(p): "org.clp.biznet.Partner"
+ operation: ALL
+ resource(r): "org.clp.biznet.Partner"
+ condition: (r.getIdentifier() === p.getIdentifier())
+ action: ALLOW
+}
+
+//
+rule PartnerAccessPartner {
+ description: "Allow memebers to access only their profile"
+ participant(p): "org.clp.biznet.Partner"
+ operation: ALL
+ resource(r): "org.clp.biznet.Partner"
+ condition: (r.getIdentifier() === p.getIdentifier())
+ action: DENY
+}
+
+//
+rule PartnerAccessMember {
+ description: "Allow memebers to access only their profile"
+ participant: "org.clp.biznet.Partner"
+ operation: ALL
+ resource: "org.clp.biznet.Member"
+ action: DENY
+}
+
+//
+rule PartnerAccessEarnPoints {
+ description: "Allow residents to access only their profile"
+ participant(p): "org.clp.biznet.Partner"
+ operation: ALL
+ resource(r): "org.clp.biznet.EarnPoints"
+ condition: (r.partner.getIdentifier() === p.getIdentifier())
+ action: ALLOW
+}
+
+//
+rule PartnerAccessUsePoints {
+ description: "Allow memebers to access only their profile"
+ participant(p): "org.clp.biznet.Partner"
+ operation: ALL
+ resource(r): "org.clp.biznet.UsePoints"
+ condition: (r.partner.getIdentifier() === p.getIdentifier())
+ action: ALLOW
+}
+
+/*
+rule Default {
+ description: "Allow all participants access to all resources"
+ participant: "ANY"
+ operation: ALL
+ resource: "org.clp.biznet.*"
+ action: ALLOW
+}*/
+
+
+rule SystemACL {
+ description: "System ACL to permit all access"
+ participant: "ANY"
+ operation: ALL
+ resource: "org.hyperledger.composer.system.**"
+ action: ALLOW
+}
+
+rule NetworkAdminUser {
+ description: "Grant business network administrators full access to user resources"
+ participant: "org.hyperledger.composer.system.NetworkAdmin"
+ operation: ALL
+ resource: "**"
+ action: ALLOW
+}
+
+rule NetworkAdminSystem {
+ description: "Grant business network administrators full access to system resources"
+ participant: "org.hyperledger.composer.system.NetworkAdmin"
+ operation: ALL
+ resource: "org.hyperledger.composer.system.**"
+ action: ALLOW
+}
+
diff --git a/queries.qry b/queries.qry
new file mode 100644
index 0000000..2dd6f6a
--- /dev/null
+++ b/queries.qry
@@ -0,0 +1,39 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+query selectMembers {
+ description: "Select all members"
+ statement:
+ SELECT org.clp.biznet.Member
+}
+
+
+query selectPartners {
+ description: "Select all partners"
+ statement:
+ SELECT org.clp.biznet.Partner
+}
+
+query selectEarnPoints {
+ description: "Select all points earned transactions"
+ statement:
+ SELECT org.clp.biznet.EarnPoints
+}
+
+query selectUsePoints {
+ description: "Select all points earned transactions"
+ statement:
+ SELECT org.clp.biznet.UsePoints
+}
+
diff --git a/web-app/app.js b/web-app/app.js
new file mode 100644
index 0000000..a1ce586
--- /dev/null
+++ b/web-app/app.js
@@ -0,0 +1,331 @@
+'use strict';
+const express = require('express');
+const bodyParser = require('body-parser');
+const request = require('request');
+const path = require('path')
+
+const app = express();
+const router = express.Router();
+
+var network = require('./network/network.js');
+var validate = require('./network/validate.js');
+var analysis = require('./network/analysis.js');
+
+// Bootstrap application settings
+app.use(express.static('./public'));
+app.use('/scripts', express.static(path.join(__dirname, '/public/scripts')));
+
+app.use(bodyParser.json());
+
+app.get('/home', function(req, res) {
+ res.sendFile(path.join(__dirname + '/public/index.html'));
+});
+
+app.get('/member', function(req, res) {
+ res.sendFile(path.join(__dirname + '/public/member.html'));
+});
+
+app.get('/registerMember', function(req, res) {
+ res.sendFile(path.join(__dirname + '/public/registerMember.html'));
+});
+
+app.get('/partner', function(req, res) {
+ res.sendFile(path.join(__dirname + '/public/partner.html'));
+});
+
+app.get('/registerPartner', function(req, res) {
+ res.sendFile(path.join(__dirname + '/public/registerPartner.html'));
+});
+
+app.get('/about', function(req, res) {
+ res.sendFile(path.join(__dirname + '/public/about.html'));
+});
+
+
+
+app.post('/api/registerMember', function(req, res) {
+
+ var accountNumber = req.body.accountnumber;
+ var cardId = req.body.cardid;
+ var firstName = req.body.firstname;
+ var lastName = req.body.lastname;
+ var email = req.body.email;
+ var phoneNumber = req.body.phonenumber;
+
+ console.log('Using param - firstname: ' + firstName + ' lastname: ' + lastName + ' email: ' + email + ' phonenumber: ' + phoneNumber + ' accountNumber: ' + accountNumber + ' cardId: ' + cardId);
+
+ validate.validateMemberRegistration(cardId, accountNumber, firstName, lastName, email, phoneNumber)
+ .then((response) => {
+ if (response.error != null) {
+ res.json({
+ error: response.error
+ });
+ return;
+ } else {
+ network.registerMember(cardId, accountNumber, firstName, lastName, email, phoneNumber)
+ .then((response) => {
+ if (response.error != null) {
+ //console.log(response.error)
+ res.json({
+ error: response.error
+ });
+ } else {
+ console.log('return now')
+ res.json({
+ success: response
+ });
+ }
+ });
+ }
+ });
+
+
+});
+
+
+app.post('/api/registerPartner', function(req, res) {
+
+ var name = req.body.name;
+ var partnerId = req.body.partnerid;
+ var cardId = req.body.cardid;
+
+ console.log('Using param - name: ' + name + ' partnerId: ' + partnerId + ' cardId: ' + cardId);
+
+ validate.validatePartnerRegistration(cardId, partnerId, name)
+ .then((response) => {
+ if (response.error != null) {
+ res.json({
+ error: response.error
+ });
+ return;
+ } else {
+ network.registerPartner(cardId, partnerId, name)
+ .then((response) => {
+ if (response.error != null) {
+ //console.log(response.error)
+ res.json({
+ error: response.error
+ });
+ } else {
+ console.log('return now')
+ res.json({
+ success: response
+ });
+ }
+ });
+ }
+ });
+
+});
+
+
+app.post('/api/earnPoints', function(req, res) {
+
+ var accountNumber = req.body.accountnumber;
+ var cardId = req.body.cardid;
+ var partnerId = req.body.partnerid;
+ var points = parseFloat(req.body.points);
+
+ console.log('Using param - points: ' + points + ' partnerId: ' + partnerId + ' accountNumber: ' + accountNumber + ' cardId: ' + cardId);
+
+ validate.validatePoints(points)
+ .then((checkPoints) => {
+ if (checkPoints.error != null) {
+ res.json({
+ error: checkPoints.error
+ });
+ return;
+ } else {
+ points = checkPoints;
+ network.earnPointsTransaction(cardId, accountNumber, partnerId, points)
+ .then((response) => {
+ if (response.error != null) {
+ res.json({
+ error: response.error
+ });
+ } else {
+ console.log('return now')
+ res.json({
+ success: response
+ });
+ }
+ });
+ }
+ });
+
+});
+
+
+app.post('/api/usePoints', function(req, res) {
+
+ var accountNumber = req.body.accountnumber;
+ var cardId = req.body.cardid;
+ var partnerId = req.body.partnerid;
+ var points = parseFloat(req.body.points);
+
+ console.log('Using param - points: ' + points + ' partnerId: ' + partnerId + ' accountNumber: ' + accountNumber + ' cardId: ' + cardId);
+
+ validate.validatePoints(points)
+ .then((checkPoints) => {
+ if (checkPoints.error != null) {
+ res.json({
+ error: checkPoints.error
+ });
+ return;
+ } else {
+ points = checkPoints;
+ network.usePointsTransaction(cardId, accountNumber, partnerId, points)
+ .then((response) => {
+ if (response.error != null) {
+ res.json({
+ error: response.error
+ });
+ } else {
+ console.log('return now')
+ res.json({
+ success: response
+ });
+ }
+ });
+ }
+ });
+
+
+});
+
+
+app.post('/api/memberData', function(req, res) {
+
+ var accountNumber = req.body.accountnumber;
+ var cardId = req.body.cardid;
+
+ var returnData = {};
+
+ console.log('memberData using param - ' + ' accountNumber: ' + accountNumber + ' cardId: ' + cardId);
+
+ network.memberData(cardId, accountNumber)
+ .then((member) => {
+
+ if (member.error != null) {
+ res.json({
+ error: member.error
+ });
+ } else {
+
+ returnData.accountNumber = member.accountNumber;
+ returnData.firstName = member.firstName;
+ returnData.lastName = member.lastName;
+ returnData.phoneNumber = member.phoneNumber;
+ returnData.email = member.email;
+ returnData.points = member.points;
+ }
+
+ })
+ .then(() => {
+ network.usePointsTransactionsInfo(cardId)
+ .then((usePointsResults) => {
+ if (usePointsResults.error != null) {
+ res.json({
+ error: usePointsResults.error
+ });
+ } else {
+ returnData.usePointsResults = usePointsResults;
+ }
+
+ }).then(() => {
+ network.allPartnersInfo(cardId)
+ .then((partnersInfo) => {
+ if (partnersInfo.error != null) {
+ res.json({
+ error: partnersInfo.error
+ });
+ } else {
+ returnData.partnersData = partnersInfo;
+ }
+
+ })
+ .then(() => {
+ network.earnPointsTransactionsInfo(cardId)
+ .then((earnPointsResults) => {
+ if (earnPointsResults.error != null) {
+ res.json({
+ error: earnPointsResults.error
+ });
+ } else {
+ returnData.earnPointsResult = earnPointsResults;
+ }
+
+ res.json(returnData);
+
+ });
+ });
+ });
+ });
+
+});
+
+
+app.post('/api/partnerData', function(req, res) {
+
+ var partnerId = req.body.partnerid;
+ var cardId = req.body.cardid;
+
+ var returnData = {};
+
+ console.log('partnerData using param - ' + ' partnerId: ' + partnerId + ' cardId: ' + cardId);
+
+
+ network.partnerData(cardId, partnerId)
+ .then((partner) => {
+ console.log(partner)
+ if (partner.error != null) {
+ res.json({
+ error: partner.error
+ });
+ } else {
+ returnData.id = partner.id;
+ returnData.name = partner.name;
+ }
+ })
+ .then(() => {
+ network.usePointsTransactionsInfo(cardId)
+ .then((usePointsResults) => {
+ if (usePointsResults.error != null) {
+ res.json({
+ error: usePointsResults.error
+ });
+ } else {
+ returnData.usePointsResults = usePointsResults;
+ returnData.pointsCollected = analysis.totalPointsCollected(usePointsResults);
+ }
+
+
+ })
+ .then(() => {
+ network.earnPointsTransactionsInfo(cardId)
+ .then((earnPointsResults) => {
+ if (earnPointsResults.error != null) {
+ res.json({
+ error: earnPointsResults.error
+ });
+ } else {
+ returnData.earnPointsResults = earnPointsResults;
+ returnData.pointsGiven = analysis.totalPointsGiven(earnPointsResults);
+ }
+
+ res.json(returnData);
+
+ });
+ });
+ });
+
+});
+
+var port = process.env.PORT || 8000;
+if (process.env.VCAP_APPLICATION) {
+ port = process.env.PORT;
+}
+
+app.listen(port, function() {
+ console.log('app running on port: %d', port);
+});
diff --git a/web-app/manifest.yml b/web-app/manifest.yml
new file mode 100644
index 0000000..43b8b34
--- /dev/null
+++ b/web-app/manifest.yml
@@ -0,0 +1,8 @@
+applications:
+- disk_quota: 1024M
+ name: clp-on-ibm-blockchain
+ buildpack: sdk-for-nodejs
+ command: "npm start"
+ path: "."
+ instances: 1
+ memory: 256M
\ No newline at end of file
diff --git a/web-app/network/analysis.js b/web-app/network/analysis.js
new file mode 100644
index 0000000..7b8be58
--- /dev/null
+++ b/web-app/network/analysis.js
@@ -0,0 +1,24 @@
+
+
+
+module.exports = {
+
+
+ totalPointsCollected: function(usePointsTransactions) {
+ var totalPointsCollected = 0;
+ for (var i = 0; i < usePointsTransactions.length; i++) {
+ totalPointsCollected = totalPointsCollected + usePointsTransactions[i].points;
+ }
+ return totalPointsCollected;
+ },
+
+ totalPointsGiven: function(earnPointsTransactions) {
+ var totalPointsGiven = 0;
+ for (var i = 0; i < earnPointsTransactions.length; i++) {
+ totalPointsGiven = totalPointsGiven + earnPointsTransactions[i].points;
+ }
+ return totalPointsGiven;
+ }
+
+
+}
\ No newline at end of file
diff --git a/web-app/network/local_connection.json b/web-app/network/local_connection.json
new file mode 100644
index 0000000..fed6745
--- /dev/null
+++ b/web-app/network/local_connection.json
@@ -0,0 +1 @@
+{ "name":"hlfv1","x-type":"hlfv1","x-commitTimeout":300,"version":"1.0.0","client":{"organization":"Org1","connection":{"timeout":{"peer":{"endorser":"300","eventHub":"300","eventReg":"300"},"orderer":"300"}}},"channels":{"composerchannel":{"orderers":["orderer.example.com"],"peers":{"peer0.org1.example.com":{}}}},"organizations":{"Org1":{"mspid":"Org1MSP","peers":["peer0.org1.example.com"],"certificateAuthorities":["ca.org1.example.com"]}},"orderers":{"orderer.example.com":{"url":"grpc://localhost:7050"}},"peers":{"peer0.org1.example.com":{"url":"grpc://localhost:7051","eventUrl":"grpc://localhost:7053"}},"certificateAuthorities":{"ca.org1.example.com":{"url":"http://localhost:7054","caName":"ca.org1.example.com"}}}
\ No newline at end of file
diff --git a/web-app/network/network.js b/web-app/network/network.js
new file mode 100644
index 0000000..62ba8ee
--- /dev/null
+++ b/web-app/network/network.js
@@ -0,0 +1,327 @@
+const AdminConnection = require('composer-admin').AdminConnection;
+const BusinessNetworkConnection = require('composer-client').BusinessNetworkConnection;
+const { BusinessNetworkDefinition, CertificateUtil, IdCard } = require('composer-common');
+
+
+const namespace = 'org.clp.biznet';
+
+// In-memory card store for testing so cards are not persisted to the file system
+const cardStore = require('composer-common').NetworkCardStoreManager.getCardStore( { type: 'composer-wallet-inmemory' } );
+
+// Admin connection to the blockchain, used to deploy the business network
+let adminConnection;
+
+// This is the business network connection the tests will use.
+let businessNetworkConnection;
+
+// These are a list of receieved events.
+let events;
+
+let businessNetworkName = 'clp-network';
+let factory;
+
+
+
+/*
+ *
+ * @param {String} cardName The card name to use for this identity
+ * @param {Object} identity The identity details
+ */
+async function importCardForIdentity(cardName, identity) {
+
+ console.log('importCardForIdentity')
+ adminConnection = new AdminConnection();
+ businessNetworkName = 'clp-network';
+
+ const metadata = {
+ userName: identity.userID,
+ version: 1,
+ enrollmentSecret: identity.userSecret,
+ businessNetwork: businessNetworkName
+ };
+ const connectionProfile = require('./local_connection.json');
+ const card = new IdCard(metadata, connectionProfile);
+
+ await adminConnection.importCard(cardName, card);
+}
+
+
+
+/*
+* Reconnect using a different identity.
+* @param {String} cardName The identity to use.
+*/
+async function useIdentity(cardName) {
+ await businessNetworkConnection.disconnect();
+
+ businessNetworkConnection = new BusinessNetworkConnection();
+
+ await businessNetworkConnection.connect(cardName);
+}
+
+module.exports = {
+
+ /*
+ * Create participant
+ * @param {String} firstName first name
+ * @param {String} lastName last name
+ * @param {String} email email
+ * @param {String} id id
+ */
+ registerMember: async function (cardId, accountNumber,firstName, lastName, email, phoneNumber) {
+ try {
+ console.log("start");
+
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect('admin@clp-network');
+
+ // Get the factory for the business network.
+ factory = businessNetworkConnection.getBusinessNetwork().getFactory();
+
+ // Create the participants.
+ const member = factory.newResource(namespace, 'Member', accountNumber);
+ member.firstName = firstName;
+ member.lastName = lastName;
+ member.email = email;
+ member.phoneNumber = phoneNumber;
+ member.points = 0;
+
+ const participantRegistry = await businessNetworkConnection.getParticipantRegistry(namespace + '.Member');
+ await participantRegistry.add(member);
+
+ // Issue the identities.
+ const identity = await businessNetworkConnection.issueIdentity(namespace + '.Member#' + accountNumber, cardId);
+ await importCardForIdentity(cardId, identity);
+
+ await businessNetworkConnection.disconnect('admin@clp-network');
+ console.log("end");
+ return true;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+ },
+
+ registerPartner: async function (cardId, partnerId, name) {
+
+ try {
+ console.log("registerPartner");
+
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect('admin@clp-network');
+
+ // Get the factory for the business network.
+ factory = businessNetworkConnection.getBusinessNetwork().getFactory();
+
+ // Create the participant
+ const partner = factory.newResource(namespace, 'Partner', partnerId);
+ partner.name = name;
+
+ const participantRegistry = await businessNetworkConnection.getParticipantRegistry(namespace + '.Partner');
+ await participantRegistry.add(partner);
+
+ // Issue the identities.
+ const identity = await businessNetworkConnection.issueIdentity(namespace + '.Partner#' + partnerId, cardId);
+ await importCardForIdentity(cardId, identity);
+
+ await businessNetworkConnection.disconnect('admin@clp-network');
+ console.log("end");
+ return true;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+ },
+
+ earnPointsTransaction: async function (cardId, accountNumber, partnerId, points) {
+
+ try {
+ console.log("earnPoints");
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect(cardId);
+
+ // Get the factory for the business network.
+ factory = businessNetworkConnection.getBusinessNetwork().getFactory();
+
+ // perform transaction
+ const earnPoints = factory.newTransaction(namespace, 'EarnPoints');
+ earnPoints.points = points;
+ earnPoints.member = factory.newRelationship(namespace, 'Member', accountNumber);
+ earnPoints.partner = factory.newRelationship(namespace, 'Partner', partnerId);
+
+ await businessNetworkConnection.submitTransaction(earnPoints);
+
+ await businessNetworkConnection.disconnect(cardId);
+
+ return true;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+ },
+
+ usePointsTransaction: async function (cardId, accountNumber, partnerId, points) {
+
+ try {
+ console.log("usePoints");
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect(cardId);
+
+ // Get the factory for the business network.
+ factory = businessNetworkConnection.getBusinessNetwork().getFactory();
+
+ // perform transaction
+ const usePoints = factory.newTransaction(namespace, 'UsePoints');
+ usePoints.points = points;
+ usePoints.member = factory.newRelationship(namespace, 'Member', accountNumber);
+ usePoints.partner = factory.newRelationship(namespace, 'Partner', partnerId);
+
+ await businessNetworkConnection.submitTransaction(usePoints);
+
+ await businessNetworkConnection.disconnect(cardId);
+
+ return true;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+
+ },
+
+ memberData: async function (cardId, accountNumber) {
+
+ try {
+
+ console.log("memberData");
+ businessNetworkConnection = new BusinessNetworkConnection();
+
+ await businessNetworkConnection.connect(cardId);
+
+ // Get the factory for the business network.
+ const memberRegistry = await businessNetworkConnection.getParticipantRegistry(namespace + '.Member');
+ const member = await memberRegistry.get(accountNumber);
+
+ await businessNetworkConnection.disconnect(cardId);
+
+ return member;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+
+ },
+
+ partnerData: async function (cardId, partnerId) {
+
+ try {
+
+ console.log("partnerData");
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect(cardId);
+
+ // Get the factory for the business network.
+ const partnerRegistry = await businessNetworkConnection.getParticipantRegistry(namespace + '.Partner');
+ const partner = await partnerRegistry.get(partnerId);
+
+ await businessNetworkConnection.disconnect(cardId);
+
+
+ return partner;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+
+ },
+
+ allPartnersInfo : async function (cardId) {
+
+ try {
+ console.log("partnerTransactions");
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect(cardId);
+
+ const allPartners = await businessNetworkConnection.query('selectPartners');
+
+ await businessNetworkConnection.disconnect(cardId);
+
+ return allPartners;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+ },
+
+ earnPointsTransactionsInfo: async function (cardId) {
+
+ try {
+ console.log("partnerTransactions");
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect(cardId);
+
+ const earnPointsResults = await businessNetworkConnection.query('selectEarnPoints');
+
+ await businessNetworkConnection.disconnect(cardId);
+
+ return earnPointsResults;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+ },
+
+ usePointsTransactionsInfo: async function (cardId) {
+
+ try {
+ console.log("partnerTransactions");
+ businessNetworkConnection = new BusinessNetworkConnection();
+ await businessNetworkConnection.connect(cardId);
+
+ const usePointsResults = await businessNetworkConnection.query('selectUsePoints');
+
+ await businessNetworkConnection.disconnect(cardId);
+
+ return usePointsResults;
+ }
+ catch(err) {
+ console.log(err);
+ var error = {};
+ error.error = err.message;
+ return error
+ }
+
+ }
+
+
+}
diff --git a/web-app/network/validate.js b/web-app/network/validate.js
new file mode 100644
index 0000000..87e8c8c
--- /dev/null
+++ b/web-app/network/validate.js
@@ -0,0 +1,139 @@
+
+
+
+//stackoverflow
+function isInt(value) {
+ return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value))
+}
+
+//stackoverflow
+function validateEmail(email) {
+var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+return re.test(email);
+}
+
+//stackoverflow
+function validatePhoneNumber(phoneNumber) {
+var re = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/;
+return re.test(String(phoneNumber));
+}
+
+
+module.exports = {
+
+ validateMemberRegistration: async function(cardId, accountNumber,firstName, lastName, email, phoneNumber) {
+
+ var response = {};
+
+ //verify input otherwise display an informative message
+ if (accountNumber.length < 6) {
+ response.error = "Account number must be at least six digits long";
+ console.log(response.error);
+ return response;
+ } else if (!isInt(accountNumber)) {
+ response.error = "Account number must be all numbers";
+ console.log(response.error);
+ return response;
+ } else if (accountNumber.length > 25) {
+ response.error = "Account number must be less than 25 digits";
+ console.log(response.error);
+ return response;
+ } else if (cardId.length < 1) {
+ response.error = "Enter access key";
+ console.log(response.error);
+ return response;
+ } else if (!/^[0-9a-zA-Z]+$/.test(cardId)) {
+ response.error = "Card id can be letters and numbers only";
+ console.log(response.error);
+ return response;
+ } else if (firstName.length < 1) {
+ response.error = "Enter first name";
+ console.log(response.error);
+ return response;
+ } else if (!/^[a-zA-Z]+$/.test(firstName)) {
+ response.error = "First name must be letters only";
+ console.log(response.error);
+ return response;
+ } else if (lastName.length < 1) {
+ response.error = "Enter last name";
+ console.log(response.error);
+ return response;
+ } else if (!/^[a-zA-Z]+$/.test(lastName)) {
+ response.error = "First name must be letters only";
+ console.log(response.error);
+ return response;
+ } else if (email.length < 1) {
+ response.error = "Enter email";
+ console.log(response.error);
+ return response;
+ } else if (!validateEmail(email)) {
+ response.error = "Enter valid email";
+ console.log(response.error);
+ return response;
+ } else if (phoneNumber.length < 1) {
+ response.error = "Enter phone number";
+ console.log(response.error);
+ return response;
+ } else if (!validatePhoneNumber(phoneNumber)) {
+ response.error = "Enter valid phone number";
+ console.log(response.error);
+ return response;
+ } else {
+ console.log("Valid Entries");
+ return response;
+ }
+
+ },
+
+
+ validatePartnerRegistration: async function(cardId, partnerId, name) {
+
+ var response = {};
+
+ //verify input otherwise display an informative message
+ if (cardId.length < 1) {
+ response.error = "Enter access key";
+ console.log(response.error);
+ return response;
+ } else if (!/^[0-9a-zA-Z]+$/.test(cardId)) {
+ response.error = "Access key can be letters and numbers only";
+ console.log(response.error);
+ return response;
+ } else if (partnerId.length < 1) {
+ response.error = "Enter partner id";
+ console.log(response.error);
+ return response;
+ } else if (!/^[0-9a-zA-Z]+$/.test(partnerId)) {
+ response.error = "Partner id can be letters and numbers only";
+ console.log(response.error);
+ return response;
+ } else if (name.length < 1) {
+ response.error = "Enter company name";
+ console.log(response.error);
+ return response;
+ } else if (!/^[a-zA-Z]+$/.test(name)) {
+ response.error = "Company name must be letters only";
+ console.log(response.error);
+ return response;
+ } else {
+ console.log("Valid Entries");
+ return response;
+ }
+
+ },
+
+ validatePoints: async function(points) {
+
+ if (isNaN(points)) {
+ response.error = "Points must be number";
+ console.log(response.error);
+ return response;
+ } else {
+ return Math.round(points);
+ }
+
+ },
+
+
+
+}
diff --git a/web-app/package.json b/web-app/package.json
new file mode 100644
index 0000000..9b6d3f1
--- /dev/null
+++ b/web-app/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "clp-network",
+ "version": "0.0.1",
+ "description": "A customer loyalty program network",
+ "scripts": {
+ "start": "composer card import -f admin@clp-network.card && node app.js",
+ "test": "mocha --recursive"
+ },
+ "author": "Raheel",
+ "email": "raheel.zubairy@ibm.com",
+ "license": "Apache-2.0",
+ "devDependencies": {
+ "composer-cli": "^0.19.4",
+ "composer-admin": "^0.19.4",
+ "composer-client": "^0.19.4",
+ "composer-common": "^0.19.4",
+ "composer-connector-embedded": "^0.19.4",
+ "body-parser": "^1.18.2",
+ "composer-playground": "latest",
+ "express": "^4.16.2",
+ "request": "^2.83.0"
+ }
+}
diff --git a/web-app/public/about.html b/web-app/public/about.html
new file mode 100644
index 0000000..5d09533
--- /dev/null
+++ b/web-app/public/about.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+ Customer Loyalty Program
+
+
+
+
+
+
+
+
+
+
+
+
+
Customer Loyalty Program
+
+
This web application demonstrates a customer loyalty program on blockchain using Hyperledger Composer API
Customers can register as a member to this program by creating an Id for identification on the network. Once registered, then you can sign in and make transactions to earn points, use points and view your transactions.
For companies part of the program, they can register as Partner on the network by creating an Id on the network. They can sign-in to view dashboard on the usage of points and total points allocated to members.