diff --git a/balance-transfer/.gitignore b/balance-transfer/.gitignore deleted file mode 100644 index 5ab9c94c96..0000000000 --- a/balance-transfer/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/node_modules/* -/package-lock.json -/fabric-client-kv-org* diff --git a/balance-transfer/README.md b/balance-transfer/README.md deleted file mode 100644 index 0b31ec74c5..0000000000 --- a/balance-transfer/README.md +++ /dev/null @@ -1,332 +0,0 @@ -## Balance transfer - -A sample Node.js app to demonstrate **__fabric-client__** & **__fabric-ca-client__** Node.js SDK APIs - -### Prerequisites and setup: - -* [Docker](https://www.docker.com/products/overview) - v1.12 or higher -* [Docker Compose](https://docs.docker.com/compose/overview/) - v1.8 or higher -* [Git client](https://git-scm.com/downloads) - needed for clone commands -* **Node.js** v8.4.0 or higher -* [Download Docker images](http://hyperledger-fabric.readthedocs.io/en/latest/samples.html#binaries) - -``` -cd fabric-samples/balance-transfer/ -``` - -Once you have completed the above setup, you will have provisioned a local network with the following docker container configuration: - -* 2 CAs -* A SOLO orderer -* 4 peers (2 peers per Org) - -#### Artifacts -* Crypto material has been generated using the **cryptogen** tool from Hyperledger Fabric and mounted to all peers, the orderering node and CA containers. More details regarding the cryptogen tool are available [here](http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#crypto-generator). -* An Orderer genesis block (genesis.block) and channel configuration transaction (mychannel.tx) has been pre generated using the **configtxgen** tool from Hyperledger Fabric and placed within the artifacts folder. More details regarding the configtxgen tool are available [here](http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#configuration-transaction-generator). - -## Running the sample program - -There are two options available for running the balance-transfer sample -For each of these options, you may choose to run with chaincode written in golang or in node.js. - -### Option 1: - -##### Terminal Window 1 - -* Launch the network using docker-compose - -``` -docker-compose -f artifacts/docker-compose.yaml up -``` -##### Terminal Window 2 - -* Install the fabric-client and fabric-ca-client node modules - -``` -npm install -``` - -* Start the node app on PORT 4000 - -``` -PORT=4000 node app -``` - -##### Terminal Window 3 - -* Execute the REST APIs from the section [Sample REST APIs Requests](https://github.com/hyperledger/fabric-samples/tree/master/balance-transfer#sample-rest-apis-requests) - - -### Option 2: - -##### Terminal Window 1 - -``` -cd fabric-samples/balance-transfer - -./runApp.sh - -``` - -* This launches the required network on your local machine -* Installs the fabric-client and fabric-ca-client node modules -* And, starts the node app on PORT 4000 - -##### Terminal Window 2 - - -In order for the following shell script to properly parse the JSON, you must install ``jq``: - -instructions [https://stedolan.github.io/jq/](https://stedolan.github.io/jq/) - -With the application started in terminal 1, next, test the APIs by executing the script - **testAPIs.sh**: -``` -cd fabric-samples/balance-transfer - -## To use golang chaincode execute the following command - -./testAPIs.sh -l golang - -## OR use node.js chaincode - -./testAPIs.sh -l node -``` - - -## Sample REST APIs Requests - -### Login Request - -* Register and enroll new users in Organization - **Org1**: - -`curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Jim&orgName=Org1'` - -**OUTPUT:** - -``` -{ - "success": true, - "secret": "RaxhMgevgJcm", - "message": "Jim enrolled Successfully", - "token": "" -} -``` - -The response contains the success/failure status, an **enrollment Secret** and a **JSON Web Token (JWT)** that is a required string in the Request Headers for subsequent requests. - -### Create Channel request - -``` -curl -s -X POST \ - http://localhost:4000/channels \ - -H "authorization: Bearer " \ - -H "content-type: application/json" \ - -d '{ - "channelName":"mychannel", - "channelConfigPath":"../artifacts/channel/mychannel.tx" -}' -``` - -Please note that the Header **authorization** must contain the JWT returned from the `POST /users` call - -### Join Channel request - -``` -curl -s -X POST \ - http://localhost:4000/channels/mychannel/peers \ - -H "authorization: Bearer " \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer0.org1.example.com","peer1.org1.example.com"] -}' -``` -### Install chaincode - -``` -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer " \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer0.org1.example.com","peer1.org1.example.com"], - "chaincodeName":"mycc", - "chaincodePath":"github.com/example_cc/go", - "chaincodeType": "golang", - "chaincodeVersion":"v0" -}' -``` -**NOTE:** *chaincodeType* must be set to **node** when node.js chaincode is used and *chaincodePath* must be set to the location of the node.js chaincode. Also put in the $PWD -``` -ex: -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer " \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer0.org1.example.com","peer1.org1.example.com"], - "chaincodeName":"mycc", - "chaincodePath":"$PWD/artifacts/src/github.com/example_cc/node", - "chaincodeType": "node", - "chaincodeVersion":"v0" -}' -``` - -### Instantiate chaincode - -This is the endorsement policy defined during instantiation. -This policy can be fulfilled when members from both orgs sign the transaction proposal. - -``` -{ - identities: [{ - role: { - name: 'member', - mspId: 'Org1MSP' - } - }, - { - role: { - name: 'member', - mspId: 'Org2MSP' - } - } - ], - policy: { - '2-of': [{ - 'signed-by': 0 - }, { - 'signed-by': 1 - }] - } -} -``` - -``` -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes \ - -H "authorization: Bearer " \ - -H "content-type: application/json" \ - -d '{ - "chaincodeName":"mycc", - "chaincodeVersion":"v0", - "chaincodeType": "golang", - "args":["a","100","b","200"] -}' -``` -**NOTE:** *chaincodeType* must be set to **node** when node.js chaincode is used - -### Invoke request - -This invoke request is signed by peers from both orgs, *org1* & *org2*. -``` -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes/mycc \ - -H "authorization: Bearer " \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer0.org1.example.com","peer0.org2.example.com"], - "fcn":"move", - "args":["a","b","10"] -}' -``` -**NOTE:** Ensure that you save the Transaction ID from the response in order to pass this string in the subsequent query transactions. - -### Chaincode Query - -``` -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/chaincodes/mycc?peer=peer0.org1.example.com&fcn=query&args=%5B%22a%22%5D" \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` - -### Query Block by BlockNumber - -``` -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/blocks/1?peer=peer0.org1.example.com" \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` - -### Query Transaction by TransactionID - -``` -curl -s -X GET http://localhost:4000/channels/mychannel/transactions/?peer=peer0.org1.example.com \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` -**NOTE**: The transaction id can be from any previous invoke transaction, see results of the invoke request, will look something like `8a95b1794cb17e7772164c3f1292f8410fcfdc1943955a35c9764a21fcd1d1b3`. - - -### Query ChainInfo - -``` -curl -s -X GET \ - "http://localhost:4000/channels/mychannel?peer=peer0.org1.example.com" \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` - -### Query Installed chaincodes - -``` -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer0.org1.example.com&type=installed" \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` - -### Query Instantiated chaincodes - -``` -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer0.org1.example.com&type=instantiated" \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` - -### Query Channels - -``` -curl -s -X GET \ - "http://localhost:4000/channels?peer=peer0.org1.example.com" \ - -H "authorization: Bearer " \ - -H "content-type: application/json" -``` - -### Clean the network - -The network will still be running at this point. Before starting the network manually again, here are the commands which cleans the containers and artifacts. - -``` -docker rm -f $(docker ps -aq) -docker rmi -f $(docker images | grep dev | awk '{print $3}') -rm -rf fabric-client-kv-org[1-2] -``` - -### Network configuration considerations - -You have the ability to change configuration parameters by either directly editing the network-config.yaml file or provide an additional file for an alternative target network. The app uses an optional environment variable "TARGET_NETWORK" to control the configuration files to use. For example, if you deployed the target network on Amazon Web Services EC2, you can add a file "network-config-aws.yaml", and set the "TARGET_NETWORK" environment to 'aws'. The app will pick up the settings inside the "network-config-aws.yaml" file. - -#### IP Address** and PORT information - -If you choose to customize your docker-compose yaml file by hardcoding IP Addresses and PORT information for your peers and orderer, then you MUST also add the identical values into the network-config.yaml file. The url and eventUrl settings will need to be adjusted to match your docker-compose yaml file. - -``` -peer1.org1.example.com: - url: grpcs://x.x.x.x:7056 - eventUrl: grpcs://x.x.x.x:7058 - -``` - -#### Discover IP Address - -To retrieve the IP Address for one of your network entities, issue the following command: - -``` -# this will return the IP Address for peer0 -docker inspect peer0 | grep IPAddress -``` - -Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. diff --git a/balance-transfer/app.js b/balance-transfer/app.js deleted file mode 100644 index 83b1226ab4..0000000000 --- a/balance-transfer/app.js +++ /dev/null @@ -1,430 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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'; -var log4js = require('log4js'); -var logger = log4js.getLogger('SampleWebApp'); -var express = require('express'); -var session = require('express-session'); -var cookieParser = require('cookie-parser'); -var bodyParser = require('body-parser'); -var http = require('http'); -var util = require('util'); -var app = express(); -var expressJWT = require('express-jwt'); -var jwt = require('jsonwebtoken'); -var bearerToken = require('express-bearer-token'); -var cors = require('cors'); - -require('./config.js'); -var hfc = require('fabric-client'); - -var helper = require('./app/helper.js'); -var createChannel = require('./app/create-channel.js'); -var join = require('./app/join-channel.js'); -var updateAnchorPeers = require('./app/update-anchor-peers.js'); -var install = require('./app/install-chaincode.js'); -var instantiate = require('./app/instantiate-chaincode.js'); -var invoke = require('./app/invoke-transaction.js'); -var query = require('./app/query.js'); -var host = process.env.HOST || hfc.getConfigSetting('host'); -var port = process.env.PORT || hfc.getConfigSetting('port'); -/////////////////////////////////////////////////////////////////////////////// -//////////////////////////////// SET CONFIGURATONS //////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -app.options('*', cors()); -app.use(cors()); -//support parsing of application/json type post data -app.use(bodyParser.json()); -//support parsing of application/x-www-form-urlencoded post data -app.use(bodyParser.urlencoded({ - extended: false -})); -// set secret variable -app.set('secret', 'thisismysecret'); -app.use(expressJWT({ - secret: 'thisismysecret' -}).unless({ - path: ['/users'] -})); -app.use(bearerToken()); -app.use(function(req, res, next) { - logger.debug(' ------>>>>>> new request for %s',req.originalUrl); - if (req.originalUrl.indexOf('/users') >= 0) { - return next(); - } - - var token = req.token; - jwt.verify(token, app.get('secret'), function(err, decoded) { - if (err) { - res.send({ - success: false, - message: 'Failed to authenticate token. Make sure to include the ' + - 'token returned from /users call in the authorization header ' + - ' as a Bearer token' - }); - return; - } else { - // add the decoded user name and org name to the request object - // for the downstream code to use - req.username = decoded.username; - req.orgname = decoded.orgName; - logger.debug(util.format('Decoded from JWT token: username - %s, orgname - %s', decoded.username, decoded.orgName)); - return next(); - } - }); -}); - -/////////////////////////////////////////////////////////////////////////////// -//////////////////////////////// START SERVER ///////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -var server = http.createServer(app).listen(port, function() {}); -logger.info('****************** SERVER STARTED ************************'); -logger.info('*************** http://%s:%s ******************',host,port); -server.timeout = 240000; - -function getErrorMessage(field) { - var response = { - success: false, - message: field + ' field is missing or Invalid in the request' - }; - return response; -} - -/////////////////////////////////////////////////////////////////////////////// -///////////////////////// REST ENDPOINTS START HERE /////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -// Register and enroll user -app.post('/users', async function(req, res) { - var username = req.body.username; - var orgName = req.body.orgName; - logger.debug('End point : /users'); - logger.debug('User name : ' + username); - logger.debug('Org name : ' + orgName); - if (!username) { - res.json(getErrorMessage('\'username\'')); - return; - } - if (!orgName) { - res.json(getErrorMessage('\'orgName\'')); - return; - } - var token = jwt.sign({ - exp: Math.floor(Date.now() / 1000) + parseInt(hfc.getConfigSetting('jwt_expiretime')), - username: username, - orgName: orgName - }, app.get('secret')); - let response = await helper.getRegisteredUser(username, orgName, true); - logger.debug('-- returned from registering the username %s for organization %s',username,orgName); - if (response && typeof response !== 'string') { - logger.debug('Successfully registered the username %s for organization %s',username,orgName); - response.token = token; - res.json(response); - } else { - logger.debug('Failed to register the username %s for organization %s with::%s',username,orgName,response); - res.json({success: false, message: response}); - } - -}); -// Create Channel -app.post('/channels', async function(req, res) { - logger.info('<<<<<<<<<<<<<<<<< C R E A T E C H A N N E L >>>>>>>>>>>>>>>>>'); - logger.debug('End point : /channels'); - var channelName = req.body.channelName; - var channelConfigPath = req.body.channelConfigPath; - logger.debug('Channel name : ' + channelName); - logger.debug('channelConfigPath : ' + channelConfigPath); //../artifacts/channel/mychannel.tx - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!channelConfigPath) { - res.json(getErrorMessage('\'channelConfigPath\'')); - return; - } - - let message = await createChannel.createChannel(channelName, channelConfigPath, req.username, req.orgname); - res.send(message); -}); -// Join Channel -app.post('/channels/:channelName/peers', async function(req, res) { - logger.info('<<<<<<<<<<<<<<<<< J O I N C H A N N E L >>>>>>>>>>>>>>>>>'); - var channelName = req.params.channelName; - var peers = req.body.peers; - logger.debug('channelName : ' + channelName); - logger.debug('peers : ' + peers); - logger.debug('username :' + req.username); - logger.debug('orgname:' + req.orgname); - - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!peers || peers.length == 0) { - res.json(getErrorMessage('\'peers\'')); - return; - } - - let message = await join.joinChannel(channelName, peers, req.username, req.orgname); - res.send(message); -}); -// Update anchor peers -app.post('/channels/:channelName/anchorpeers', async function(req, res) { - logger.debug('==================== UPDATE ANCHOR PEERS =================='); - var channelName = req.params.channelName; - var configUpdatePath = req.body.configUpdatePath; - logger.debug('Channel name : ' + channelName); - logger.debug('configUpdatePath : ' + configUpdatePath); - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!configUpdatePath) { - res.json(getErrorMessage('\'configUpdatePath\'')); - return; - } - - let message = await updateAnchorPeers.updateAnchorPeers(channelName, configUpdatePath, req.username, req.orgname); - res.send(message); -}); -// Install chaincode on target peers -app.post('/chaincodes', async function(req, res) { - logger.debug('==================== INSTALL CHAINCODE =================='); - var peers = req.body.peers; - var chaincodeName = req.body.chaincodeName; - var chaincodePath = req.body.chaincodePath; - var chaincodeVersion = req.body.chaincodeVersion; - var chaincodeType = req.body.chaincodeType; - logger.debug('peers : ' + peers); // target peers list - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('chaincodePath : ' + chaincodePath); - logger.debug('chaincodeVersion : ' + chaincodeVersion); - logger.debug('chaincodeType : ' + chaincodeType); - if (!peers || peers.length == 0) { - res.json(getErrorMessage('\'peers\'')); - return; - } - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!chaincodePath) { - res.json(getErrorMessage('\'chaincodePath\'')); - return; - } - if (!chaincodeVersion) { - res.json(getErrorMessage('\'chaincodeVersion\'')); - return; - } - if (!chaincodeType) { - res.json(getErrorMessage('\'chaincodeType\'')); - return; - } - let message = await install.installChaincode(peers, chaincodeName, chaincodePath, chaincodeVersion, chaincodeType, req.username, req.orgname) - res.send(message);}); -// Instantiate chaincode on target peers -app.post('/channels/:channelName/chaincodes', async function(req, res) { - logger.debug('==================== INSTANTIATE CHAINCODE =================='); - var peers = req.body.peers; - var chaincodeName = req.body.chaincodeName; - var chaincodeVersion = req.body.chaincodeVersion; - var channelName = req.params.channelName; - var chaincodeType = req.body.chaincodeType; - var fcn = req.body.fcn; - var args = req.body.args; - logger.debug('peers : ' + peers); - logger.debug('channelName : ' + channelName); - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('chaincodeVersion : ' + chaincodeVersion); - logger.debug('chaincodeType : ' + chaincodeType); - logger.debug('fcn : ' + fcn); - logger.debug('args : ' + args); - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!chaincodeVersion) { - res.json(getErrorMessage('\'chaincodeVersion\'')); - return; - } - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!chaincodeType) { - res.json(getErrorMessage('\'chaincodeType\'')); - return; - } - if (!args) { - res.json(getErrorMessage('\'args\'')); - return; - } - - let message = await instantiate.instantiateChaincode(peers, channelName, chaincodeName, chaincodeVersion, chaincodeType, fcn, args, req.username, req.orgname); - res.send(message); -}); -// Invoke transaction on chaincode on target peers -app.post('/channels/:channelName/chaincodes/:chaincodeName', async function(req, res) { - logger.debug('==================== INVOKE ON CHAINCODE =================='); - var peers = req.body.peers; - var chaincodeName = req.params.chaincodeName; - var channelName = req.params.channelName; - var fcn = req.body.fcn; - var args = req.body.args; - logger.debug('channelName : ' + channelName); - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('fcn : ' + fcn); - logger.debug('args : ' + args); - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!fcn) { - res.json(getErrorMessage('\'fcn\'')); - return; - } - if (!args) { - res.json(getErrorMessage('\'args\'')); - return; - } - - let message = await invoke.invokeChaincode(peers, channelName, chaincodeName, fcn, args, req.username, req.orgname); - res.send(message); -}); -// Query on chaincode on target peers -app.get('/channels/:channelName/chaincodes/:chaincodeName', async function(req, res) { - logger.debug('==================== QUERY BY CHAINCODE =================='); - var channelName = req.params.channelName; - var chaincodeName = req.params.chaincodeName; - let args = req.query.args; - let fcn = req.query.fcn; - let peer = req.query.peer; - - logger.debug('channelName : ' + channelName); - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('fcn : ' + fcn); - logger.debug('args : ' + args); - - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!fcn) { - res.json(getErrorMessage('\'fcn\'')); - return; - } - if (!args) { - res.json(getErrorMessage('\'args\'')); - return; - } - args = args.replace(/'/g, '"'); - args = JSON.parse(args); - logger.debug(args); - - let message = await query.queryChaincode(peer, channelName, chaincodeName, args, fcn, req.username, req.orgname); - res.send(message); -}); -// Query Get Block by BlockNumber -app.get('/channels/:channelName/blocks/:blockId', async function(req, res) { - logger.debug('==================== GET BLOCK BY NUMBER =================='); - let blockId = req.params.blockId; - let peer = req.query.peer; - logger.debug('channelName : ' + req.params.channelName); - logger.debug('BlockID : ' + blockId); - logger.debug('Peer : ' + peer); - if (!blockId) { - res.json(getErrorMessage('\'blockId\'')); - return; - } - - let message = await query.getBlockByNumber(peer, req.params.channelName, blockId, req.username, req.orgname); - res.send(message); -}); -// Query Get Transaction by Transaction ID -app.get('/channels/:channelName/transactions/:trxnId', async function(req, res) { - logger.debug('================ GET TRANSACTION BY TRANSACTION_ID ======================'); - logger.debug('channelName : ' + req.params.channelName); - let trxnId = req.params.trxnId; - let peer = req.query.peer; - if (!trxnId) { - res.json(getErrorMessage('\'trxnId\'')); - return; - } - - let message = await query.getTransactionByID(peer, req.params.channelName, trxnId, req.username, req.orgname); - res.send(message); -}); -// Query Get Block by Hash -app.get('/channels/:channelName/blocks', async function(req, res) { - logger.debug('================ GET BLOCK BY HASH ======================'); - logger.debug('channelName : ' + req.params.channelName); - let hash = req.query.hash; - let peer = req.query.peer; - if (!hash) { - res.json(getErrorMessage('\'hash\'')); - return; - } - - let message = await query.getBlockByHash(peer, req.params.channelName, hash, req.username, req.orgname); - res.send(message); -}); -//Query for Channel Information -app.get('/channels/:channelName', async function(req, res) { - logger.debug('================ GET CHANNEL INFORMATION ======================'); - logger.debug('channelName : ' + req.params.channelName); - let peer = req.query.peer; - - let message = await query.getChainInfo(peer, req.params.channelName, req.username, req.orgname); - res.send(message); -}); -//Query for Channel instantiated chaincodes -app.get('/channels/:channelName/chaincodes', async function(req, res) { - logger.debug('================ GET INSTANTIATED CHAINCODES ======================'); - logger.debug('channelName : ' + req.params.channelName); - let peer = req.query.peer; - - let message = await query.getInstalledChaincodes(peer, req.params.channelName, 'instantiated', req.username, req.orgname); - res.send(message); -}); -// Query to fetch all Installed/instantiated chaincodes -app.get('/chaincodes', async function(req, res) { - var peer = req.query.peer; - var installType = req.query.type; - logger.debug('================ GET INSTALLED CHAINCODES ======================'); - - let message = await query.getInstalledChaincodes(peer, null, 'installed', req.username, req.orgname) - res.send(message); -}); -// Query to fetch channels -app.get('/channels', async function(req, res) { - logger.debug('================ GET CHANNELS ======================'); - logger.debug('peer: ' + req.query.peer); - var peer = req.query.peer; - if (!peer) { - res.json(getErrorMessage('\'peer\'')); - return; - } - - let message = await query.getChannels(peer, req.username, req.orgname); - res.send(message); -}); diff --git a/balance-transfer/app/create-channel.js b/balance-transfer/app/create-channel.js deleted file mode 100644 index 974944028e..0000000000 --- a/balance-transfer/app/create-channel.js +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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. - */ -var fs = require('fs'); -var path = require('path'); - -var helper = require('./helper.js'); -var logger = helper.getLogger('Create-Channel'); -//Attempt to send a request to the orderer with the sendTransaction method -var createChannel = async function(channelName, channelConfigPath, username, orgName) { - logger.debug('\n====== Creating Channel \'' + channelName + '\' ======\n'); - try { - // first setup the client for this org - var client = await helper.getClientForOrg(orgName); - logger.debug('Successfully got the fabric client for the organization "%s"', orgName); - - // read in the envelope for the channel config raw bytes - var envelope = fs.readFileSync(path.join(__dirname, channelConfigPath)); - // extract the channel config bytes from the envelope to be signed - var channelConfig = client.extractChannelConfig(envelope); - - //Acting as a client in the given organization provided with "orgName" param - // sign the channel config bytes as "endorsement", this is required by - // the orderer's channel creation policy - // this will use the admin identity assigned to the client when the connection profile was loaded - let signature = client.signChannelConfig(channelConfig); - - let request = { - config: channelConfig, - signatures: [signature], - name: channelName, - txId: client.newTransactionID(true) // get an admin based transactionID - }; - - // send to orderer - const result = await client.createChannel(request) - logger.debug(' result ::%j', result); - if (result) { - if (result.status === 'SUCCESS') { - logger.debug('Successfully created the channel.'); - const response = { - success: true, - message: 'Channel \'' + channelName + '\' created Successfully' - }; - return response; - } else { - logger.error('Failed to create the channel. status:' + result.status + ' reason:' + result.info); - const response = { - success: false, - message: 'Channel \'' + channelName + '\' failed to create status:' + result.status + ' reason:' + result.info - }; - return response; - } - } else { - logger.error('\n!!!!!!!!! Failed to create the channel \'' + channelName + - '\' !!!!!!!!!\n\n'); - const response = { - success: false, - message: 'Failed to create the channel \'' + channelName + '\'', - }; - return response; - } - } catch (err) { - logger.error('Failed to initialize the channel: ' + err.stack ? err.stack : err); - throw new Error('Failed to initialize the channel: ' + err.toString()); - } -}; - -exports.createChannel = createChannel; diff --git a/balance-transfer/app/helper.js b/balance-transfer/app/helper.js deleted file mode 100644 index 6489619154..0000000000 --- a/balance-transfer/app/helper.js +++ /dev/null @@ -1,120 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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'; -var log4js = require('log4js'); -var logger = log4js.getLogger('Helper'); -logger.setLevel('DEBUG'); - -var path = require('path'); -var util = require('util'); - -var hfc = require('fabric-client'); -hfc.setLogger(logger); - -async function getClientForOrg (userorg, username) { - logger.debug('getClientForOrg - ****** START %s %s', userorg, username) - // get a fabric client loaded with a connection profile for this org - let config = '-connection-profile-path'; - - // build a client context and load it with a connection profile - // lets only load the network settings and save the client for later - let client = hfc.loadFromConfig(hfc.getConfigSetting('network'+config)); - - // This will load a connection profile over the top of the current one one - // since the first one did not have a client section and the following one does - // nothing will actually be replaced. - // This will also set an admin identity because the organization defined in the - // client section has one defined - client.loadFromConfig(hfc.getConfigSetting(userorg+config)); - - // this will create both the state store and the crypto store based - // on the settings in the client section of the connection profile - await client.initCredentialStores(); - - // The getUserContext call tries to get the user from persistence. - // If the user has been saved to persistence then that means the user has - // been registered and enrolled. If the user is found in persistence - // the call will then assign the user to the client object. - if(username) { - let user = await client.getUserContext(username, true); - if(!user) { - throw new Error(util.format('User was not found :', username)); - } else { - logger.debug('User %s was found to be registered and enrolled', username); - } - } - logger.debug('getClientForOrg - ****** END %s %s \n\n', userorg, username) - - return client; -} - -var getRegisteredUser = async function(username, userOrg, isJson) { - try { - var client = await getClientForOrg(userOrg); - logger.debug('Successfully initialized the credential stores'); - // client can now act as an agent for organization Org1 - // first check to see if the user is already enrolled - var user = await client.getUserContext(username, true); - if (user && user.isEnrolled()) { - logger.info('Successfully loaded member from persistence'); - } else { - // user was not enrolled, so we will need an admin user object to register - logger.info('User %s was not enrolled, so we will need an admin user object to register',username); - var admins = hfc.getConfigSetting('admins'); - let adminUserObj = await client.setUserContext({username: admins[0].username, password: admins[0].secret}); - let caClient = client.getCertificateAuthority(); - let secret = await caClient.register({ - enrollmentID: username, - affiliation: userOrg.toLowerCase() + '.department1' - }, adminUserObj); - logger.debug('Successfully got the secret for user %s',username); - user = await client.setUserContext({username:username, password:secret}); - logger.debug('Successfully enrolled username %s and setUserContext on the client object', username); - } - if(user && user.isEnrolled) { - if (isJson && isJson === true) { - var response = { - success: true, - secret: user._enrollmentSecret, - message: username + ' enrolled Successfully', - }; - return response; - } - } else { - throw new Error('User was not enrolled '); - } - } catch(error) { - logger.error('Failed to get registered user: %s with error: %s', username, error.toString()); - return 'failed '+error.toString(); - } - -}; - - -var setupChaincodeDeploy = function() { - process.env.GOPATH = path.join(__dirname, hfc.getConfigSetting('CC_SRC_PATH')); -}; - -var getLogger = function(moduleName) { - var logger = log4js.getLogger(moduleName); - logger.setLevel('DEBUG'); - return logger; -}; - -exports.getClientForOrg = getClientForOrg; -exports.getLogger = getLogger; -exports.setupChaincodeDeploy = setupChaincodeDeploy; -exports.getRegisteredUser = getRegisteredUser; diff --git a/balance-transfer/app/install-chaincode.js b/balance-transfer/app/install-chaincode.js deleted file mode 100644 index ea6c4124c5..0000000000 --- a/balance-transfer/app/install-chaincode.js +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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'; -var util = require('util'); -var helper = require('./helper.js'); -var logger = helper.getLogger('install-chaincode'); - -var installChaincode = async function(peers, chaincodeName, chaincodePath, - chaincodeVersion, chaincodeType, username, org_name) { - logger.debug('\n\n============ Install chaincode on organizations ============\n'); - helper.setupChaincodeDeploy(); - let error_message = null; - try { - logger.info('Calling peers in organization "%s" to join the channel', org_name); - - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - - var request = { - targets: peers, - chaincodePath: chaincodePath, - chaincodeId: chaincodeName, - chaincodeVersion: chaincodeVersion, - chaincodeType: chaincodeType - }; - let results = await client.installChaincode(request); - // the returned object has both the endorsement results - // and the actual proposal, the proposal will be needed - // later when we send a transaction to the orederer - var proposalResponses = results[0]; - var proposal = results[1]; - - // lets have a look at the responses to see if they are - // all good, if good they will also include signatures - // required to be committed - for (const i in proposalResponses) { - if (proposalResponses[i] instanceof Error) { - error_message = util.format('install proposal resulted in an error :: %s', proposalResponses[i].toString()); - logger.error(error_message); - } else if (proposalResponses[i].response && proposalResponses[i].response.status === 200) { - logger.info('install proposal was good'); - } else { - all_good = false; - error_message = util.format('install proposal was bad for an unknown reason %j', proposalResponses[i]); - logger.error(error_message); - } - } - } catch(error) { - logger.error('Failed to install due to error: ' + error.stack ? error.stack : error); - error_message = error.toString(); - } - - if (!error_message) { - let message = util.format('Successfully installed chaincode'); - logger.info(message); - // build a response to send back to the REST caller - const response = { - success: true, - message: message - }; - return response; - } else { - let message = util.format('Failed to install due to:%s',error_message); - logger.error(message); - const response = { - success: false, - message: message - }; - return response; - } -}; -exports.installChaincode = installChaincode; diff --git a/balance-transfer/app/instantiate-chaincode.js b/balance-transfer/app/instantiate-chaincode.js deleted file mode 100644 index 022043d7a8..0000000000 --- a/balance-transfer/app/instantiate-chaincode.js +++ /dev/null @@ -1,205 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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'; -const util = require('util'); -const helper = require('./helper.js'); -const logger = helper.getLogger('instantiate-chaincode'); - -const instantiateChaincode = async function(peers, channelName, chaincodeName, chaincodeVersion, functionName, chaincodeType, args, username, org_name) { - logger.debug('\n\n============ Instantiate chaincode on channel ' + channelName + - ' ============\n'); - let error_message = null; - let client = null; - let channel = null; - try { - // first setup the client for this org - client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - const tx_id = client.newTransactionID(true); // Get an admin based transactionID - // An admin based transactionID will - // indicate that admin identity should - // be used to sign the proposal request. - // will need the transaction ID string for the event registration later - const deployId = tx_id.getTransactionID(); - - // send proposal to endorser - const request = { - targets : peers, - chaincodeId: chaincodeName, - chaincodeType: chaincodeType, - chaincodeVersion: chaincodeVersion, - args: args, - txId: tx_id, - - // Use this to demonstrate the following policy: - // The policy can be fulfilled when members from both orgs signed. - 'endorsement-policy': { - identities: [ - { role: { name: 'member', mspId: 'Org1MSP' }}, - { role: { name: 'member', mspId: 'Org2MSP' }} - ], - policy: { - '2-of':[{ 'signed-by': 0 }, { 'signed-by': 1 }] - } - } - }; - - if (functionName) - request.fcn = functionName; - - let results = await channel.sendInstantiateProposal(request, 60000); //instantiate takes much longer - - // the returned object has both the endorsement results - // and the actual proposal, the proposal will be needed - // later when we send a transaction to the orderer - const proposalResponses = results[0]; - const proposal = results[1]; - - // look at the responses to see if they are all are good - // response will also include signatures required to be committed - let all_good = true; - for (const i in proposalResponses) { - if (proposalResponses[i] instanceof Error) { - all_good = false; - error_message = util.format('instantiate proposal resulted in an error :: %s', proposalResponses[i].toString()); - logger.error(error_message); - } else if (proposalResponses[i].response && proposalResponses[i].response.status === 200) { - logger.info('instantiate proposal was good'); - } else { - all_good = false; - error_message = util.format('instantiate proposal was bad for an unknown reason %j', proposalResponses[i]); - logger.error(error_message); - } - } - - if (all_good) { - logger.info(util.format( - 'Successfully sent Proposal and received ProposalResponse: Status - %s, message - "%s", metadata - "%s", endorsement signature: %s', - proposalResponses[0].response.status, proposalResponses[0].response.message, - proposalResponses[0].response.payload, proposalResponses[0].endorsement.signature)); - - // wait for the channel-based event hub to tell us that the - // instantiate transaction was committed on the peer - const promises = []; - const event_hubs = channel.getChannelEventHubsForOrg(); - logger.debug('found %s eventhubs for this organization %s',event_hubs.length, org_name); - event_hubs.forEach((eh) => { - let instantiateEventPromise = new Promise((resolve, reject) => { - logger.debug('instantiateEventPromise - setting up event'); - let event_timeout = setTimeout(() => { - let message = 'REQUEST_TIMEOUT:' + eh.getPeerAddr(); - logger.error(message); - eh.disconnect(); - }, 60000); - eh.registerTxEvent(deployId, (tx, code, block_num) => { - logger.info('The chaincode instantiate transaction has been committed on peer %s',eh.getPeerAddr()); - logger.info('Transaction %s has status of %s in blocl %s', tx, code, block_num); - clearTimeout(event_timeout); - - if (code !== 'VALID') { - let message = util.format('The chaincode instantiate transaction was invalid, code:%s',code); - logger.error(message); - reject(new Error(message)); - } else { - let message = 'The chaincode instantiate transaction was valid.'; - logger.info(message); - resolve(message); - } - }, (err) => { - clearTimeout(event_timeout); - logger.error(err); - reject(err); - }, - // the default for 'unregister' is true for transaction listeners - // so no real need to set here, however for 'disconnect' - // the default is false as most event hubs are long running - // in this use case we are using it only once - {unregister: true, disconnect: true} - ); - eh.connect(); - }); - promises.push(instantiateEventPromise); - }); - - const orderer_request = { - txId: tx_id, // must include the transaction id so that the outbound - // transaction to the orderer will be signed by the admin id - // the same as the proposal above, notice that transactionID - // generated above was based on the admin id not the current - // user assigned to the 'client' instance. - proposalResponses: proposalResponses, - proposal: proposal - }; - const sendPromise = channel.sendTransaction(orderer_request); - // put the send to the orderer last so that the events get registered and - // are ready for the orderering and committing - promises.push(sendPromise); - const results = await Promise.all(promises); - logger.debug(util.format('------->>> R E S P O N S E : %j', results)); - const response = results.pop(); // orderer results are last in the results - if (response.status === 'SUCCESS') { - logger.info('Successfully sent transaction to the orderer.'); - } else { - error_message = util.format('Failed to order the transaction. Error code: %s',response.status); - logger.debug(error_message); - } - - // now see what each of the event hubs reported - for(const i in results) { - const event_hub_result = results[i]; - const event_hub = event_hubs[i]; - logger.debug('Event results for event hub :%s',event_hub.getPeerAddr()); - if(typeof event_hub_result === 'string') { - logger.debug(event_hub_result); - } else { - if(!error_message) error_message = event_hub_result.toString(); - logger.debug(event_hub_result.toString()); - } - } - } - } catch (error) { - logger.error('Failed to send instantiate due to error: ' + error.stack ? error.stack : error); - error_message = error.toString(); - } finally { - if (channel) { - channel.close(); - } - } - - let success = true; - let message = util.format('Successfully instantiate chaincode in organization %s to the channel \'%s\'', org_name, channelName); - if (error_message) { - message = util.format('Failed to instantiate the chaincode. cause:%s',error_message); - success = false; - logger.error(message); - } else { - logger.info(message); - } - - // build a response to send back to the REST caller - const response = { - success: success, - message: message - }; - return response; -}; -exports.instantiateChaincode = instantiateChaincode; diff --git a/balance-transfer/app/invoke-transaction.js b/balance-transfer/app/invoke-transaction.js deleted file mode 100644 index 5cb2648007..0000000000 --- a/balance-transfer/app/invoke-transaction.js +++ /dev/null @@ -1,185 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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'; -const util = require('util'); -const helper = require('./helper.js'); -const logger = helper.getLogger('invoke-chaincode'); - -const invokeChaincode = async function(peerNames, channelName, chaincodeName, fcn, args, username, org_name) { - logger.debug(util.format('\n============ invoke transaction on channel %s ============\n', channelName)); - let error_message = null; - let tx_id_string = null; - let client = null; - let channel = null; - try { - // first setup the client for this org - client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - const tx_id = client.newTransactionID(); - // will need the transaction ID string for the event registration later - tx_id_string = tx_id.getTransactionID(); - - // send proposal to endorser - const request = { - targets: peerNames, - chaincodeId: chaincodeName, - fcn: fcn, - args: args, - chainId: channelName, - txId: tx_id - }; - - let results = await channel.sendTransactionProposal(request); - - // the returned object has both the endorsement results - // and the actual proposal, the proposal will be needed - // later when we send a transaction to the orderer - const proposalResponses = results[0]; - const proposal = results[1]; - - // look at the responses to see if they are all are good - // response will also include signatures required to be committed - let all_good = true; - for (const i in proposalResponses) { - if (proposalResponses[i] instanceof Error) { - all_good = false; - error_message = util.format('invoke chaincode proposal resulted in an error :: %s', proposalResponses[i].toString()); - logger.error(error_message); - } else if (proposalResponses[i].response && proposalResponses[i].response.status === 200) { - logger.info('invoke chaincode proposal was good'); - } else { - all_good = false; - error_message = util.format('invoke chaincode proposal failed for an unknown reason %j', proposalResponses[i]); - logger.error(error_message); - } - } - - if (all_good) { - logger.info(util.format( - 'Successfully sent Proposal and received ProposalResponse: Status - %s, message - "%s", metadata - "%s", endorsement signature: %s', - proposalResponses[0].response.status, proposalResponses[0].response.message, - proposalResponses[0].response.payload, proposalResponses[0].endorsement.signature)); - - // wait for the channel-based event hub to tell us - // that the commit was good or bad on each peer in our organization - const promises = []; - let event_hubs = channel.getChannelEventHubsForOrg(); - event_hubs.forEach((eh) => { - logger.debug('invokeEventPromise - setting up event'); - let invokeEventPromise = new Promise((resolve, reject) => { - let event_timeout = setTimeout(() => { - let message = 'REQUEST_TIMEOUT:' + eh.getPeerAddr(); - logger.error(message); - eh.disconnect(); - }, 3000); - eh.registerTxEvent(tx_id_string, (tx, code, block_num) => { - logger.info('The chaincode invoke chaincode transaction has been committed on peer %s',eh.getPeerAddr()); - logger.info('Transaction %s has status of %s in blocl %s', tx, code, block_num); - clearTimeout(event_timeout); - - if (code !== 'VALID') { - let message = util.format('The invoke chaincode transaction was invalid, code:%s',code); - logger.error(message); - reject(new Error(message)); - } else { - let message = 'The invoke chaincode transaction was valid.'; - logger.info(message); - resolve(message); - } - }, (err) => { - clearTimeout(event_timeout); - logger.error(err); - reject(err); - }, - // the default for 'unregister' is true for transaction listeners - // so no real need to set here, however for 'disconnect' - // the default is false as most event hubs are long running - // in this use case we are using it only once - {unregister: true, disconnect: true} - ); - eh.connect(); - }); - promises.push(invokeEventPromise); - }); - - const orderer_request = { - txId: tx_id, - proposalResponses: proposalResponses, - proposal: proposal - }; - const sendPromise = channel.sendTransaction(orderer_request); - // put the send to the orderer last so that the events get registered and - // are ready for the orderering and committing - promises.push(sendPromise); - let results = await Promise.all(promises); - logger.debug(util.format('------->>> R E S P O N S E : %j', results)); - let response = results.pop(); // orderer results are last in the results - if (response.status === 'SUCCESS') { - logger.info('Successfully sent transaction to the orderer.'); - } else { - error_message = util.format('Failed to order the transaction. Error code: %s',response.status); - logger.debug(error_message); - } - - // now see what each of the event hubs reported - for(let i in results) { - let event_hub_result = results[i]; - let event_hub = event_hubs[i]; - logger.debug('Event results for event hub :%s',event_hub.getPeerAddr()); - if(typeof event_hub_result === 'string') { - logger.debug(event_hub_result); - } else { - if(!error_message) error_message = event_hub_result.toString(); - logger.debug(event_hub_result.toString()); - } - } - } - } catch (error) { - logger.error('Failed to invoke due to error: ' + error.stack ? error.stack : error); - error_message = error.toString(); - } finally { - if (channel) { - channel.close(); - } - } - - let success = true; - let message = util.format( - 'Successfully invoked the chaincode %s to the channel \'%s\' for transaction ID: %s', - org_name, channelName, tx_id_string); - if (error_message) { - message = util.format('Failed to invoke chaincode. cause:%s',error_message); - success = false; - logger.error(message); - } else { - logger.info(message); - } - - // build a response to send back to the REST caller - const response = { - success: success, - message: message - }; - return response; -}; - -exports.invokeChaincode = invokeChaincode; diff --git a/balance-transfer/app/join-channel.js b/balance-transfer/app/join-channel.js deleted file mode 100644 index c050f74865..0000000000 --- a/balance-transfer/app/join-channel.js +++ /dev/null @@ -1,111 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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. - */ -var util = require('util'); - -var helper = require('./helper.js'); -var logger = helper.getLogger('Join-Channel'); - -/* - * Have an organization join a channel - */ -var joinChannel = async function(channel_name, peers, username, org_name) { - logger.debug('\n\n============ Join Channel start ============\n') - var error_message = null; - var all_eventhubs = []; - try { - logger.info('Calling peers in organization "%s" to join the channel', org_name); - - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - var channel = client.getChannel(channel_name); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channel_name); - logger.error(message); - throw new Error(message); - } - - // next step is to get the genesis_block from the orderer, - // the starting point for the channel that we want to join - let request = { - txId : client.newTransactionID(true) //get an admin based transactionID - }; - let genesis_block = await channel.getGenesisBlock(request); - - // tell each peer to join and wait 10 seconds - // for the channel to be created on each peer - var promises = []; - promises.push(new Promise(resolve => setTimeout(resolve, 10000))); - - let join_request = { - targets: peers, //using the peer names which only is allowed when a connection profile is loaded - txId: client.newTransactionID(true), //get an admin based transactionID - block: genesis_block - }; - let join_promise = channel.joinChannel(join_request); - promises.push(join_promise); - let results = await Promise.all(promises); - logger.debug(util.format('Join Channel R E S P O N S E : %j', results)); - - // lets check the results of sending to the peers which is - // last in the results array - let peers_results = results.pop(); - // then each peer results - for(let i in peers_results) { - let peer_result = peers_results[i]; - if (peer_result instanceof Error) { - error_message = util.format('Failed to join peer to the channel with error :: %s', peer_result.toString()); - logger.error(error_message); - } else if(peer_result.response && peer_result.response.status == 200) { - logger.info('Successfully joined peer to the channel %s',channel_name); - } else { - error_message = util.format('Failed to join peer to the channel %s',channel_name); - logger.error(error_message); - } - } - } catch(error) { - logger.error('Failed to join channel due to error: ' + error.stack ? error.stack : error); - error_message = error.toString(); - } - - // need to shutdown open event streams - all_eventhubs.forEach((eh) => { - eh.disconnect(); - }); - - if (!error_message) { - let message = util.format( - 'Successfully joined peers in organization %s to the channel:%s', - org_name, channel_name); - logger.info(message); - // build a response to send back to the REST caller - const response = { - success: true, - message: message - }; - return response; - } else { - let message = util.format('Failed to join all peers to channel. cause:%s',error_message); - logger.error(message); - // build a response to send back to the REST caller - const response = { - success: false, - message: message - }; - return response; - } -}; -exports.joinChannel = joinChannel; diff --git a/balance-transfer/app/query.js b/balance-transfer/app/query.js deleted file mode 100644 index a0d3b055f7..0000000000 --- a/balance-transfer/app/query.js +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Copyright 2017 IBM All Rights Reserved. - * - * 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. - */ -var util = require('util'); -var helper = require('./helper.js'); -var logger = helper.getLogger('Query'); - -var queryChaincode = async function(peer, channelName, chaincodeName, args, fcn, username, org_name) { - let client = null; - let channel = null; - try { - // first setup the client for this org - client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - - // send query - var request = { - targets : [peer], //queryByChaincode allows for multiple targets - chaincodeId: chaincodeName, - fcn: fcn, - args: args - }; - let response_payloads = await channel.queryByChaincode(request); - if (response_payloads) { - for (let i = 0; i < response_payloads.length; i++) { - logger.info(args[0]+' now has ' + response_payloads[i].toString('utf8') + - ' after the move'); - } - return args[0]+' now has ' + response_payloads[0].toString('utf8') + - ' after the move'; - } else { - logger.error('response_payloads is null'); - return 'response_payloads is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } finally { - if (channel) { - channel.close(); - } - } -}; -var getBlockByNumber = async function(peer, channelName, blockNumber, username, org_name) { - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - var channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - - let response_payload = await channel.queryBlock(parseInt(blockNumber, peer)); - if (response_payload) { - logger.debug(response_payload); - return response_payload; - } else { - logger.error('response_payload is null'); - return 'response_payload is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } -}; -var getTransactionByID = async function(peer, channelName, trxnID, username, org_name) { - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - var channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - - let response_payload = await channel.queryTransaction(trxnID, peer); - if (response_payload) { - logger.debug(response_payload); - return response_payload; - } else { - logger.error('response_payload is null'); - return 'response_payload is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } -}; -var getBlockByHash = async function(peer, channelName, hash, username, org_name) { - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - var channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - - let response_payload = await channel.queryBlockByHash(Buffer.from(hash,'hex'), peer); - if (response_payload) { - logger.debug(response_payload); - return response_payload; - } else { - logger.error('response_payload is null'); - return 'response_payload is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } -}; -var getChainInfo = async function(peer, channelName, username, org_name) { - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - var channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - - let response_payload = await channel.queryInfo(peer); - if (response_payload) { - logger.debug(response_payload); - return response_payload; - } else { - logger.error('response_payload is null'); - return 'response_payload is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } -}; -//getInstalledChaincodes -var getInstalledChaincodes = async function(peer, channelName, type, username, org_name) { - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - - let response = null - if (type === 'installed') { - response = await client.queryInstalledChaincodes(peer, true); //use the admin identity - } else { - var channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - response = await channel.queryInstantiatedChaincodes(peer, true); //use the admin identity - } - if (response) { - if (type === 'installed') { - logger.debug('<<< Installed Chaincodes >>>'); - } else { - logger.debug('<<< Instantiated Chaincodes >>>'); - } - var details = []; - for (let i = 0; i < response.chaincodes.length; i++) { - logger.debug('name: ' + response.chaincodes[i].name + ', version: ' + - response.chaincodes[i].version + ', path: ' + response.chaincodes[i].path - ); - details.push('name: ' + response.chaincodes[i].name + ', version: ' + - response.chaincodes[i].version + ', path: ' + response.chaincodes[i].path - ); - } - return details; - } else { - logger.error('response is null'); - return 'response is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } -}; -var getChannels = async function(peer, username, org_name) { - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - - let response = await client.queryChannels(peer); - if (response) { - logger.debug('<<< channels >>>'); - var channelNames = []; - for (let i = 0; i < response.channels.length; i++) { - channelNames.push('channel id: ' + response.channels[i].channel_id); - } - logger.debug(channelNames); - return response; - } else { - logger.error('response_payloads is null'); - return 'response_payloads is null'; - } - } catch(error) { - logger.error('Failed to query due to error: ' + error.stack ? error.stack : error); - return error.toString(); - } -}; - -exports.queryChaincode = queryChaincode; -exports.getBlockByNumber = getBlockByNumber; -exports.getTransactionByID = getTransactionByID; -exports.getBlockByHash = getBlockByHash; -exports.getChainInfo = getChainInfo; -exports.getInstalledChaincodes = getInstalledChaincodes; -exports.getChannels = getChannels; diff --git a/balance-transfer/app/update-anchor-peers.js b/balance-transfer/app/update-anchor-peers.js deleted file mode 100644 index da59ece901..0000000000 --- a/balance-transfer/app/update-anchor-peers.js +++ /dev/null @@ -1,123 +0,0 @@ -/** - * Copyright Hitachi America, Ltd. All Rights Reserved. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -'use strict'; -var util = require('util'); -var fs = require('fs'); -var path = require('path'); - -var helper = require('./helper.js'); -var logger = helper.getLogger('update-anchor-peers'); - -var updateAnchorPeers = async function(channelName, configUpdatePath, username, org_name) { - logger.debug('\n====== Updating Anchor Peers on \'' + channelName + '\' ======\n'); - var error_message = null; - try { - // first setup the client for this org - var client = await helper.getClientForOrg(org_name, username); - logger.debug('Successfully got the fabric client for the organization "%s"', org_name); - var channel = client.getChannel(channelName); - if(!channel) { - let message = util.format('Channel %s was not defined in the connection profile', channelName); - logger.error(message); - throw new Error(message); - } - - // read in the envelope for the channel config raw bytes - var envelope = fs.readFileSync(path.join(__dirname, configUpdatePath)); - // extract the channel config bytes from the envelope to be signed - var channelConfig = client.extractChannelConfig(envelope); - - //Acting as a client in the given organization provided with "orgName" param - // sign the channel config bytes as "endorsement", this is required by - // the orderer's channel creation policy - // this will use the admin identity assigned to the client when the connection profile was loaded - let signature = client.signChannelConfig(channelConfig); - - let request = { - config: channelConfig, - signatures: [signature], - name: channelName, - txId: client.newTransactionID(true) // get an admin based transactionID - }; - - var promises = []; - let event_hubs = channel.getChannelEventHubsForOrg(); - logger.debug('found %s eventhubs for this organization %s',event_hubs.length, org_name); - event_hubs.forEach((eh) => { - let anchorUpdateEventPromise = new Promise((resolve, reject) => { - logger.debug('anchorUpdateEventPromise - setting up event'); - const event_timeout = setTimeout(() => { - let message = 'REQUEST_TIMEOUT:' + eh.getPeerAddr(); - logger.error(message); - eh.disconnect(); - }, 60000); - eh.registerBlockEvent((block) => { - logger.info('The config update has been committed on peer %s',eh.getPeerAddr()); - clearTimeout(event_timeout); - resolve(); - }, (err) => { - clearTimeout(event_timeout); - logger.error(err); - reject(err); - }, - // the default for 'unregister' is true for block listeners - // so no real need to set here, however for 'disconnect' - // the default is false as most event hubs are long running - // in this use case we are using it only once - {unregister: true, disconnect: true} - ); - eh.connect(); - }); - promises.push(anchorUpdateEventPromise); - }); - - var sendPromise = client.updateChannel(request); - // put the send to the orderer last so that the events get registered and - // are ready for the orderering and committing - promises.push(sendPromise); - let results = await Promise.all(promises); - logger.debug(util.format('------->>> R E S P O N S E : %j', results)); - let response = results.pop(); // orderer results are last in the results - - if (response) { - if (response.status === 'SUCCESS') { - logger.info('Successfully update anchor peers to the channel %s', channelName); - } else { - error_message = util.format('Failed to update anchor peers to the channel %s with status: %s reason: %s', channelName, response.status, response.info); - logger.error(error_message); - } - } else { - error_message = util.format('Failed to update anchor peers to the channel %s', channelName); - logger.error(error_message); - } - } catch (error) { - logger.error('Failed to update anchor peers due to error: ' + error.stack ? error.stack : error); - error_message = error.toString(); - } - - if (!error_message) { - let message = util.format( - 'Successfully update anchor peers in organization %s to the channel \'%s\'', - org_name, channelName); - logger.info(message); - const response = { - success: true, - message: message - }; - return response; - } else { - let message = util.format('Failed to update anchor peers. cause:%s',error_message); - logger.error(message); - const response = { - success: false, - message: message - }; - return response; - } -}; - -exports.updateAnchorPeers = updateAnchorPeers; diff --git a/balance-transfer/artifacts/base.yaml b/balance-transfer/artifacts/base.yaml deleted file mode 100644 index 35027d7ffb..0000000000 --- a/balance-transfer/artifacts/base.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -version: '2' -services: - peer-base: - image: hyperledger/fabric-peer - environment: - - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - # the following setting starts chaincode containers on the same - # bridge network as the peers - # https://docs.docker.com/compose/networking/ - - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=artifacts_default - - FABRIC_LOGGING_SPEC=DEBUG - - CORE_PEER_GOSSIP_USELEADERELECTION=true - - CORE_PEER_GOSSIP_ORGLEADER=false - # The following setting skips the gossip handshake since we are - # are not doing mutual TLS - - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true - - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/crypto/peer/msp - - CORE_PEER_TLS_ENABLED=true - - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/crypto/peer/tls/server.key - - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/crypto/peer/tls/server.crt - - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/crypto/peer/tls/ca.crt - working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer - command: peer node start - volumes: - - /var/run/:/host/var/run/ diff --git a/balance-transfer/artifacts/channel/Org1MSPanchors.tx b/balance-transfer/artifacts/channel/Org1MSPanchors.tx deleted file mode 100644 index 104ee50e05..0000000000 Binary files a/balance-transfer/artifacts/channel/Org1MSPanchors.tx and /dev/null differ diff --git a/balance-transfer/artifacts/channel/Org2MSPanchors.tx b/balance-transfer/artifacts/channel/Org2MSPanchors.tx deleted file mode 100644 index eaaf1d7f12..0000000000 Binary files a/balance-transfer/artifacts/channel/Org2MSPanchors.tx and /dev/null differ diff --git a/balance-transfer/artifacts/channel/configtx.yaml b/balance-transfer/artifacts/channel/configtx.yaml deleted file mode 100644 index 98f5cb7208..0000000000 --- a/balance-transfer/artifacts/channel/configtx.yaml +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - ---- -################################################################################ -# -# 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: OrdererMSP - - # 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 - - - &Org1 - # DefaultOrg defines the organization which is used in the sampleconfig - # of the fabric.git development environment - Name: Org1MSP - - # ID to load the MSP definition as - ID: Org1MSP - - MSPDir: crypto-config/peerOrganizations/org1.example.com/msp - - 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 - - - &Org2 - # DefaultOrg defines the organization which is used in the sampleconfig - # of the fabric.git development environment - Name: Org2MSP - - # ID to load the MSP definition as - ID: Org2MSP - - MSPDir: crypto-config/peerOrganizations/org2.example.com/msp - - 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.org2.example.com - Port: 7051 - -################################################################################ -# -# 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: - -################################################################################ -# -# 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: - -################################################################################ -# -# Profile -# -# - Different configuration profiles may be encoded here to be specified -# as parameters to the configtxgen tool -# -################################################################################ -Profiles: - - TwoOrgsOrdererGenesis: - Orderer: - <<: *OrdererDefaults - Organizations: - - *OrdererOrg - Consortiums: - SampleConsortium: - Organizations: - - *Org1 - - *Org2 - TwoOrgsChannel: - Consortium: SampleConsortium - Application: - <<: *ApplicationDefaults - Organizations: - - *Org1 - - *Org2 diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/ca/0d46ccf0e9436c1bc3b6e2bf80cdb202c4943604f95c72ee0ff839d3ec300719_sk b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/ca/0d46ccf0e9436c1bc3b6e2bf80cdb202c4943604f95c72ee0ff839d3ec300719_sk deleted file mode 100755 index 6e2c4c3d5b..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/ca/0d46ccf0e9436c1bc3b6e2bf80cdb202c4943604f95c72ee0ff839d3ec300719_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg9pRJ4Y87tn+vE1fU -uAGVg5OOGwHYlqBuvAOvy0Z+mEChRANCAAQyw4A26b4ouKj0TxbF3mM4I51vDLZ2 -clA+fdrYJwZcI9F/lLmpu+oEd/XXdQn/ELzEsgeCi9xdThVYmeXJ/53K ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem deleted file mode 100644 index e83e629e10..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICLjCCAdWgAwIBAgIQCeSxIA/5bBc/893OreC2kzAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTE3MDYyMzEyMzMxOVoXDTI3MDYyMTEyMzMxOVowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDLDgDbpvii4qPRPFsXeYzgjnW8M -tnZyUD592tgnBlwj0X+Uuam76gR39dd1Cf8QvMSyB4KL3F1OFViZ5cn/ncqjXzBd -MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB -Af8wKQYDVR0OBCIEIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy7g/4OdPsMAcZMAoG -CCqGSM49BAMCA0cAMEQCICXp7cNAHK6RQOFxE8Gpqy1B/FuLbmtYNqqBo5e1Pgly -AiAWH23pmnXngcjLHg3nGwa3oUlCyPD64ilFoCMdN9TRVg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem deleted file mode 100644 index 4a1dbfa9d2..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICCjCCAbGgAwIBAgIRANPhTyHWZkTenKfX4eBv0ZUwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMFYxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG -SM49AwEHA0IABKAyu7N4S2ZPQSzsAVF/mwwCewuu++MtfcMmUdeoIPFRBj1JMCnf -f88M0wj13gQSJQ6GfnUrT76G/L5fGxCUifWjTTBLMA4GA1UdDwEB/wQEAwIHgDAM -BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy -7g/4OdPsMAcZMAoGCCqGSM49BAMCA0cAMEQCIEdiGFLzeGMvVNubuZ3iuvRp/Pp6 -im3FmABwIbnMarabAiBIHWzz8Yxh9K5ZNkVNZX3fLZ4LlzsKBinbWH9J2wblDg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index e83e629e10..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICLjCCAdWgAwIBAgIQCeSxIA/5bBc/893OreC2kzAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTE3MDYyMzEyMzMxOVoXDTI3MDYyMTEyMzMxOVowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDLDgDbpvii4qPRPFsXeYzgjnW8M -tnZyUD592tgnBlwj0X+Uuam76gR39dd1Cf8QvMSyB4KL3F1OFViZ5cn/ncqjXzBd -MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB -Af8wKQYDVR0OBCIEIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy7g/4OdPsMAcZMAoG -CCqGSM49BAMCA0cAMEQCICXp7cNAHK6RQOFxE8Gpqy1B/FuLbmtYNqqBo5e1Pgly -AiAWH23pmnXngcjLHg3nGwa3oUlCyPD64ilFoCMdN9TRVg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 88a1e69db1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICNTCCAdygAwIBAgIRAN1F77OjzDmyWCzGuLyXHI8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkmbjr/9EK0m/4CpR6 -DiM+Eyke3vxPX+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFT -RWPwo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB -Af8EBTADAQH/MCkGA1UdDgQiBCBqIR7RiIC02zhngxyXeAmQJxO44yGlq1XswQTa -/C7sSTAKBggqhkjOPQQDAgNHADBEAiBSxokO+9hHG+FpYikoNpcma4AK6N1KI2B6 -WqI5xNyF4gIgIQx8Q6p6ynDfUGDJ43uTHPzwlt+o8gQ3A5w07L70ml0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem deleted file mode 100644 index 4a1dbfa9d2..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICCjCCAbGgAwIBAgIRANPhTyHWZkTenKfX4eBv0ZUwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMFYxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG -SM49AwEHA0IABKAyu7N4S2ZPQSzsAVF/mwwCewuu++MtfcMmUdeoIPFRBj1JMCnf -f88M0wj13gQSJQ6GfnUrT76G/L5fGxCUifWjTTBLMA4GA1UdDwEB/wQEAwIHgDAM -BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy -7g/4OdPsMAcZMAoGCCqGSM49BAMCA0cAMEQCIEdiGFLzeGMvVNubuZ3iuvRp/Pp6 -im3FmABwIbnMarabAiBIHWzz8Yxh9K5ZNkVNZX3fLZ4LlzsKBinbWH9J2wblDg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index e83e629e10..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICLjCCAdWgAwIBAgIQCeSxIA/5bBc/893OreC2kzAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTE3MDYyMzEyMzMxOVoXDTI3MDYyMTEyMzMxOVowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDLDgDbpvii4qPRPFsXeYzgjnW8M -tnZyUD592tgnBlwj0X+Uuam76gR39dd1Cf8QvMSyB4KL3F1OFViZ5cn/ncqjXzBd -MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB -Af8wKQYDVR0OBCIEIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy7g/4OdPsMAcZMAoG -CCqGSM49BAMCA0cAMEQCICXp7cNAHK6RQOFxE8Gpqy1B/FuLbmtYNqqBo5e1Pgly -AiAWH23pmnXngcjLHg3nGwa3oUlCyPD64ilFoCMdN9TRVg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/2fb065725bf1b7e2811c0e8ca8d37f5a951fc4cd1162a47aad8accf9ddd10291_sk b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/2fb065725bf1b7e2811c0e8ca8d37f5a951fc4cd1162a47aad8accf9ddd10291_sk deleted file mode 100755 index 403d8e5e42..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/2fb065725bf1b7e2811c0e8ca8d37f5a951fc4cd1162a47aad8accf9ddd10291_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgc4TjL7yNIkRpowuC -Y0uEEkzJraTtTM380wlyrRoVs96hRANCAARi2C4soUEstzRVLDI8ccc17vocfvWg -5crrC6fxj/m+0xrA9n9ZOb+8FVRZ182XNz14DbxpfHrMEAHyJGbXoR5T ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem deleted file mode 100644 index 0fb71451b8..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICDTCCAbOgAwIBAgIRALFafJiTFN/47AvAGfvj1ZEwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMFgxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI -KoZIzj0DAQcDQgAEYtguLKFBLLc0VSwyPHHHNe76HH71oOXK6wun8Y/5vtMawPZ/ -WTm/vBVUWdfNlzc9eA28aXx6zBAB8iRm16EeU6NNMEswDgYDVR0PAQH/BAQDAgeA -MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDUbM8OlDbBvDtuK/gM2yAsSUNgT5 -XHLuD/g50+wwBxkwCgYIKoZIzj0EAwIDSAAwRQIhANJuEGHBftrtlWgie9zgc60J -/XVytPN/D0rPlkMV17n7AiBBbStggGBfFYcQ2LhDhcKut8nScJ2OFrt+dJSdJbod -7A== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 88a1e69db1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICNTCCAdygAwIBAgIRAN1F77OjzDmyWCzGuLyXHI8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkmbjr/9EK0m/4CpR6 -DiM+Eyke3vxPX+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFT -RWPwo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB -Af8EBTADAQH/MCkGA1UdDgQiBCBqIR7RiIC02zhngxyXeAmQJxO44yGlq1XswQTa -/C7sSTAKBggqhkjOPQQDAgNHADBEAiBSxokO+9hHG+FpYikoNpcma4AK6N1KI2B6 -WqI5xNyF4gIgIQx8Q6p6ynDfUGDJ43uTHPzwlt+o8gQ3A5w07L70ml0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt deleted file mode 100644 index 88a1e69db1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICNTCCAdygAwIBAgIRAN1F77OjzDmyWCzGuLyXHI8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkmbjr/9EK0m/4CpR6 -DiM+Eyke3vxPX+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFT -RWPwo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB -Af8EBTADAQH/MCkGA1UdDgQiBCBqIR7RiIC02zhngxyXeAmQJxO44yGlq1XswQTa -/C7sSTAKBggqhkjOPQQDAgNHADBEAiBSxokO+9hHG+FpYikoNpcma4AK6N1KI2B6 -WqI5xNyF4gIgIQx8Q6p6ynDfUGDJ43uTHPzwlt+o8gQ3A5w07L70ml0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt deleted file mode 100644 index 5f61f509b0..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICWjCCAgCgAwIBAgIRAKk85zOKA4NKFQe/AmGxK7EwCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMFgxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRwwGgYDVQQDExNvcmRlcmVyLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAE3Nve7G2pybxbA+S3bvKlP8BAR4kJG96Yd2k9UFc7+Mmd -XM5/7TeVCbaidnYpODYr2pNlzo8HijwoyvYxnN7U3aOBljCBkzAOBgNVHQ8BAf8E -BAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQC -MAAwKwYDVR0jBCQwIoAgaiEe0YiAtNs4Z4Mcl3gJkCcTuOMhpatV7MEE2vwu7Ekw -JwYDVR0RBCAwHoITb3JkZXJlci5leGFtcGxlLmNvbYIHb3JkZXJlcjAKBggqhkjO -PQQDAgNIADBFAiEAtW6SunJ0GXR2gZY2yOg4CAOLPqb3YB07/9byOSFYZygCIA77 -iitG1Mkvlc7fyNFcgYKDUpbXQBS5iTmAuo/cISDx ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key deleted file mode 100755 index 9096afb085..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUsf4CUpdmdIaax7T -qjCJaQLCsSU1/xaoETdgCCZ8fDihRANCAATc297sbanJvFsD5Ldu8qU/wEBHiQkb -3ph3aT1QVzv4yZ1czn/tN5UJtqJ2dik4Nivak2XOjweKPCjK9jGc3tTd ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/tlsca/6a211ed18880b4db3867831c977809902713b8e321a5ab55ecc104dafc2eec49_sk b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/tlsca/6a211ed18880b4db3867831c977809902713b8e321a5ab55ecc104dafc2eec49_sk deleted file mode 100755 index 0fc62a252a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/tlsca/6a211ed18880b4db3867831c977809902713b8e321a5ab55ecc104dafc2eec49_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQghjZ40AvUeupMV603 -i9pA9S8uNLz5i6TePeBgJZhrY/ihRANCAAQkmbjr/9EK0m/4CpR6DiM+Eyke3vxP -X+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFTRWPw ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem deleted file mode 100644 index 88a1e69db1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICNTCCAdygAwIBAgIRAN1F77OjzDmyWCzGuLyXHI8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkmbjr/9EK0m/4CpR6 -DiM+Eyke3vxPX+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFT -RWPwo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB -Af8EBTADAQH/MCkGA1UdDgQiBCBqIR7RiIC02zhngxyXeAmQJxO44yGlq1XswQTa -/C7sSTAKBggqhkjOPQQDAgNHADBEAiBSxokO+9hHG+FpYikoNpcma4AK6N1KI2B6 -WqI5xNyF4gIgIQx8Q6p6ynDfUGDJ43uTHPzwlt+o8gQ3A5w07L70ml0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem deleted file mode 100644 index 4a1dbfa9d2..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/admincerts/Admin@example.com-cert.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICCjCCAbGgAwIBAgIRANPhTyHWZkTenKfX4eBv0ZUwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMFYxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG -SM49AwEHA0IABKAyu7N4S2ZPQSzsAVF/mwwCewuu++MtfcMmUdeoIPFRBj1JMCnf -f88M0wj13gQSJQ6GfnUrT76G/L5fGxCUifWjTTBLMA4GA1UdDwEB/wQEAwIHgDAM -BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy -7g/4OdPsMAcZMAoGCCqGSM49BAMCA0cAMEQCIEdiGFLzeGMvVNubuZ3iuvRp/Pp6 -im3FmABwIbnMarabAiBIHWzz8Yxh9K5ZNkVNZX3fLZ4LlzsKBinbWH9J2wblDg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem deleted file mode 100644 index e83e629e10..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/cacerts/ca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICLjCCAdWgAwIBAgIQCeSxIA/5bBc/893OreC2kzAKBggqhkjOPQQDAjBpMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w -bGUuY29tMB4XDTE3MDYyMzEyMzMxOVoXDTI3MDYyMTEyMzMxOVowaTELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABDLDgDbpvii4qPRPFsXeYzgjnW8M -tnZyUD592tgnBlwj0X+Uuam76gR39dd1Cf8QvMSyB4KL3F1OFViZ5cn/ncqjXzBd -MA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMB -Af8wKQYDVR0OBCIEIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy7g/4OdPsMAcZMAoG -CCqGSM49BAMCA0cAMEQCICXp7cNAHK6RQOFxE8Gpqy1B/FuLbmtYNqqBo5e1Pgly -AiAWH23pmnXngcjLHg3nGwa3oUlCyPD64ilFoCMdN9TRVg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/db670eed8487a93c35ae448b9f84c2f241a7a8c87df0544fc1dc08baf7832aa0_sk b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/db670eed8487a93c35ae448b9f84c2f241a7a8c87df0544fc1dc08baf7832aa0_sk deleted file mode 100755 index 06fdf974f3..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/keystore/db670eed8487a93c35ae448b9f84c2f241a7a8c87df0544fc1dc08baf7832aa0_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg33NMbWc5E80ueSIA -iWqRlyC2M+1ce4shkkP/CVKOp4uhRANCAASgMruzeEtmT0Es7AFRf5sMAnsLrvvj -LX3DJlHXqCDxUQY9STAp33/PDNMI9d4EEiUOhn51K0++hvy+XxsQlIn1 ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem deleted file mode 100644 index 4a1dbfa9d2..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/signcerts/Admin@example.com-cert.pem +++ /dev/null @@ -1,13 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICCjCCAbGgAwIBAgIRANPhTyHWZkTenKfX4eBv0ZUwCgYIKoZIzj0EAwIwaTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFt -cGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMFYxCzAJBgNV -BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNp -c2NvMRowGAYDVQQDDBFBZG1pbkBleGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqG -SM49AwEHA0IABKAyu7N4S2ZPQSzsAVF/mwwCewuu++MtfcMmUdeoIPFRBj1JMCnf -f88M0wj13gQSJQ6GfnUrT76G/L5fGxCUifWjTTBLMA4GA1UdDwEB/wQEAwIHgDAM -BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA1GzPDpQ2wbw7biv4DNsgLElDYE+Vxy -7g/4OdPsMAcZMAoGCCqGSM49BAMCA0cAMEQCIEdiGFLzeGMvVNubuZ3iuvRp/Pp6 -im3FmABwIbnMarabAiBIHWzz8Yxh9K5ZNkVNZX3fLZ4LlzsKBinbWH9J2wblDg== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem deleted file mode 100644 index 88a1e69db1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/msp/tlscacerts/tlsca.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICNTCCAdygAwIBAgIRAN1F77OjzDmyWCzGuLyXHI8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkmbjr/9EK0m/4CpR6 -DiM+Eyke3vxPX+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFT -RWPwo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB -Af8EBTADAQH/MCkGA1UdDgQiBCBqIR7RiIC02zhngxyXeAmQJxO44yGlq1XswQTa -/C7sSTAKBggqhkjOPQQDAgNHADBEAiBSxokO+9hHG+FpYikoNpcma4AK6N1KI2B6 -WqI5xNyF4gIgIQx8Q6p6ynDfUGDJ43uTHPzwlt+o8gQ3A5w07L70ml0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt deleted file mode 100644 index 88a1e69db1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/ca.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICNTCCAdygAwIBAgIRAN1F77OjzDmyWCzGuLyXHI8wCgYIKoZIzj0EAwIwbDEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRowGAYDVQQDExF0bHNjYS5l -eGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTlaMGwxCzAJ -BgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJh -bmNpc2NvMRQwEgYDVQQKEwtleGFtcGxlLmNvbTEaMBgGA1UEAxMRdGxzY2EuZXhh -bXBsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQkmbjr/9EK0m/4CpR6 -DiM+Eyke3vxPX+IhL+utTRt/qYz2q0UT9wem0xgRVqyWp4vN35ur7aSI+dALKBFT -RWPwo18wXTAOBgNVHQ8BAf8EBAMCAaYwDwYDVR0lBAgwBgYEVR0lADAPBgNVHRMB -Af8EBTADAQH/MCkGA1UdDgQiBCBqIR7RiIC02zhngxyXeAmQJxO44yGlq1XswQTa -/C7sSTAKBggqhkjOPQQDAgNHADBEAiBSxokO+9hHG+FpYikoNpcma4AK6N1KI2B6 -WqI5xNyF4gIgIQx8Q6p6ynDfUGDJ43uTHPzwlt+o8gQ3A5w07L70ml0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt deleted file mode 100644 index e920e6e2f7..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICKzCCAdKgAwIBAgIQF7ZJRSdZJSb9HEWyJaxQuDAKBggqhkjOPQQDAjBsMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xGjAYBgNVBAMTEXRsc2NhLmV4 -YW1wbGUuY29tMB4XDTE3MDYyMzEyMzMxOVoXDTI3MDYyMTEyMzMxOVowVjELMAkG -A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFu -Y2lzY28xGjAYBgNVBAMMEUFkbWluQGV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYI -KoZIzj0DAQcDQgAE+9xJbd39hXJw8Y49mtzzO1P/KaLjzkEAQGG7cnujbytJHRLL -+kHW2E02+ob8hAucwsjR/Sxg0J2yufaDxKWtSqNsMGowDgYDVR0PAQH/BAQDAgWg -MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMCsG -A1UdIwQkMCKAIGohHtGIgLTbOGeDHJd4CZAnE7jjIaWrVezBBNr8LuxJMAoGCCqG -SM49BAMCA0cAMEQCIA5f8O7WfymKaLrJ71f77GGb/6z72Jh7g5svHDZBgKkBAiAg -fkCIypxeGnU1Vbo3vYauhqU6lQYO6VcVBhk3182wyQ== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key deleted file mode 100755 index e8e021d03d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/ordererOrganizations/example.com/users/Admin@example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgixJReeen2sIgyqT6 -F0z2Y9iYIu++FVOGg7ha4FR6G2WhRANCAAT73Elt3f2FcnDxjj2a3PM7U/8pouPO -QQBAYbtye6NvK0kdEsv6QdbYTTb6hvyEC5zCyNH9LGDQnbK59oPEpa1K ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk deleted file mode 100755 index 3c356ecbf0..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgp4Y9v/Cx/ee3K2mP -N62ttbG2y1NkppMN6MlycYpqtT2hRANCAAQohXCFPMmsvPN+QiP874DXwHXyTZxI -oRZ1Jt9ZkikUlJv3LDxCgSxu2TjCP0kkP/A5JrV4MP+lCit6MKbbkKYF ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem deleted file mode 100644 index 01ce790d23..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQjCCAemgAwIBAgIQIR2LR9fa8xs5unnJJ9PFSzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD -ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KIVwhTzJrLzzfkIj/O+A18B18k2cSKEWdSbfWZIpFJSb9yw8QoEsbtk4wj9JJD/w -OSa1eDD/pQorejCm25CmBaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG -BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgDnKSJOiz8xeEyKk8W472 -9MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgMIO+yK3Fbwv1EXMc -tQam42i6ROxSanaAHrbY2oVC1fICICsMpdSS2kbdntUDayi09v4/WRtC59ExCrHl -rg/GXwkv ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem deleted file mode 100644 index e716793f48..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGTCCAb+gAwIBAgIQKKKdQSzsDoUYn/LPAuRWGTAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECmbzUDozIrLKjp3OAzItSG7m7Flw76rT -8VO8E6otlCwxKtBRkPpZL7norC3NsjyE339J5O4pXCqhIApQyRRsRqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDnKSJOiz8xeE -yKk8W4729MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDSAAwRQIhALT02pc/ -yfE/4wUJfUBQ32GifUEh8JktAXzL/73S0rjYAiACNSp6zAQBX9SBxTOGMk4cGGAy -CKqf8052NVUs2CvPzA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem deleted file mode 100644 index 01ce790d23..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQjCCAemgAwIBAgIQIR2LR9fa8xs5unnJJ9PFSzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD -ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KIVwhTzJrLzzfkIj/O+A18B18k2cSKEWdSbfWZIpFJSb9yw8QoEsbtk4wj9JJD/w -OSa1eDD/pQorejCm25CmBaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG -BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgDnKSJOiz8xeEyKk8W472 -9MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgMIO+yK3Fbwv1EXMc -tQam42i6ROxSanaAHrbY2oVC1fICICsMpdSS2kbdntUDayi09v4/WRtC59ExCrHl -rg/GXwkv ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem deleted file mode 100644 index e716793f48..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGTCCAb+gAwIBAgIQKKKdQSzsDoUYn/LPAuRWGTAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECmbzUDozIrLKjp3OAzItSG7m7Flw76rT -8VO8E6otlCwxKtBRkPpZL7norC3NsjyE339J5O4pXCqhIApQyRRsRqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDnKSJOiz8xeE -yKk8W4729MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDSAAwRQIhALT02pc/ -yfE/4wUJfUBQ32GifUEh8JktAXzL/73S0rjYAiACNSp6zAQBX9SBxTOGMk4cGGAy -CKqf8052NVUs2CvPzA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem deleted file mode 100644 index 01ce790d23..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQjCCAemgAwIBAgIQIR2LR9fa8xs5unnJJ9PFSzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD -ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KIVwhTzJrLzzfkIj/O+A18B18k2cSKEWdSbfWZIpFJSb9yw8QoEsbtk4wj9JJD/w -OSa1eDD/pQorejCm25CmBaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG -BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgDnKSJOiz8xeEyKk8W472 -9MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgMIO+yK3Fbwv1EXMc -tQam42i6ROxSanaAHrbY2oVC1fICICsMpdSS2kbdntUDayi09v4/WRtC59ExCrHl -rg/GXwkv ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/27db82c96b1482480baa1c75f80e5cce249beaab27b70c741bb0e2554355957e_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/27db82c96b1482480baa1c75f80e5cce249beaab27b70c741bb0e2554355957e_sk deleted file mode 100755 index 04b22a2db2..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/keystore/27db82c96b1482480baa1c75f80e5cce249beaab27b70c741bb0e2554355957e_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTEPwtCyJ1jFk2qQs -oFgHzMo3/MEXG1XJHiTgoRYvnPahRANCAATNL2TaAIodxq3xaPhPacHW7ILxHbOD -e6bF1MvueaAVanS7IIJtBDEP9VL7xH/cM28QWS/OFyNz01T+dGoyKuku ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem deleted file mode 100644 index 53158d458f..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/signcerts/peer0.org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGDCCAb+gAwIBAgIQPcMFFEB/vq6mEL6vXV7aUTAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMC5vcmcxLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzS9k2gCKHcat8Wj4T2nB1uyC8R2zg3um -xdTL7nmgFWp0uyCCbQQxD/VS+8R/3DNvEFkvzhcjc9NU/nRqMirpLqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDnKSJOiz8xeE -yKk8W4729MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgHBdxbHUG -rFUzKPX9UmmN3SwigWcRUREUy/GTb3hDIAsCIEF1BxTqv8ilQYE8ql0wJL4mTber -HE6DFYvvBCUnicUh ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt deleted file mode 100644 index f34c5be89e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICczCCAhmgAwIBAgIRAIKTnLyvyRImVvGtyrD0wH4wCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCZF1/1UYwnRJk2d+3zB0cW9oi8H -h7g6CaBw6aEI1WwgtKZ+/s28oQVUYBVJsdT3RAGgRRRt12QrqO/xa7/i1UejgaIw -gZ8wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD -AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJRQktk29YOMWm9khNuXTYV5M3Bn -N9ANBL9l9045dvn4MDMGA1UdEQQsMCqCFnBlZXIwLm9yZzEuZXhhbXBsZS5jb22C -BXBlZXIwgglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAwRQIhAPs/YOkkkh2835Vb -pXtUuQNCi/PlhPhTiFlEdeE56vmmAiBadeHDYBIHkEA10wzr33wS1FpELg18eC5N -5gtmHzQUBA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key deleted file mode 100755 index d4a96e2d3d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCRU1ZAMLxDAlcr5d -D6ZSprL4Lf0+TkWwN6rCFVWmjDuhRANCAAQmRdf9VGMJ0SZNnft8wdHFvaIvB4e4 -OgmgcOmhCNVsILSmfv7NvKEFVGAVSbHU90QBoEUUbddkK6jv8Wu/4tVH ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem deleted file mode 100644 index e716793f48..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGTCCAb+gAwIBAgIQKKKdQSzsDoUYn/LPAuRWGTAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECmbzUDozIrLKjp3OAzItSG7m7Flw76rT -8VO8E6otlCwxKtBRkPpZL7norC3NsjyE339J5O4pXCqhIApQyRRsRqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDnKSJOiz8xeE -yKk8W4729MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDSAAwRQIhALT02pc/ -yfE/4wUJfUBQ32GifUEh8JktAXzL/73S0rjYAiACNSp6zAQBX9SBxTOGMk4cGGAy -CKqf8052NVUs2CvPzA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem deleted file mode 100644 index 01ce790d23..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQjCCAemgAwIBAgIQIR2LR9fa8xs5unnJJ9PFSzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD -ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KIVwhTzJrLzzfkIj/O+A18B18k2cSKEWdSbfWZIpFJSb9yw8QoEsbtk4wj9JJD/w -OSa1eDD/pQorejCm25CmBaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG -BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgDnKSJOiz8xeEyKk8W472 -9MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgMIO+yK3Fbwv1EXMc -tQam42i6ROxSanaAHrbY2oVC1fICICsMpdSS2kbdntUDayi09v4/WRtC59ExCrHl -rg/GXwkv ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/fdee12a3510fde3155c37128cfec26090ae249bfbca28f884e60c21338493edd_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/fdee12a3510fde3155c37128cfec26090ae249bfbca28f884e60c21338493edd_sk deleted file mode 100755 index ae23cef091..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/keystore/fdee12a3510fde3155c37128cfec26090ae249bfbca28f884e60c21338493edd_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtzNlo4v/qB1j5dJ6 -CRLQb9UAfUMMevXdnbuXUux2K2GhRANCAAQp09OJbb47IImVbghi7EWMxIgkyWZW -cIdx0/9u9wdzZFgO8K5ciuxXwGpyMnsbkdVCPZuPmCjahRunIGJ3/DLH ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem deleted file mode 100644 index 35a225be9e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/signcerts/peer1.org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAI+BBtEBvpOqhfRZZH7eV/YwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMS5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCnT04ltvjsgiZVuCGLsRYzEiCTJZlZw -h3HT/273B3NkWA7wrlyK7FfAanIyexuR1UI9m4+YKNqFG6cgYnf8MsejTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA5ykiTos/MX -hMipPFuO9vTByR2ebld8RcMxY2Cf5AARMAoGCCqGSM49BAMCA0gAMEUCIQCSRdWm -i4IgVUajvzWVxyE/wi7n617pVqS4+nJ7gbTRjQIgefzBwS+bkNhPc3/rktySFLRC -WMnq87KyqMLc6iRaJx0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt deleted file mode 100644 index 15158a45a5..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.crt +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICczCCAhmgAwIBAgIRALZ2km4W6KjPQb9rM12Ewb4wCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjEub3JnMS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKpNWa4jf/Rk5bpSZqFYteLESkd7 -KbrSOoiqLJmYSvM+KjDRPt+/pjLBNKM60tvknTUslU6Jne/7CVx1FpiHjRGjgaIw -gZ8wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD -AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJRQktk29YOMWm9khNuXTYV5M3Bn -N9ANBL9l9045dvn4MDMGA1UdEQQsMCqCFnBlZXIxLm9yZzEuZXhhbXBsZS5jb22C -BXBlZXIxgglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDSAAwRQIhAKjhWT8ZdaYR2Hvx -hPUl3t6gDJmkVuhy2Mxin04XxrUUAiBmBN83NmGoluPHQnvtGQ1BQP/JpY+UCkMR -O0xeuEChjA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key deleted file mode 100755 index 5fa4ace4cb..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgi4EN3aLIYYJMpLwD -r3yCKO+EBzcCcTA5QbNZ1SvDFa+hRANCAASqTVmuI3/0ZOW6UmahWLXixEpHeym6 -0jqIqiyZmErzPiow0T7fv6YywTSjOtLb5J01LJVOiZ3v+wlcdRaYh40R ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/tlsca/945092d936f5838c5a6f6484db974d857933706737d00d04bf65f74e3976f9f8_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/tlsca/945092d936f5838c5a6f6484db974d857933706737d00d04bf65f74e3976f9f8_sk deleted file mode 100755 index 9d302e4d12..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/tlsca/945092d936f5838c5a6f6484db974d857933706737d00d04bf65f74e3976f9f8_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg/I1tIO3Xr1ZlsJUm -FDoUo/CNIJXLPlpUxtB7/LjcNzahRANCAASrgcdhvIXc7eJf5u3u0BM2B2tZboZh -dZ8oomOyuIEyG1ivnL+xOO+DrixnnXs3H9A2PbrIot1n29IFQaEBR951 ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/tlsca/tlsca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem deleted file mode 100644 index e716793f48..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/admincerts/Admin@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGTCCAb+gAwIBAgIQKKKdQSzsDoUYn/LPAuRWGTAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECmbzUDozIrLKjp3OAzItSG7m7Flw76rT -8VO8E6otlCwxKtBRkPpZL7norC3NsjyE339J5O4pXCqhIApQyRRsRqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDnKSJOiz8xeE -yKk8W4729MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDSAAwRQIhALT02pc/ -yfE/4wUJfUBQ32GifUEh8JktAXzL/73S0rjYAiACNSp6zAQBX9SBxTOGMk4cGGAy -CKqf8052NVUs2CvPzA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem deleted file mode 100644 index 01ce790d23..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQjCCAemgAwIBAgIQIR2LR9fa8xs5unnJJ9PFSzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD -ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KIVwhTzJrLzzfkIj/O+A18B18k2cSKEWdSbfWZIpFJSb9yw8QoEsbtk4wj9JJD/w -OSa1eDD/pQorejCm25CmBaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG -BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgDnKSJOiz8xeEyKk8W472 -9MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgMIO+yK3Fbwv1EXMc -tQam42i6ROxSanaAHrbY2oVC1fICICsMpdSS2kbdntUDayi09v4/WRtC59ExCrHl -rg/GXwkv ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk deleted file mode 100755 index 09b7d469e3..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNmsvQQm4nwrxOKFX -UNfLPgjNm+FtYu3vb6OZ9q/5GbChRANCAAQKZvNQOjMissqOnc4DMi1IbubsWXDv -qtPxU7wTqi2ULDEq0FGQ+lkvueisLc2yPITff0nk7ilcKqEgClDJFGxG ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem deleted file mode 100644 index e716793f48..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGTCCAb+gAwIBAgIQKKKdQSzsDoUYn/LPAuRWGTAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZBZG1pbkBvcmcxLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECmbzUDozIrLKjp3OAzItSG7m7Flw76rT -8VO8E6otlCwxKtBRkPpZL7norC3NsjyE339J5O4pXCqhIApQyRRsRqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgDnKSJOiz8xeE -yKk8W4729MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDSAAwRQIhALT02pc/ -yfE/4wUJfUBQ32GifUEh8JktAXzL/73S0rjYAiACNSp6zAQBX9SBxTOGMk4cGGAy -CKqf8052NVUs2CvPzA== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt deleted file mode 100644 index 54c13d4122..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICOzCCAeKgAwIBAgIRALvUEE81tMguFRFvx00HyREwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCk0mXNbPIzN+YOJvx/0XnOVdb6G -RxNetOOuuWq+QBWLJhdlRKrhtI+NTiHKjq7UMmBNdIfBPC1YXHIGdeD2u+CjbDBq -MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCCUUJLZNvWDjFpvZITbl02FeTNwZzfQ -DQS/ZfdOOXb5+DAKBggqhkjOPQQDAgNHADBEAiAp9+XFJ2igUvUlvkFVLeH7sWHf -+Q4m47hVT/81vedY1gIgTSz5CufvmWnI5AgwCuw4D0w0eDPFAc1HkO1rlVo5icY= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key deleted file mode 100755 index 2cfab9b413..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgfVrs13ZtxgKp8l5T -WAq2IXqgd+zF1V6sTh7rbQ104rShRANCAAQpNJlzWzyMzfmDib8f9F5zlXW+hkcT -XrTjrrlqvkAViyYXZUSq4bSPjU4hyo6u1DJgTXSHwTwtWFxyBnXg9rvg ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem deleted file mode 100644 index 3776258229..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/admincerts/User1@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRANfNECvok9C6hT58XJZ/lJAwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABHV6X/kWuQK6xhXe9OenQZKDI7/zax7Y -jYlRvUlHgCoqKIy8fFAat3glGbVX1oo2oZ7cMJVlFnbuiPdrg4vkyjejTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA5ykiTos/MX -hMipPFuO9vTByR2ebld8RcMxY2Cf5AARMAoGCCqGSM49BAMCA0gAMEUCIQDbCDrW -eqZ4yw7vcEhnNExiRZTv0xcVbRF8JgGozLz6qwIgZoXcqxvkJaBdZpwzg4f0RvVQ -QrjJMURXXchQ1Mnd5+o= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem deleted file mode 100644 index 01ce790d23..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/cacerts/ca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQjCCAemgAwIBAgIQIR2LR9fa8xs5unnJJ9PFSzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MHMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMRwwGgYDVQQD -ExNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE -KIVwhTzJrLzzfkIj/O+A18B18k2cSKEWdSbfWZIpFJSb9yw8QoEsbtk4wj9JJD/w -OSa1eDD/pQorejCm25CmBaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1UdJQQIMAYG -BFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgDnKSJOiz8xeEyKk8W472 -9MHJHZ5uV3xFwzFjYJ/kABEwCgYIKoZIzj0EAwIDRwAwRAIgMIO+yK3Fbwv1EXMc -tQam42i6ROxSanaAHrbY2oVC1fICICsMpdSS2kbdntUDayi09v4/WRtC59ExCrHl -rg/GXwkv ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/73cdc0072c7203f1ec512232c780fc84acc9752ef30ebc16be1f4666c02b614b_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/73cdc0072c7203f1ec512232c780fc84acc9752ef30ebc16be1f4666c02b614b_sk deleted file mode 100755 index 37d8e8df8b..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/73cdc0072c7203f1ec512232c780fc84acc9752ef30ebc16be1f4666c02b614b_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgaYlbFIz6yVz0SYqh -nrhdTCb797PBwSwtCw9HtOkbqQGhRANCAAR1el/5FrkCusYV3vTnp0GSgyO/82se -2I2JUb1JR4AqKiiMvHxQGrd4JRm1V9aKNqGe3DCVZRZ27oj3a4OL5Mo3 ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem deleted file mode 100644 index 3776258229..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRANfNECvok9C6hT58XJZ/lJAwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMS5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABHV6X/kWuQK6xhXe9OenQZKDI7/zax7Y -jYlRvUlHgCoqKIy8fFAat3glGbVX1oo2oZ7cMJVlFnbuiPdrg4vkyjejTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIA5ykiTos/MX -hMipPFuO9vTByR2ebld8RcMxY2Cf5AARMAoGCCqGSM49BAMCA0gAMEUCIQDbCDrW -eqZ4yw7vcEhnNExiRZTv0xcVbRF8JgGozLz6qwIgZoXcqxvkJaBdZpwzg4f0RvVQ -QrjJMURXXchQ1Mnd5+o= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt deleted file mode 100644 index d4e635366d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAe+gAwIBAgIQZrCrf6SF3Z/w7z3PwCNaaTAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMHYxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMRkwFwYDVQQKExBvcmcxLmV4YW1wbGUuY29tMR8wHQYD -VQQDExZ0bHNjYS5vcmcxLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0D -AQcDQgAEq4HHYbyF3O3iX+bt7tATNgdrWW6GYXWfKKJjsriBMhtYr5y/sTjvg64s -Z517Nx/QNj26yKLdZ9vSBUGhAUfedaNfMF0wDgYDVR0PAQH/BAQDAgGmMA8GA1Ud -JQQIMAYGBFUdJQAwDwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQglFCS2Tb1g4xa -b2SE25dNhXkzcGc30A0Ev2X3Tjl2+fgwCgYIKoZIzj0EAwIDSAAwRQIhANDFPsDw -14ftcZgQtMQ0yuMg8cCHj246rhsrnjwar7aAAiBwLG+4sKnTOOa+ceK6p+PpKu6F -qwkrkz69kT1ZsL7SXw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt deleted file mode 100644 index 20a1182752..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICOjCCAeGgAwIBAgIQSEKNVPcBOB7Kgrrzf05rJjAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMS5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMS5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDDBZVc2VyMUBvcmcxLmV4YW1wbGUuY29t -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyHrGhNgy26huH3hNap1UMtQRBVIx -xTX0NqIbUMKcBSw9DRF0ndZHd5KQUVrj5t2/QY+YSpqK6ufDk68fWSAZ7KNsMGow -DgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAM -BgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIJRQktk29YOMWm9khNuXTYV5M3BnN9AN -BL9l9045dvn4MAoGCCqGSM49BAMCA0cAMEQCIE6HCTr9in2CqF6S+m/aGCVQrZwK -/o3oyXdcymDc/PbDAiAHIRDkIw1mU31KNhvPd6f8c/sReVDr3PQLydWh/HJpTQ== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key deleted file mode 100755 index f23e877ea9..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/User1@org1.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOXZUBNCAmIwJR3bt -GfoOwtmo3QunwcBnBBUPjot4frihRANCAATIesaE2DLbqG4feE1qnVQy1BEFUjHF -NfQ2ohtQwpwFLD0NEXSd1kd3kpBRWuPm3b9Bj5hKmorq58OTrx9ZIBns ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/a7d47efa46a6ba07730c850fed2c1375df27360d7227f48cdc2f80e505678005_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/a7d47efa46a6ba07730c850fed2c1375df27360d7227f48cdc2f80e505678005_sk deleted file mode 100755 index 3f732ae44d..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/a7d47efa46a6ba07730c850fed2c1375df27360d7227f48cdc2f80e505678005_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgUgMy/PQKxjfxITFM -mVPTu4ZwQlhYIh1vJkn3dkjqDBShRANCAARVtStps/F2HsCLFIdah6iJhTW6Vvro -DQ/HOkGAfPZjzjB4cYpfaRNX19I/9fPnuLqIWxSjj/FEwdeXNX/5hUhH ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem deleted file mode 100644 index a26e1ec29a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAJEAD5YytxsnFjw+liBjOQkwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE -AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA -BFW1K2mz8XYewIsUh1qHqImFNbpW+ugND8c6QYB89mPOMHhxil9pE1fX0j/18+e4 -uohbFKOP8UTB15c1f/mFSEejXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG -BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKfUfvpGproHcwyFD+0s -E3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0cAMEQCIGrkModOvz6mcUDA -Zql4YPXU/3ZUbMLw8VuSNHh47lg7AiAPLSKy/v8y8mhebGRCNTYwdkidQCQFrh+2 -BIirBFsT0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem deleted file mode 100644 index 93086ac949..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIUbkOONvaq2DLJr9qZbDKwwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMLKHXm1xN7Tk4YzaWg4GYhLoyNjrjs5 -302o37m12U8LorR7IL5fdFgYILeL4XUPjC/QG4E2o6hPl3uZPUVErbajTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQDa1k6R -+luypvng6JMSKIyibptkwICToEAZlDqLeD+k1gIgGFXm1+p1QqxViOa+c1dUvjl0 -m1UCqGDwNTHDm5mO+es= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem deleted file mode 100644 index a26e1ec29a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAJEAD5YytxsnFjw+liBjOQkwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE -AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA -BFW1K2mz8XYewIsUh1qHqImFNbpW+ugND8c6QYB89mPOMHhxil9pE1fX0j/18+e4 -uohbFKOP8UTB15c1f/mFSEejXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG -BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKfUfvpGproHcwyFD+0s -E3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0cAMEQCIGrkModOvz6mcUDA -Zql4YPXU/3ZUbMLw8VuSNHh47lg7AiAPLSKy/v8y8mhebGRCNTYwdkidQCQFrh+2 -BIirBFsT0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem deleted file mode 100644 index 93086ac949..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIUbkOONvaq2DLJr9qZbDKwwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMLKHXm1xN7Tk4YzaWg4GYhLoyNjrjs5 -302o37m12U8LorR7IL5fdFgYILeL4XUPjC/QG4E2o6hPl3uZPUVErbajTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQDa1k6R -+luypvng6JMSKIyibptkwICToEAZlDqLeD+k1gIgGFXm1+p1QqxViOa+c1dUvjl0 -m1UCqGDwNTHDm5mO+es= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem deleted file mode 100644 index a26e1ec29a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAJEAD5YytxsnFjw+liBjOQkwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE -AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA -BFW1K2mz8XYewIsUh1qHqImFNbpW+ugND8c6QYB89mPOMHhxil9pE1fX0j/18+e4 -uohbFKOP8UTB15c1f/mFSEejXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG -BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKfUfvpGproHcwyFD+0s -E3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0cAMEQCIGrkModOvz6mcUDA -Zql4YPXU/3ZUbMLw8VuSNHh47lg7AiAPLSKy/v8y8mhebGRCNTYwdkidQCQFrh+2 -BIirBFsT0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/0d9f72608133ee627b570b6af6877666bc8f365746f9329d6dd8a5f54e53e2ab_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/0d9f72608133ee627b570b6af6877666bc8f365746f9329d6dd8a5f54e53e2ab_sk deleted file mode 100755 index d9e2dfdfc8..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/keystore/0d9f72608133ee627b570b6af6877666bc8f365746f9329d6dd8a5f54e53e2ab_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgNYZ86CFF4Iz0K+sE -HMg3lSS+mo5lRIFFLUOGrfseqhOhRANCAAT/Dd/SwXAdKicm97/WPViD32Bzn1j5 -2k/FslsxorK2Lx1Rfhi3wyxa40LNLjfED7E7KmJZ1w7PzI7+7WWhPTbq ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem deleted file mode 100644 index 511295cac5..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/signcerts/peer0.org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRANDlqX1daKI2aN0Qm7vrfKAwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABP8N39LBcB0qJyb3v9Y9WIPfYHOfWPna -T8WyWzGisrYvHVF+GLfDLFrjQs0uN8QPsTsqYlnXDs/Mjv7tZaE9NuqjTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQDa1gKe -PRVRN/i8hUptACw02V7V9Yeo7kKlbQ6vWU5fqAIgXg2xAQ4TjwXOHlKbIyYZ7fox -cekBJ+E8yAFm8XQrfy0= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt deleted file mode 100644 index 0ab47140a0..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.crt +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICcjCCAhmgAwIBAgIRAKTjFkKbLMrbEP10dpOEqz4wCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMi5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMDiCfhksPZRhxpGyowvLu8lQjC6 -H4y/SiQuTbhG+ZXK99VRyDDoKzkyzDpUxMco1xvD3gafSDvrXrKlZObN9bOjgaIw -gZ8wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD -AjAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIHu4uj/xHTyM9ZK9QyYGLnfQasSW -PHt65FkoTfvT61qsMDMGA1UdEQQsMCqCFnBlZXIwLm9yZzIuZXhhbXBsZS5jb22C -BXBlZXIwgglsb2NhbGhvc3QwCgYIKoZIzj0EAwIDRwAwRAIgf1MZC8BVgrxO76J+ -aCGntiQsicgU1DPMt5l45jXiEeECIAHHYsIZcV8GW7iyKQevvdXSQ3JC7XgyuPrm -eDhWmPcO ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key deleted file mode 100755 index babe991b50..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgVlcwZfAKBQZ+W/JX -w64rHF3JiaddhBcUfxk7WuyZxrChRANCAATA4gn4ZLD2UYcaRsqMLy7vJUIwuh+M -v0okLk24RvmVyvfVUcgw6Cs5Msw6VMTHKNcbw94Gn0g7616ypWTmzfWz ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem deleted file mode 100644 index 93086ac949..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIUbkOONvaq2DLJr9qZbDKwwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMLKHXm1xN7Tk4YzaWg4GYhLoyNjrjs5 -302o37m12U8LorR7IL5fdFgYILeL4XUPjC/QG4E2o6hPl3uZPUVErbajTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQDa1k6R -+luypvng6JMSKIyibptkwICToEAZlDqLeD+k1gIgGFXm1+p1QqxViOa+c1dUvjl0 -m1UCqGDwNTHDm5mO+es= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem deleted file mode 100644 index a26e1ec29a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAJEAD5YytxsnFjw+liBjOQkwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE -AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA -BFW1K2mz8XYewIsUh1qHqImFNbpW+ugND8c6QYB89mPOMHhxil9pE1fX0j/18+e4 -uohbFKOP8UTB15c1f/mFSEejXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG -BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKfUfvpGproHcwyFD+0s -E3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0cAMEQCIGrkModOvz6mcUDA -Zql4YPXU/3ZUbMLw8VuSNHh47lg7AiAPLSKy/v8y8mhebGRCNTYwdkidQCQFrh+2 -BIirBFsT0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/27ccb54a06020260c66c65bec91f91e1c9043e3076d3d6128692e7271c4c7a2c_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/27ccb54a06020260c66c65bec91f91e1c9043e3076d3d6128692e7271c4c7a2c_sk deleted file mode 100755 index fdd7fa73d1..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/keystore/27ccb54a06020260c66c65bec91f91e1c9043e3076d3d6128692e7271c4c7a2c_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgtRT9fcsCMexhHlCO -dfzBqkDIfC88UFE51dYxRHDSrMShRANCAAS4r7MB6WDw96YKpJIzOvqhXs1dQ3XQ -5QMMX4aOwVLT1vZHOkPghRr2wMhJeQs1vVY+5RcnOWy6OyB/oYCCIPka ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem deleted file mode 100644 index 19868dd50c..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/signcerts/peer1.org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGTCCAb+gAwIBAgIQKeRyEPaHSUPvshfEtmg9tzAKBggqhkjOPQQDAjBzMQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UEAxMTY2Eu -b3JnMi5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMzMTla -MFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T -YW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcyLmV4YW1wbGUuY29tMFkw -EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuK+zAelg8PemCqSSMzr6oV7NXUN10OUD -DF+GjsFS09b2RzpD4IUa9sDISXkLNb1WPuUXJzlsujsgf6GAgiD5GqNNMEswDgYD -VR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAgp9R++kamugdz -DIUP7SwTdd8nNg1yJ/SM3C+A5QVngAUwCgYIKoZIzj0EAwIDSAAwRQIhAMIQLWEv -wpaNibkXEGJlT0IzSIBsCjMJD7VaqZLKm5h9AiAlYmNBB8siyLLxFawvEB/4F26x -e1jgyza7Yg+ardDzlw== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt deleted file mode 100644 index f75611a09b..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.crt +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICcjCCAhigAwIBAgIQEV3hkn7yJpdb29dDQvTKWDAKBggqhkjOPQQDAjB2MQsw -CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy -YW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0GA1UEAxMWdGxz -Y2Eub3JnMi5leGFtcGxlLmNvbTAeFw0xNzA2MjMxMjMzMTlaFw0yNzA2MjExMjMz -MTlaMFsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH -Ew1TYW4gRnJhbmNpc2NvMR8wHQYDVQQDExZwZWVyMS5vcmcyLmV4YW1wbGUuY29t -MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpXRG2CwqI+F0UoMSImo3In9R7lze -S+DuL1pLOjF5s05kVAcH604/9FRI61ujvWp4mYXornB+R1pcQwtolYNzPKOBojCB -nzAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC -MAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQwIoAge7i6P/EdPIz1kr1DJgYud9BqxJY8 -e3rkWShN+9PrWqwwMwYDVR0RBCwwKoIWcGVlcjEub3JnMi5leGFtcGxlLmNvbYIF -cGVlcjGCCWxvY2FsaG9zdDAKBggqhkjOPQQDAgNIADBFAiEAmzFD5Dd4yR5lKy44 -Jdz4hy5AtRLQAmhlmLhli46z0r8CIDXFZJ7EwiD3F/jBT6906IFizjr9CD/DtOC9 -bxT5JhIN ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key deleted file mode 100755 index 8901783971..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgxFdgRfevcXrABROv -sV6HvrpoN5PHW6qXIFj71CAwtzyhRANCAASldEbYLCoj4XRSgxIiajcif1HuXN5L -4O4vWks6MXmzTmRUBwfrTj/0VEjrW6O9aniZheiucH5HWlxDC2iVg3M8 ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/tlsca/7bb8ba3ff11d3c8cf592bd4326062e77d06ac4963c7b7ae459284dfbd3eb5aac_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/tlsca/7bb8ba3ff11d3c8cf592bd4326062e77d06ac4963c7b7ae459284dfbd3eb5aac_sk deleted file mode 100755 index e4f49a0d98..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/tlsca/7bb8ba3ff11d3c8cf592bd4326062e77d06ac4963c7b7ae459284dfbd3eb5aac_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgXu7VBLhnEUi4mu4d -tU1nT4lcMR9aoG29s5hLPmIKH/mhRANCAAQafufB/FcqVxwfR3/9RMWU5jXXAZU1 -IAJhx+bG/Q4sx18JY6Os3cl32XC70wqaC8myf656eDyiezSlA5q0Mpi1 ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/tlsca/tlsca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem deleted file mode 100644 index 93086ac949..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/admincerts/Admin@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIUbkOONvaq2DLJr9qZbDKwwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMLKHXm1xN7Tk4YzaWg4GYhLoyNjrjs5 -302o37m12U8LorR7IL5fdFgYILeL4XUPjC/QG4E2o6hPl3uZPUVErbajTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQDa1k6R -+luypvng6JMSKIyibptkwICToEAZlDqLeD+k1gIgGFXm1+p1QqxViOa+c1dUvjl0 -m1UCqGDwNTHDm5mO+es= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem deleted file mode 100644 index a26e1ec29a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAJEAD5YytxsnFjw+liBjOQkwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE -AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA -BFW1K2mz8XYewIsUh1qHqImFNbpW+ugND8c6QYB89mPOMHhxil9pE1fX0j/18+e4 -uohbFKOP8UTB15c1f/mFSEejXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG -BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKfUfvpGproHcwyFD+0s -E3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0cAMEQCIGrkModOvz6mcUDA -Zql4YPXU/3ZUbMLw8VuSNHh47lg7AiAPLSKy/v8y8mhebGRCNTYwdkidQCQFrh+2 -BIirBFsT0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/1995b11d6573ed3be52fcd7a5fa477bc0f183e1f5f398c8281d0ce7c2c75a076_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/1995b11d6573ed3be52fcd7a5fa477bc0f183e1f5f398c8281d0ce7c2c75a076_sk deleted file mode 100755 index 09b1c6a7e3..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/1995b11d6573ed3be52fcd7a5fa477bc0f183e1f5f398c8281d0ce7c2c75a076_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgHa4xvmGVQJV5wrMj -KttcA0hh/Yz0dezmXlRLjNk9HyahRANCAATCyh15tcTe05OGM2loOBmIS6MjY647 -Od9NqN+5tdlPC6K0eyC+X3RYGCC3i+F1D4wv0BuBNqOoT5d7mT1FRK22 ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem deleted file mode 100644 index 93086ac949..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIUbkOONvaq2DLJr9qZbDKwwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMLKHXm1xN7Tk4YzaWg4GYhLoyNjrjs5 -302o37m12U8LorR7IL5fdFgYILeL4XUPjC/QG4E2o6hPl3uZPUVErbajTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQDa1k6R -+luypvng6JMSKIyibptkwICToEAZlDqLeD+k1gIgGFXm1+p1QqxViOa+c1dUvjl0 -m1UCqGDwNTHDm5mO+es= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt deleted file mode 100644 index bc9e1ed06f..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICPDCCAeKgAwIBAgIRAJyMPO3I72b3mbPNKpVYYLMwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMi5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMFNcSoYN82cQnSGoxBiWhzlYi9N -nVbrfOCNdsxMOjhYIfvptjVgBhc87ZqUsQp4sSYVHV1qxAJ7PD50CJRC+4SjbDBq -MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCB7uLo/8R08jPWSvUMmBi530GrEljx7 -euRZKE370+tarDAKBggqhkjOPQQDAgNIADBFAiEAkPjfzaF3Dxz5n39QChNSfWwC -lpxiBCgw8DMP2D91UFICIC640slBiPu2zx3U7izA6Zu00IIaEt8xGtt4pbhwwqWj ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key deleted file mode 100755 index 1b542d8a87..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgOa1azVZZkkb3rRW1 -y3z1TCvqOzftqGI3eELPG2TWK6WhRANCAATBTXEqGDfNnEJ0hqMQYloc5WIvTZ1W -63zgjXbMTDo4WCH76bY1YAYXPO2alLEKeLEmFR1dasQCezw+dAiUQvuE ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem deleted file mode 100644 index 008d255575..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/admincerts/User1@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIPRwJHVLhHK47XK0BbFZJswCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABBd9SsEiFH1/JIb3qMEPLR2dygokFVKW -eINcB0Ni4TBRkfIWWUJeCANTUY11Pm/+5gs+fBTqBz8M2UzpJDVX7+2jTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQC8NIMw -e4ym/QRwCJb5umbONNLSVQuEpnPsJrM/ssBPvgIgQpe2oYa3yO3USro9nBHjpM3L -KsFQrpVnF8O6hoHOYZQ= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem deleted file mode 100644 index a26e1ec29a..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/cacerts/ca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICQzCCAeqgAwIBAgIRAJEAD5YytxsnFjw+liBjOQkwCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBzMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEcMBoGA1UE -AxMTY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA -BFW1K2mz8XYewIsUh1qHqImFNbpW+ugND8c6QYB89mPOMHhxil9pE1fX0j/18+e4 -uohbFKOP8UTB15c1f/mFSEejXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNVHSUECDAG -BgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIKfUfvpGproHcwyFD+0s -E3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0cAMEQCIGrkModOvz6mcUDA -Zql4YPXU/3ZUbMLw8VuSNHh47lg7AiAPLSKy/v8y8mhebGRCNTYwdkidQCQFrh+2 -BIirBFsT0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/585175c83bac91fc0c1ce8f9d0ff9aefa47c565678f100ca8673db249ee785ac_sk b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/585175c83bac91fc0c1ce8f9d0ff9aefa47c565678f100ca8673db249ee785ac_sk deleted file mode 100755 index d1ac0c7a49..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/keystore/585175c83bac91fc0c1ce8f9d0ff9aefa47c565678f100ca8673db249ee785ac_sk +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgmHG6n4ZvwUeV4jCp -kvAmGSQKZ+vOYsyzRZgYwORO+vChRANCAAQXfUrBIhR9fySG96jBDy0dncoKJBVS -lniDXAdDYuEwUZHyFllCXggDU1GNdT5v/uYLPnwU6gc/DNlM6SQ1V+/t ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem deleted file mode 100644 index 008d255575..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/signcerts/User1@org2.example.com-cert.pem +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAcCgAwIBAgIRAIPRwJHVLhHK47XK0BbFZJswCgYIKoZIzj0EAwIwczEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh -Lm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIzMzE5 -WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN -U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABBd9SsEiFH1/JIb3qMEPLR2dygokFVKW -eINcB0Ni4TBRkfIWWUJeCANTUY11Pm/+5gs+fBTqBz8M2UzpJDVX7+2jTTBLMA4G -A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIKfUfvpGproH -cwyFD+0sE3XfJzYNcif0jNwvgOUFZ4AFMAoGCCqGSM49BAMCA0gAMEUCIQC8NIMw -e4ym/QRwCJb5umbONNLSVQuEpnPsJrM/ssBPvgIgQpe2oYa3yO3USro9nBHjpM3L -KsFQrpVnF8O6hoHOYZQ= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/msp/tlscacerts/tlsca.org2.example.com-cert.pem +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt deleted file mode 100644 index 6d01d67c3e..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/ca.crt +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICSTCCAfCgAwIBAgIRANX86HJQn/543CANoioLOegwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEZMBcGA1UEChMQb3JnMi5leGFtcGxlLmNvbTEfMB0G -A1UEAxMWdGxzY2Eub3JnMi5leGFtcGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49 -AwEHA0IABBp+58H8VypXHB9Hf/1ExZTmNdcBlTUgAmHH5sb9DizHXwljo6zdyXfZ -cLvTCpoLybJ/rnp4PKJ7NKUDmrQymLWjXzBdMA4GA1UdDwEB/wQEAwIBpjAPBgNV -HSUECDAGBgRVHSUAMA8GA1UdEwEB/wQFMAMBAf8wKQYDVR0OBCIEIHu4uj/xHTyM -9ZK9QyYGLnfQasSWPHt65FkoTfvT61qsMAoGCCqGSM49BAMCA0cAMEQCIBJ9N4PD -mB+2gAPeDWYteAZ5Q2KR/E0zMQ13pDSunHNcAiBwWRzwscXxCPOJp1sjBMVp5Z1a -nfIdbwvBbsl1XV/j0g== ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt deleted file mode 100644 index b81ee15ca7..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.crt +++ /dev/null @@ -1,14 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICOzCCAeKgAwIBAgIRAPD3UPMtRDq5GhVZUuS25LUwCgYIKoZIzj0EAwIwdjEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG -cmFuY2lzY28xGTAXBgNVBAoTEG9yZzIuZXhhbXBsZS5jb20xHzAdBgNVBAMTFnRs -c2NhLm9yZzIuZXhhbXBsZS5jb20wHhcNMTcwNjIzMTIzMzE5WhcNMjcwNjIxMTIz -MzE5WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UE -BxMNU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWVXNlcjFAb3JnMi5leGFtcGxlLmNv -bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLM/EP7l2gwX4RGxW9gX78CTINQ6 -3RRcU01F91HSpT3l+e1H0HACgJWTGkf5ZnwCnUcdZ/z2YD15zfVFHF2fvwejbDBq -MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw -DAYDVR0TAQH/BAIwADArBgNVHSMEJDAigCB7uLo/8R08jPWSvUMmBi530GrEljx7 -euRZKE370+tarDAKBggqhkjOPQQDAgNHADBEAiBo0H6ZNg1XJladWoGNnFsdRm3I -u4dLlJBwe9gTrscPAAIgXfsHfA8qVvyK2Pnlca2cwUHvRrJ4cAvaYrWNTMG1t7Q= ------END CERTIFICATE----- diff --git a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key b/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key deleted file mode 100755 index 505f5b3336..0000000000 --- a/balance-transfer/artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/User1@org2.example.com/tls/server.key +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgftZDPdCM6QMMv8ZO -eXbUFGQqnFhEUAiChttdWcSp6QOhRANCAASzPxD+5doMF+ERsVvYF+/AkyDUOt0U -XFNNRfdR0qU95fntR9BwAoCVkxpH+WZ8Ap1HHWf89mA9ec31RRxdn78H ------END PRIVATE KEY----- diff --git a/balance-transfer/artifacts/channel/cryptogen.yaml b/balance-transfer/artifacts/channel/cryptogen.yaml deleted file mode 100644 index be2a9f8604..0000000000 --- a/balance-transfer/artifacts/channel/cryptogen.yaml +++ /dev/null @@ -1,113 +0,0 @@ -# -# 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 - - # --------------------------------------------------------------------------- - # "CA" - # --------------------------------------------------------------------------- - # Uncomment this section to enable the explicit definition of the CA for this - # organization. This entry is a Spec. See "Specs" section below for details. - # --------------------------------------------------------------------------- - CA: - Hostname: ca # implicitly ca.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. - # - SANS: (Optional) Specifies one or more Subject Alternative Names - # the be set in the resulting x509. Accepts template - # variables {{.Hostname}}, {{.Domain}}, {{.CommonName}} - # NOTE: Two implicit entries are created for you: - # - {{ .CommonName }} - # - {{ .Hostname }} - # --------------------------------------------------------------------------- - # Specs: - # - Hostname: foo # implicitly "foo.org1.example.com" - # CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above - # SANS: - # - "bar.{{.Domain}}" - # - "altfoo.{{.Domain}}" - # - "{{.Hostname}}.org6.net" - # - 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: 2 - # Start: 5 - # Hostname: {{.Prefix}}{{.Index}} # default - SANS: - - "localhost" - - # --------------------------------------------------------------------------- - # "Users" - # --------------------------------------------------------------------------- - # Count: The number of user accounts _in addition_ to Admin - # --------------------------------------------------------------------------- - Users: - Count: 1 - - # --------------------------------------------------------------------------- - # Org2: See "Org1" for full specification - # --------------------------------------------------------------------------- - - Name: Org2 - Domain: org2.example.com - CA: - Hostname: ca # implicitly ca.org1.example.com - - Template: - Count: 2 - SANS: - - "localhost" - Users: - Count: 1 diff --git a/balance-transfer/artifacts/channel/genesis.block b/balance-transfer/artifacts/channel/genesis.block deleted file mode 100644 index 07b9c8d71e..0000000000 Binary files a/balance-transfer/artifacts/channel/genesis.block and /dev/null differ diff --git a/balance-transfer/artifacts/channel/mychannel.tx b/balance-transfer/artifacts/channel/mychannel.tx deleted file mode 100644 index 73323fa803..0000000000 Binary files a/balance-transfer/artifacts/channel/mychannel.tx and /dev/null differ diff --git a/balance-transfer/artifacts/docker-compose.yaml b/balance-transfer/artifacts/docker-compose.yaml deleted file mode 100644 index 6fd88df2ff..0000000000 --- a/balance-transfer/artifacts/docker-compose.yaml +++ /dev/null @@ -1,142 +0,0 @@ -# -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# -version: '2' - -services: - - ca.org1.example.com: - image: hyperledger/fabric-ca - environment: - - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server - - FABRIC_CA_SERVER_CA_NAME=ca-org1 - - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem - - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk - - FABRIC_CA_SERVER_TLS_ENABLED=true - - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem - - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk - ports: - - "7054:7054" - command: sh -c 'fabric-ca-server start -b admin:adminpw -d' - volumes: - - ./channel/crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config - container_name: ca_peerOrg1 - - ca.org2.example.com: - image: hyperledger/fabric-ca - environment: - - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server - - FABRIC_CA_SERVER_CA_NAME=ca-org2 - - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem - - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/a7d47efa46a6ba07730c850fed2c1375df27360d7227f48cdc2f80e505678005_sk - - FABRIC_CA_SERVER_TLS_ENABLED=true - - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem - - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/a7d47efa46a6ba07730c850fed2c1375df27360d7227f48cdc2f80e505678005_sk - ports: - - "8054:7054" - command: sh -c 'fabric-ca-server start -b admin:adminpw -d' - volumes: - - ./channel/crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config - container_name: ca_peerOrg2 - - orderer.example.com: - container_name: orderer.example.com - image: hyperledger/fabric-orderer - environment: - - FABRIC_LOGGING_SPEC=debug - - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 - - ORDERER_GENERAL_GENESISMETHOD=file - - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block - - ORDERER_GENERAL_LOCALMSPID=OrdererMSP - - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/crypto/orderer/msp - - ORDERER_GENERAL_TLS_ENABLED=true - - ORDERER_GENERAL_TLS_PRIVATEKEY=/etc/hyperledger/crypto/orderer/tls/server.key - - ORDERER_GENERAL_TLS_CERTIFICATE=/etc/hyperledger/crypto/orderer/tls/server.crt - - ORDERER_GENERAL_TLS_ROOTCAS=[/etc/hyperledger/crypto/orderer/tls/ca.crt, /etc/hyperledger/crypto/peerOrg1/tls/ca.crt, /etc/hyperledger/crypto/peerOrg2/tls/ca.crt] - working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderers - command: orderer - ports: - - 7050:7050 - volumes: - - ./channel:/etc/hyperledger/configtx - - ./channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/crypto/orderer - - ./channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/crypto/peerOrg1 - - ./channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/:/etc/hyperledger/crypto/peerOrg2 - - peer0.org1.example.com: - container_name: peer0.org1.example.com - extends: - file: base.yaml - service: peer-base - environment: - - CORE_PEER_ID=peer0.org1.example.com - - CORE_PEER_LOCALMSPID=Org1MSP - - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 - - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051 - - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 - ports: - - 7051:7051 - - 7053:7053 - volumes: - - ./channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/crypto/peer - depends_on: - - orderer.example.com - - peer1.org1.example.com: - container_name: peer1.org1.example.com - extends: - file: base.yaml - service: peer-base - environment: - - CORE_PEER_ID=peer1.org1.example.com - - CORE_PEER_LOCALMSPID=Org1MSP - - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 - - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 - - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 - ports: - - 7056:7051 - - 7058:7053 - volumes: - - ./channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/:/etc/hyperledger/crypto/peer - depends_on: - - orderer.example.com - - peer0.org2.example.com: - container_name: peer0.org2.example.com - extends: - file: base.yaml - service: peer-base - environment: - - CORE_PEER_ID=peer0.org2.example.com - - CORE_PEER_LOCALMSPID=Org2MSP - - CORE_PEER_ADDRESS=peer0.org2.example.com:7051 - - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051 - - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051 - ports: - - 8051:7051 - - 8053:7053 - volumes: - - ./channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/:/etc/hyperledger/crypto/peer - depends_on: - - orderer.example.com - - peer1.org2.example.com: - container_name: peer1.org2.example.com - extends: - file: base.yaml - service: peer-base - environment: - - CORE_PEER_ID=peer1.org2.example.com - - CORE_PEER_LOCALMSPID=Org2MSP - - CORE_PEER_ADDRESS=peer1.org2.example.com:7051 - - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051 - - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051 - ports: - - 8056:7051 - - 8058:7053 - volumes: - - ./channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/:/etc/hyperledger/crypto/peer - depends_on: - - orderer.example.com diff --git a/balance-transfer/artifacts/network-config-aws.yaml b/balance-transfer/artifacts/network-config-aws.yaml deleted file mode 100644 index 87912d7197..0000000000 --- a/balance-transfer/artifacts/network-config-aws.yaml +++ /dev/null @@ -1,230 +0,0 @@ ---- -# -# The network connection profile provides client applications the information about the target -# blockchain network that are necessary for the applications to interact with it. These are all -# knowledge that must be acquired from out-of-band sources. This file provides such a source. -# -name: "balance-transfer" - -# -# Any properties with an "x-" prefix will be treated as application-specific, exactly like how naming -# in HTTP headers or swagger properties work. The SDK will simply ignore these fields and leave -# them for the applications to process. This is a mechanism for different components of an application -# to exchange information that are not part of the standard schema described below. In particular, -# the "x-type" property with the "hlfv1" value example below is used by Hyperledger Composer to -# determine the type of Fabric networks (v0.6 vs. v1.0) it needs to work with. -# -x-type: "hlfv1" - -# -# Describe what the target network is/does. -# -description: "Balance Transfer Network" - -# -# Schema version of the content. Used by the SDK to apply the corresponding parsing rules. -# -version: "1.0" - -# -# The client section will be added on a per org basis see org1.yaml and org2.yaml -# -#client: - -# -# [Optional]. But most apps would have this section so that channel objects can be constructed -# based on the content below. If an app is creating channels, then it likely will not need this -# section. -# -channels: - # name of the channel - mychannel: - # Required. list of orderers designated by the application to use for transactions on this - # channel. This list can be a result of access control ("org1" can only access "ordererA"), or - # operational decisions to share loads from applications among the orderers. The values must - # be "names" of orgs defined under "organizations/peers" - orderers: - - orderer.example.com - - # Required. list of peers from participating orgs - peers: - peer0.org1.example.com: - # [Optional]. will this peer be sent transaction proposals for endorsement? The peer must - # have the chaincode installed. The app can also use this property to decide which peers - # to send the chaincode install request. Default: true - endorsingPeer: true - - # [Optional]. will this peer be sent query proposals? The peer must have the chaincode - # installed. The app can also use this property to decide which peers to send the - # chaincode install request. Default: true - chaincodeQuery: true - - # [Optional]. will this peer be sent query proposals that do not require chaincodes, like - # queryBlock(), queryTransaction(), etc. Default: true - ledgerQuery: true - - # [Optional]. will this peer be the target of the SDK's listener registration? All peers can - # produce events but the app typically only needs to connect to one to listen to events. - # Default: true - eventSource: true - - peer1.org1.example.com: - endorsingPeer: false - chaincodeQuery: true - ledgerQuery: true - eventSource: false - - peer0.org2.example.com: - endorsingPeer: true - chaincodeQuery: true - ledgerQuery: true - eventSource: true - - peer1.org2.example.com: - endorsingPeer: false - chaincodeQuery: true - ledgerQuery: true - eventSource: false - - # [Optional]. what chaincodes are expected to exist on this channel? The application can use - # this information to validate that the target peers are in the expected state by comparing - # this list with the query results of getInstalledChaincodes() and getInstantiatedChaincodes() - chaincodes: - # the format follows the "cannonical name" of chaincodes by fabric code - - mycc:v0 - -# -# list of participating organizations in this network -# -organizations: - Org1: - mspid: Org1MSP - - peers: - - peer0.org1.example.com - - peer1.org1.example.com - - # [Optional]. Certificate Authorities issue certificates for identification purposes in a Fabric based - # network. Typically certificates provisioning is done in a separate process outside of the - # runtime network. Fabric-CA is a special certificate authority that provides a REST APIs for - # dynamic certificate management (enroll, revoke, re-enroll). The following section is only for - # Fabric-CA servers. - certificateAuthorities: - - ca-org1 - - # [Optional]. If the application is going to make requests that are reserved to organization - # administrators, including creating/updating channels, installing/instantiating chaincodes, it - # must have access to the admin identity represented by the private key and signing certificate. - # Both properties can be the PEM string or local path to the PEM file. Note that this is mainly for - # convenience in development mode, production systems should not expose sensitive information - # this way. The SDK should allow applications to set the org admin identity via APIs, and only use - # this route as an alternative when it exists. - adminPrivateKey: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk - signedCert: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem - - # the profile will contain public information about organizations other than the one it belongs to. - # These are necessary information to make transaction lifecycles work, including MSP IDs and - # peers with a public URL to send transaction proposals. The file will not contain private - # information reserved for members of the organization, such as admin key and certificate, - # fabric-ca registrar enroll ID and secret, etc. - Org2: - mspid: Org2MSP - peers: - - peer0.org2.example.com - - peer1.org2.example.com - certificateAuthorities: - - ca-org2 - adminPrivateKey: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/1995b11d6573ed3be52fcd7a5fa477bc0f183e1f5f398c8281d0ce7c2c75a076_sk - signedCert: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem - -# -# List of orderers to send transaction and channel create/update requests to. For the time -# being only one orderer is needed. If more than one is defined, which one get used by the -# SDK is implementation specific. Consult each SDK's documentation for its handling of orderers. -# -orderers: - orderer.example.com: - url: grpcs://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:7050 - - # these are standard properties defined by the gRPC library - # they will be passed in as-is to gRPC client constructor - grpcOptions: - ssl-target-name-override: orderer.example.com - - tlsCACerts: - path: artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt - -# -# List of peers to send various requests to, including endorsement, query -# and event listener registration. -# -peers: - peer0.org1.example.com: - # this URL is used to send endorsement and query requests - url: grpcs://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:7051 - - grpcOptions: - ssl-target-name-override: peer0.org1.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt - - peer1.org1.example.com: - url: grpcs://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:7056 - eventUrl: grpcs://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:7058 - grpcOptions: - ssl-target-name-override: peer1.org1.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt - - peer0.org2.example.com: - url: grpcs://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:8051 - grpcOptions: - ssl-target-name-override: peer0.org2.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt - - peer1.org2.example.com: - url: grpcs://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:8056 - grpcOptions: - ssl-target-name-override: peer1.org2.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt - -# -# Fabric-CA is a special kind of Certificate Authority provided by Hyperledger Fabric which allows -# certificate management to be done via REST APIs. Application may choose to use a standard -# Certificate Authority instead of Fabric-CA, in which case this section would not be specified. -# -certificateAuthorities: - ca-org1: - url: https://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:7054 - # the properties specified under this object are passed to the 'http' client verbatim when - # making the request to the Fabric-CA server - httpOptions: - verify: false - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem - - # Fabric-CA supports dynamic user enrollment via REST APIs. A "root" user, a.k.a registrar, is - # needed to enroll and invoke new users. - registrar: - - enrollId: admin - enrollSecret: adminpw - # [Optional] The optional name of the CA. - caName: ca-org1 - - ca-org2: - url: https://ec2-13-59-99-140.us-east-2.compute.amazonaws.com:8054 - httpOptions: - verify: false - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem - registrar: - - enrollId: admin - enrollSecret: adminpw - # [Optional] The optional name of the CA. - caName: ca-org2 diff --git a/balance-transfer/artifacts/network-config.yaml b/balance-transfer/artifacts/network-config.yaml deleted file mode 100644 index 1d6d9efee5..0000000000 --- a/balance-transfer/artifacts/network-config.yaml +++ /dev/null @@ -1,230 +0,0 @@ ---- -# -# The network connection profile provides client applications the information about the target -# blockchain network that are necessary for the applications to interact with it. These are all -# knowledge that must be acquired from out-of-band sources. This file provides such a source. -# -name: "balance-transfer" - -# -# Any properties with an "x-" prefix will be treated as application-specific, exactly like how naming -# in HTTP headers or swagger properties work. The SDK will simply ignore these fields and leave -# them for the applications to process. This is a mechanism for different components of an application -# to exchange information that are not part of the standard schema described below. In particular, -# the "x-type" property with the "hlfv1" value example below is used by Hyperledger Composer to -# determine the type of Fabric networks (v0.6 vs. v1.0) it needs to work with. -# -x-type: "hlfv1" - -# -# Describe what the target network is/does. -# -description: "Balance Transfer Network" - -# -# Schema version of the content. Used by the SDK to apply the corresponding parsing rules. -# -version: "1.0" - -# -# The client section will be added on a per org basis see org1.yaml and org2.yaml -# -#client: - -# -# [Optional]. But most apps would have this section so that channel objects can be constructed -# based on the content below. If an app is creating channels, then it likely will not need this -# section. -# -channels: - # name of the channel - mychannel: - # Required. list of orderers designated by the application to use for transactions on this - # channel. This list can be a result of access control ("org1" can only access "ordererA"), or - # operational decisions to share loads from applications among the orderers. The values must - # be "names" of orgs defined under "organizations/peers" - orderers: - - orderer.example.com - - # Required. list of peers from participating orgs - peers: - peer0.org1.example.com: - # [Optional]. will this peer be sent transaction proposals for endorsement? The peer must - # have the chaincode installed. The app can also use this property to decide which peers - # to send the chaincode install request. Default: true - endorsingPeer: true - - # [Optional]. will this peer be sent query proposals? The peer must have the chaincode - # installed. The app can also use this property to decide which peers to send the - # chaincode install request. Default: true - chaincodeQuery: true - - # [Optional]. will this peer be sent query proposals that do not require chaincodes, like - # queryBlock(), queryTransaction(), etc. Default: true - ledgerQuery: true - - # [Optional]. will this peer be the target of the SDK's listener registration? All peers can - # produce events but the app typically only needs to connect to one to listen to events. - # Default: true - eventSource: true - - peer1.org1.example.com: - endorsingPeer: false - chaincodeQuery: true - ledgerQuery: true - eventSource: false - - peer0.org2.example.com: - endorsingPeer: true - chaincodeQuery: true - ledgerQuery: true - eventSource: true - - peer1.org2.example.com: - endorsingPeer: false - chaincodeQuery: true - ledgerQuery: true - eventSource: false - - # [Optional]. what chaincodes are expected to exist on this channel? The application can use - # this information to validate that the target peers are in the expected state by comparing - # this list with the query results of getInstalledChaincodes() and getInstantiatedChaincodes() - chaincodes: - # the format follows the "cannonical name" of chaincodes by fabric code - - mycc:v0 - -# -# list of participating organizations in this network -# -organizations: - Org1: - mspid: Org1MSP - - peers: - - peer0.org1.example.com - - peer1.org1.example.com - - # [Optional]. Certificate Authorities issue certificates for identification purposes in a Fabric based - # network. Typically certificates provisioning is done in a separate process outside of the - # runtime network. Fabric-CA is a special certificate authority that provides a REST APIs for - # dynamic certificate management (enroll, revoke, re-enroll). The following section is only for - # Fabric-CA servers. - certificateAuthorities: - - ca-org1 - - # [Optional]. If the application is going to make requests that are reserved to organization - # administrators, including creating/updating channels, installing/instantiating chaincodes, it - # must have access to the admin identity represented by the private key and signing certificate. - # Both properties can be the PEM string or local path to the PEM file. Note that this is mainly for - # convenience in development mode, production systems should not expose sensitive information - # this way. The SDK should allow applications to set the org admin identity via APIs, and only use - # this route as an alternative when it exists. - adminPrivateKey: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore/5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk - signedCert: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem - - # the profile will contain public information about organizations other than the one it belongs to. - # These are necessary information to make transaction lifecycles work, including MSP IDs and - # peers with a public URL to send transaction proposals. The file will not contain private - # information reserved for members of the organization, such as admin key and certificate, - # fabric-ca registrar enroll ID and secret, etc. - Org2: - mspid: Org2MSP - peers: - - peer0.org2.example.com - - peer1.org2.example.com - certificateAuthorities: - - ca-org2 - adminPrivateKey: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore/1995b11d6573ed3be52fcd7a5fa477bc0f183e1f5f398c8281d0ce7c2c75a076_sk - signedCert: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts/Admin@org2.example.com-cert.pem - -# -# List of orderers to send transaction and channel create/update requests to. For the time -# being only one orderer is needed. If more than one is defined, which one get used by the -# SDK is implementation specific. Consult each SDK's documentation for its handling of orderers. -# -orderers: - orderer.example.com: - url: grpcs://localhost:7050 - - # these are standard properties defined by the gRPC library - # they will be passed in as-is to gRPC client constructor - grpcOptions: - ssl-target-name-override: orderer.example.com - - tlsCACerts: - path: artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt - -# -# List of peers to send various requests to, including endorsement, query -# and event listener registration. -# -peers: - peer0.org1.example.com: - # this URL is used to send endorsement and query requests - url: grpcs://localhost:7051 - - grpcOptions: - ssl-target-name-override: peer0.org1.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt - - peer1.org1.example.com: - url: grpcs://localhost:7056 - grpcOptions: - ssl-target-name-override: peer1.org1.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt - - peer0.org2.example.com: - url: grpcs://localhost:8051 - grpcOptions: - ssl-target-name-override: peer0.org2.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt - - peer1.org2.example.com: - url: grpcs://localhost:8056 - eventUrl: grpcs://localhost:8058 - grpcOptions: - ssl-target-name-override: peer1.org2.example.com - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt - -# -# Fabric-CA is a special kind of Certificate Authority provided by Hyperledger Fabric which allows -# certificate management to be done via REST APIs. Application may choose to use a standard -# Certificate Authority instead of Fabric-CA, in which case this section would not be specified. -# -certificateAuthorities: - ca-org1: - url: https://localhost:7054 - # the properties specified under this object are passed to the 'http' client verbatim when - # making the request to the Fabric-CA server - httpOptions: - verify: false - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem - - # Fabric-CA supports dynamic user enrollment via REST APIs. A "root" user, a.k.a registrar, is - # needed to enroll and invoke new users. - registrar: - - enrollId: admin - enrollSecret: adminpw - # [Optional] The optional name of the CA. - caName: ca-org1 - - ca-org2: - url: https://localhost:8054 - httpOptions: - verify: false - tlsCACerts: - path: artifacts/channel/crypto-config/peerOrganizations/org2.example.com/ca/ca.org2.example.com-cert.pem - registrar: - - enrollId: admin - enrollSecret: adminpw - # [Optional] The optional name of the CA. - caName: ca-org2 diff --git a/balance-transfer/artifacts/org1.yaml b/balance-transfer/artifacts/org1.yaml deleted file mode 100644 index 9f80b2a9cc..0000000000 --- a/balance-transfer/artifacts/org1.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -# -# The network connection profile provides client applications the information about the target -# blockchain network that are necessary for the applications to interact with it. These are all -# knowledge that must be acquired from out-of-band sources. This file provides such a source. -# -name: "balance-transfer-org1" - -# -# Any properties with an "x-" prefix will be treated as application-specific, exactly like how naming -# in HTTP headers or swagger properties work. The SDK will simply ignore these fields and leave -# them for the applications to process. This is a mechanism for different components of an application -# to exchange information that are not part of the standard schema described below. In particular, -# the "x-type" property with the "hlfv1" value example below is used by Hyperledger Composer to -# determine the type of Fabric networks (v0.6 vs. v1.0) it needs to work with. -# -x-type: "hlfv1" - -# -# Describe what the target network is/does. -# -description: "Balance Transfer Network - client definition for Org1" - -# -# Schema version of the content. Used by the SDK to apply the corresponding parsing rules. -# -version: "1.0" - -# -# The client section is SDK-specific. The sample below is for the node.js SDK -# -client: - # Which organization does this application instance belong to? The value must be the name of an org - # defined under "organizations" - organization: Org1 - - # Some SDKs support pluggable KV stores, the properties under "credentialStore" - # are implementation specific - credentialStore: - # [Optional]. Specific to FileKeyValueStore.js or similar implementations in other SDKs. Can be others - # if using an alternative impl. For instance, CouchDBKeyValueStore.js would require an object - # here for properties like url, db name, etc. - path: "./fabric-client-kv-org1" - - # [Optional]. Specific to the CryptoSuite implementation. Software-based implementations like - # CryptoSuite_ECDSA_AES.js in node SDK requires a key store. PKCS#11 based implementations does - # not. - cryptoStore: - # Specific to the underlying KeyValueStore that backs the crypto key store. - path: "/tmp/fabric-client-kv-org1" - - # [Optional]. Specific to Composer environment - wallet: wallet-name diff --git a/balance-transfer/artifacts/org2.yaml b/balance-transfer/artifacts/org2.yaml deleted file mode 100644 index 6edc731cf0..0000000000 --- a/balance-transfer/artifacts/org2.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -# -# The network connection profile provides client applications the information about the target -# blockchain network that are necessary for the applications to interact with it. These are all -# knowledge that must be acquired from out-of-band sources. This file provides such a source. -# -name: "balance-transfer-org2" - -# -# Any properties with an "x-" prefix will be treated as application-specific, exactly like how naming -# in HTTP headers or swagger properties work. The SDK will simply ignore these fields and leave -# them for the applications to process. This is a mechanism for different components of an application -# to exchange information that are not part of the standard schema described below. In particular, -# the "x-type" property with the "hlfv1" value example below is used by Hyperledger Composer to -# determine the type of Fabric networks (v0.6 vs. v1.0) it needs to work with. -# -x-type: "hlfv1" - -# -# Describe what the target network is/does. -# -description: "Balance Transfer Network - client definition for Org2" - -# -# Schema version of the content. Used by the SDK to apply the corresponding parsing rules. -# -version: "1.0" - -# -# The client section is SDK-specific. The sample below is for the node.js SDK -# -client: - # Which organization does this application instance belong to? The value must be the name of an org - # defined under "organizations" - organization: Org2 - - # Some SDKs support pluggable KV stores, the properties under "credentialStore" - # are implementation specific - credentialStore: - # [Optional]. Specific to FileKeyValueStore.js or similar implementations in other SDKs. Can be others - # if using an alternative impl. For instance, CouchDBKeyValueStore.js would require an object - # here for properties like url, db name, etc. - path: "./fabric-client-kv-org2" - - # [Optional]. Specific to the CryptoSuite implementation. Software-based implementations like - # CryptoSuite_ECDSA_AES.js in node SDK requires a key store. PKCS#11 based implementations does - # not. - cryptoStore: - # Specific to the underlying KeyValueStore that backs the crypto key store. - path: "/tmp/fabric-client-kv-org2" - - # [Optional]. Specific to Composer environment - wallet: wallet-name diff --git a/balance-transfer/artifacts/src/github.com/example_cc/go/example_cc.go b/balance-transfer/artifacts/src/github.com/example_cc/go/example_cc.go deleted file mode 100644 index 06fd76b965..0000000000 --- a/balance-transfer/artifacts/src/github.com/example_cc/go/example_cc.go +++ /dev/null @@ -1,203 +0,0 @@ -/* -Copyright IBM Corp. 2016 All Rights Reserved. - -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. -*/ - -package main - - -import ( - "fmt" - "strconv" - - "github.com/hyperledger/fabric/core/chaincode/shim" - pb "github.com/hyperledger/fabric/protos/peer" -) - -var logger = shim.NewLogger("example_cc0") - -// SimpleChaincode example simple Chaincode implementation -type SimpleChaincode struct { -} - -func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response { - logger.Info("########### example_cc0 Init ###########") - - _, args := stub.GetFunctionAndParameters() - var A, B string // Entities - var Aval, Bval int // Asset holdings - var err error - - // Initialize the chaincode - A = args[0] - Aval, err = strconv.Atoi(args[1]) - if err != nil { - return shim.Error("Expecting integer value for asset holding") - } - B = args[2] - Bval, err = strconv.Atoi(args[3]) - if err != nil { - return shim.Error("Expecting integer value for asset holding") - } - logger.Info("Aval = %d, Bval = %d\n", Aval, Bval) - - // Write the state to the ledger - err = stub.PutState(A, []byte(strconv.Itoa(Aval))) - if err != nil { - return shim.Error(err.Error()) - } - - err = stub.PutState(B, []byte(strconv.Itoa(Bval))) - if err != nil { - return shim.Error(err.Error()) - } - - return shim.Success(nil) - - -} - -// Transaction makes payment of X units from A to B -func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response { - logger.Info("########### example_cc0 Invoke ###########") - - function, args := stub.GetFunctionAndParameters() - - if function == "delete" { - // Deletes an entity from its state - return t.delete(stub, args) - } - - if function == "query" { - // queries an entity state - return t.query(stub, args) - } - if function == "move" { - // Deletes an entity from its state - return t.move(stub, args) - } - - logger.Errorf("Unknown action, check the first argument, must be one of 'delete', 'query', or 'move'. But got: %v", args[0]) - return shim.Error(fmt.Sprintf("Unknown action, check the first argument, must be one of 'delete', 'query', or 'move'. But got: %v", args[0])) -} - -func (t *SimpleChaincode) move(stub shim.ChaincodeStubInterface, args []string) pb.Response { - // must be an invoke - var A, B string // Entities - var Aval, Bval int // Asset holdings - var X int // Transaction value - var err error - - if len(args) != 3 { - return shim.Error("Incorrect number of arguments. Expecting 4, function followed by 2 names and 1 value") - } - - A = args[0] - B = args[1] - - // Get the state from the ledger - // TODO: will be nice to have a GetAllState call to ledger - Avalbytes, err := stub.GetState(A) - if err != nil { - return shim.Error("Failed to get state") - } - if Avalbytes == nil { - return shim.Error("Entity not found") - } - Aval, _ = strconv.Atoi(string(Avalbytes)) - - Bvalbytes, err := stub.GetState(B) - if err != nil { - return shim.Error("Failed to get state") - } - if Bvalbytes == nil { - return shim.Error("Entity not found") - } - Bval, _ = strconv.Atoi(string(Bvalbytes)) - - // Perform the execution - X, err = strconv.Atoi(args[2]) - if err != nil { - return shim.Error("Invalid transaction amount, expecting a integer value") - } - Aval = Aval - X - Bval = Bval + X - logger.Infof("Aval = %d, Bval = %d\n", Aval, Bval) - - // Write the state back to the ledger - err = stub.PutState(A, []byte(strconv.Itoa(Aval))) - if err != nil { - return shim.Error(err.Error()) - } - - err = stub.PutState(B, []byte(strconv.Itoa(Bval))) - if err != nil { - return shim.Error(err.Error()) - } - - return shim.Success(nil); -} - -// Deletes an entity from state -func (t *SimpleChaincode) delete(stub shim.ChaincodeStubInterface, args []string) pb.Response { - if len(args) != 1 { - return shim.Error("Incorrect number of arguments. Expecting 1") - } - - A := args[0] - - // Delete the key from the state in ledger - err := stub.DelState(A) - if err != nil { - return shim.Error("Failed to delete state") - } - - return shim.Success(nil) -} - -// Query callback representing the query of a chaincode -func (t *SimpleChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response { - - var A string // Entities - var err error - - if len(args) != 1 { - return shim.Error("Incorrect number of arguments. Expecting name of the person to query") - } - - A = args[0] - - // Get the state from the ledger - Avalbytes, err := stub.GetState(A) - if err != nil { - jsonResp := "{\"Error\":\"Failed to get state for " + A + "\"}" - return shim.Error(jsonResp) - } - - if Avalbytes == nil { - jsonResp := "{\"Error\":\"Nil amount for " + A + "\"}" - return shim.Error(jsonResp) - } - - jsonResp := "{\"Name\":\"" + A + "\",\"Amount\":\"" + string(Avalbytes) + "\"}" - logger.Infof("Query Response:%s\n", jsonResp) - return shim.Success(Avalbytes) -} - -func main() { - err := shim.Start(new(SimpleChaincode)) - if err != nil { - logger.Errorf("Error starting Simple chaincode: %s", err) - } -} diff --git a/balance-transfer/artifacts/src/github.com/example_cc/node/example_cc.js b/balance-transfer/artifacts/src/github.com/example_cc/node/example_cc.js deleted file mode 100644 index 9621178f0f..0000000000 --- a/balance-transfer/artifacts/src/github.com/example_cc/node/example_cc.js +++ /dev/null @@ -1,140 +0,0 @@ -/* -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -*/ - -const shim = require('fabric-shim'); -const util = require('util'); - -var Chaincode = class { - - // Initialize the chaincode - async Init(stub) { - console.info('========= example_cc Init ========='); - let ret = stub.getFunctionAndParameters(); - console.info(ret); - let args = ret.params; - // initialise only if 4 parameters passed. - if (args.length != 4) { - return shim.error('Incorrect number of arguments. Expecting 4'); - } - - let A = args[0]; - let B = args[2]; - let Aval = args[1]; - let Bval = args[3]; - - if (typeof parseInt(Aval) !== 'number' || typeof parseInt(Bval) !== 'number') { - return shim.error('Expecting integer value for asset holding'); - } - - try { - await stub.putState(A, Buffer.from(Aval)); - try { - await stub.putState(B, Buffer.from(Bval)); - return shim.success(); - } catch (err) { - return shim.error(err); - } - } catch (err) { - return shim.error(err); - } - } - - async Invoke(stub) { - let ret = stub.getFunctionAndParameters(); - console.info(ret); - let method = this[ret.fcn]; - if (!method) { - console.error('no method of name:' + ret.fcn + ' found'); - return shim.error('no method of name:' + ret.fcn + ' found'); - } - - console.info('\nCalling method : ' + ret.fcn); - try { - let payload = await method(stub, ret.params); - return shim.success(payload); - } catch (err) { - console.log(err); - return shim.error(err); - } - } - - async move(stub, args) { - if (args.length != 3) { - throw new Error('Incorrect number of arguments. Expecting 3'); - } - - let A = args[0]; - let B = args[1]; - if (!A || !B) { - throw new Error('asset holding must not be empty'); - } - - // Get the state from the ledger - let Avalbytes = await stub.getState(A); - if (!Avalbytes) { - throw new Error('Failed to get state of asset holder A'); - } - let Aval = parseInt(Avalbytes.toString()); - - let Bvalbytes = await stub.getState(B); - if (!Bvalbytes) { - throw new Error('Failed to get state of asset holder B'); - } - - let Bval = parseInt(Bvalbytes.toString()); - // Perform the execution - let amount = parseInt(args[2]); - if (typeof amount !== 'number') { - throw new Error('Expecting integer value for amount to be transaferred'); - } - - Aval = Aval - amount; - Bval = Bval + amount; - console.info(util.format('Aval = %d, Bval = %d\n', Aval, Bval)); - - // Write the states back to the ledger - await stub.putState(A, Buffer.from(Aval.toString())); - await stub.putState(B, Buffer.from(Bval.toString())); - - } - - // Deletes an entity from state - async delete(stub, args) { - if (args.length != 1) { - throw new Error('Incorrect number of arguments. Expecting 1'); - } - - let A = args[0]; - - // Delete the key from the state in ledger - await stub.deleteState(A); - } - - // query callback representing the query of a chaincode - async query(stub, args) { - if (args.length != 1) { - throw new Error('Incorrect number of arguments. Expecting name of the person to query') - } - - let jsonResp = {}; - let A = args[0]; - - // Get the state from the ledger - let Avalbytes = await stub.getState(A); - if (!Avalbytes) { - jsonResp.error = 'Failed to get state for ' + A; - throw new Error(JSON.stringify(jsonResp)); - } - - jsonResp.name = A; - jsonResp.amount = Avalbytes.toString(); - console.info('Query Response:'); - console.info(jsonResp); - return Avalbytes; - } -}; - -shim.start(new Chaincode()); diff --git a/balance-transfer/artifacts/src/github.com/example_cc/node/package.json b/balance-transfer/artifacts/src/github.com/example_cc/node/package.json deleted file mode 100644 index c7724458f5..0000000000 --- a/balance-transfer/artifacts/src/github.com/example_cc/node/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "example_cc", - "version": "1.0.0", - "description": "node-js version of example_02.go chaincode", - "engines": { - "node": ">=8.4.0", - "npm": ">=5.3.0" - }, - "scripts": { "start" : "node example_cc.js" }, - "engine-strict": true, - "license": "Apache-2.0", - "dependencies": { - "fabric-shim": "unstable" - } -} diff --git a/balance-transfer/config.js b/balance-transfer/config.js deleted file mode 100644 index a3d1baa04b..0000000000 --- a/balance-transfer/config.js +++ /dev/null @@ -1,18 +0,0 @@ -var util = require('util'); -var path = require('path'); -var hfc = require('fabric-client'); - -var file = 'network-config%s.yaml'; - -var env = process.env.TARGET_NETWORK; -if (env) - file = util.format(file, '-' + env); -else - file = util.format(file, ''); -// indicate to the application where the setup file is located so it able -// to have the hfc load it to initalize the fabric client instance -hfc.setConfigSetting('network-connection-profile-path',path.join(__dirname, 'artifacts' ,file)); -hfc.setConfigSetting('Org1-connection-profile-path',path.join(__dirname, 'artifacts', 'org1.yaml')); -hfc.setConfigSetting('Org2-connection-profile-path',path.join(__dirname, 'artifacts', 'org2.yaml')); -// some other settings the application might need to know -hfc.addConfigFile(path.join(__dirname, 'config.json')); diff --git a/balance-transfer/config.json b/balance-transfer/config.json deleted file mode 100644 index 3af47311d8..0000000000 --- a/balance-transfer/config.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "host":"localhost", - "port":"4000", - "jwt_expiretime": "36000", - "channelName":"mychannel", - "CC_SRC_PATH":"../artifacts", - "eventWaitTime":"30000", - "admins":[ - { - "username":"admin", - "secret":"adminpw" - } - ] -} diff --git a/balance-transfer/package.json b/balance-transfer/package.json deleted file mode 100644 index fa51c95d6d..0000000000 --- a/balance-transfer/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "balance-transfer", - "version": "1.0.0", - "description": "A balance-transfer example node program to demonstrate using node.js SDK APIs", - "main": "app.js", - "scripts": { - "start": "node app.js" - }, - "keywords": [ - "fabric-client sample app", - "balance-transfer node sample", - "v1.0 fabric nodesdk sample" - ], - "engines": { - "node": ">=8.9.4 <9.0", - "npm": ">=5.6.0 <6.0" - }, - "license": "Apache-2.0", - "dependencies": { - "body-parser": "^1.17.1", - "cookie-parser": "^1.4.3", - "cors": "^2.8.3", - "express": "^4.15.2", - "express-bearer-token": "^2.1.0", - "express-jwt": "^5.1.0", - "express-session": "^1.15.2", - "fabric-ca-client": "unstable", - "fabric-client": "unstable", - "fs-extra": "^2.0.0", - "jsonwebtoken": "^7.3.0", - "log4js": "^0.6.38" - } -} diff --git a/balance-transfer/runApp.sh b/balance-transfer/runApp.sh deleted file mode 100755 index e1e7d3028e..0000000000 --- a/balance-transfer/runApp.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -# -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -function dkcl(){ - CONTAINER_IDS=$(docker ps -aq) - echo - if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" = " " ]; then - echo "========== No containers available for deletion ==========" - else - docker rm -f $CONTAINER_IDS - fi - echo -} - -function dkrm(){ - DOCKER_IMAGE_IDS=$(docker images | grep "dev\|none\|test-vp\|peer[0-9]-" | awk '{print $3}') - echo - if [ -z "$DOCKER_IMAGE_IDS" -o "$DOCKER_IMAGE_IDS" = " " ]; then - echo "========== No images available for deletion ===========" - else - docker rmi -f $DOCKER_IMAGE_IDS - fi - echo -} - -function restartNetwork() { - echo - - #teardown the network and clean the containers and intermediate images - docker-compose -f ./artifacts/docker-compose.yaml down - dkcl - dkrm - - #Cleanup the stores - rm -rf ./fabric-client-kv-org* - - #Start the network - docker-compose -f ./artifacts/docker-compose.yaml up -d - echo -} - -function installNodeModules() { - echo - if [ -d node_modules ]; then - echo "============== node modules installed already =============" - else - echo "============== Installing node modules =============" - npm install - fi - echo -} - - -restartNetwork - -installNodeModules - -PORT=4000 node app diff --git a/balance-transfer/testAPIs.sh b/balance-transfer/testAPIs.sh deleted file mode 100755 index 6526f3f6fe..0000000000 --- a/balance-transfer/testAPIs.sh +++ /dev/null @@ -1,277 +0,0 @@ -#!/bin/bash -# -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -jq --version > /dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Please Install 'jq' https://stedolan.github.io/jq/ to execute this script" - echo - exit 1 -fi - -starttime=$(date +%s) - -# Print the usage message -function printHelp () { - echo "Usage: " - echo " ./testAPIs.sh -l golang|node" - echo " -l - chaincode language (defaults to \"golang\")" -} -# Language defaults to "golang" -LANGUAGE="golang" - -# Parse commandline args -while getopts "h?l:" opt; do - case "$opt" in - h|\?) - printHelp - exit 0 - ;; - l) LANGUAGE=$OPTARG - ;; - esac -done - -##set chaincode path -function setChaincodePath(){ - LANGUAGE=`echo "$LANGUAGE" | tr '[:upper:]' '[:lower:]'` - case "$LANGUAGE" in - "golang") - CC_SRC_PATH="github.com/example_cc/go" - ;; - "node") - CC_SRC_PATH="$PWD/artifacts/src/github.com/example_cc/node" - ;; - *) printf "\n ------ Language $LANGUAGE is not supported yet ------\n"$ - exit 1 - esac -} - -setChaincodePath - -echo "POST request Enroll on Org1 ..." -echo -ORG1_TOKEN=$(curl -s -X POST \ - http://localhost:4000/users \ - -H "content-type: application/x-www-form-urlencoded" \ - -d 'username=Jim&orgName=Org1') -echo $ORG1_TOKEN -ORG1_TOKEN=$(echo $ORG1_TOKEN | jq ".token" | sed "s/\"//g") -echo -echo "ORG1 token is $ORG1_TOKEN" -echo -echo "POST request Enroll on Org2 ..." -echo -ORG2_TOKEN=$(curl -s -X POST \ - http://localhost:4000/users \ - -H "content-type: application/x-www-form-urlencoded" \ - -d 'username=Barry&orgName=Org2') -echo $ORG2_TOKEN -ORG2_TOKEN=$(echo $ORG2_TOKEN | jq ".token" | sed "s/\"//g") -echo -echo "ORG2 token is $ORG2_TOKEN" -echo -echo -echo "POST request Create channel ..." -echo -curl -s -X POST \ - http://localhost:4000/channels \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "channelName":"mychannel", - "channelConfigPath":"../artifacts/channel/mychannel.tx" -}' -echo -echo -sleep 5 -echo "POST request Join channel on Org1" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/peers \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer0.org1.example.com","peer1.org1.example.com"] -}' -echo -echo - -echo "POST request Join channel on Org2" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/peers \ - -H "authorization: Bearer $ORG2_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer0.org2.example.com","peer1.org2.example.com"] -}' -echo -echo - -echo "POST request Update anchor peers on Org1" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/anchorpeers \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "configUpdatePath":"../artifacts/channel/Org1MSPanchors.tx" -}' -echo -echo - -echo "POST request Update anchor peers on Org2" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/anchorpeers \ - -H "authorization: Bearer $ORG2_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "configUpdatePath":"../artifacts/channel/Org2MSPanchors.tx" -}' -echo -echo - -echo "POST Install chaincode on Org1" -echo -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d "{ - \"peers\": [\"peer0.org1.example.com\",\"peer1.org1.example.com\"], - \"chaincodeName\":\"mycc\", - \"chaincodePath\":\"$CC_SRC_PATH\", - \"chaincodeType\": \"$LANGUAGE\", - \"chaincodeVersion\":\"v0\" -}" -echo -echo - -echo "POST Install chaincode on Org2" -echo -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer $ORG2_TOKEN" \ - -H "content-type: application/json" \ - -d "{ - \"peers\": [\"peer0.org2.example.com\",\"peer1.org2.example.com\"], - \"chaincodeName\":\"mycc\", - \"chaincodePath\":\"$CC_SRC_PATH\", - \"chaincodeType\": \"$LANGUAGE\", - \"chaincodeVersion\":\"v0\" -}" -echo -echo - -echo "POST instantiate chaincode on Org1" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d "{ - \"chaincodeName\":\"mycc\", - \"chaincodeVersion\":\"v0\", - \"chaincodeType\": \"$LANGUAGE\", - \"args\":[\"a\",\"100\",\"b\",\"200\"] -}" -echo -echo - -echo "POST invoke chaincode on peers of Org1 and Org2" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes/mycc \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d "{ - \"peers\": [\"peer0.org1.example.com\",\"peer0.org2.example.com\"], - \"fcn\":\"move\", - \"args\":[\"a\",\"b\",\"10\"] -}" -echo -echo - -echo "GET query chaincode on peer1 of Org1" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/chaincodes/mycc?peer=peer0.org1.example.com&fcn=query&args=%5B%22a%22%5D" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Block by blockNumber" -echo -BLOCK_INFO=$(curl -s -X GET \ - "http://localhost:4000/channels/mychannel/blocks/1?peer=peer0.org1.example.com" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json") -echo $BLOCK_INFO -# Assign previvious block hash to HASH -HASH=$(echo $BLOCK_INFO | jq -r ".header.previous_hash") -echo - -echo "GET query Transaction by TransactionID" -echo -curl -s -X GET http://localhost:4000/channels/mychannel/transactions/$TRX_ID?peer=peer0.org1.example.com \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - - -echo "GET query Block by Hash - Hash is $HASH" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/blocks?hash=$HASH&peer=peer0.org1.example.com" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "cache-control: no-cache" \ - -H "content-type: application/json" \ - -H "x-access-token: $ORG1_TOKEN" -echo -echo - -echo "GET query ChainInfo" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel?peer=peer0.org1.example.com" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Installed chaincodes" -echo -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer0.org1.example.com" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Instantiated chaincodes" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/chaincodes?peer=peer0.org1.example.com" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Channels" -echo -curl -s -X GET \ - "http://localhost:4000/channels?peer=peer0.org1.example.com" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - - -echo "Total execution time : $(($(date +%s)-starttime)) secs ..." diff --git a/balance-transfer/typescript/.gitignore b/balance-transfer/typescript/.gitignore deleted file mode 100644 index 5e283e61a3..0000000000 --- a/balance-transfer/typescript/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -package-lock.json -dist -types/fabric-client diff --git a/balance-transfer/typescript/README.md b/balance-transfer/typescript/README.md deleted file mode 100644 index 022324b5a0..0000000000 --- a/balance-transfer/typescript/README.md +++ /dev/null @@ -1,303 +0,0 @@ -## Balance transfer - -This is a sample Node.js application written using typescript which demonstrates -the **__fabric-client__** and **__fabric-ca-client__** Node.js SDK APIs for typescript. - -### Prerequisites and setup: - -* [Docker](https://www.docker.com/products/overview) - v1.12 or higher -* [Docker Compose](https://docs.docker.com/compose/overview/) - v1.8 or higher -* [Git client](https://git-scm.com/downloads) - needed for clone commands -* **Node.js** v6.9.0 - 6.10.0 ( __Node v7+ is not supported__ ) -* [Download Docker images](https://hyperledger-fabric.readthedocs.io/en/latest/install.html) - -``` -cd fabric-samples/balance-transfer/ -``` - -Once you have completed the above setup, you will have provisioned a local network with the following docker container configuration: - -* 2 CAs -* A SOLO orderer -* 4 peers (2 peers per Org) - -#### Artifacts - -* Crypto material has been generated using the **cryptogen** tool from Hyperledger Fabric and mounted to all peers, the orderering node and CA containers. More details regarding the cryptogen tool are available [here](http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#crypto-generator). - -* An Orderer genesis block (genesis.block) and channel configuration transaction (mychannel.tx) has been pre generated using the **configtxgen** tool from Hyperledger Fabric and placed within the artifacts folder. More details regarding the configtxgen tool are available [here](http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html#configuration-transaction-generator). - -## Running the sample program - -There are two options available for running the balance-transfer sample as shown below. - -### Option 1 - -##### Terminal Window 1 - -``` -cd fabric-samples/balance-transfer/typescript - -./runApp.sh - -``` - -This performs the following steps: -* launches the required network on your local machine -* installs the fabric-client and fabric-ca-client node modules -* starts the node app on PORT 4000 - -##### Terminal Window 2 - -NOTE: In order for the following shell script to properly parse the JSON, you must install ``jq``. - -See instructions at [https://stedolan.github.io/jq/](https://stedolan.github.io/jq/). - -Test the APIs as follows: -``` -cd fabric-samples/balance-transfer/typescript - -./testAPIs.sh - -``` - -### Option 2 is a more manual approach - -##### Terminal Window 1 - -* Launch the network using docker-compose - -``` -docker-compose -f artifacts/docker-compose.yaml up -``` -##### Terminal Window 2 - -* Install the fabric-client and fabric-ca-client node modules - -``` -npm install -``` - -*** NOTE - If running this before the new version of the node SDK is published which includes the typescript definition files, you will need to do the following: - -``` -cp types/fabric-client/index.d.tx node_modules/fabric-client/index.d.ts -cp types/fabric-ca-client/index.d.tx node_modules/fabric-ca-client/index.d.ts -``` - -* Start the node app on PORT 4000 - -``` -PORT=4000 ts-node app.ts -``` - -##### Terminal Window 3 - -* Execute the REST APIs from the section [Sample REST APIs Requests](https://github.com/hyperledger/fabric-samples/tree/master/balance-transfer#sample-rest-apis-requests) - -## Sample REST APIs Requests - -### Login Request - -* Register and enroll new users in Organization - **Org1**: - -`curl -s -X POST http://localhost:4000/users -H "content-type: application/x-www-form-urlencoded" -d 'username=Jim&orgName=org1'` - -**OUTPUT:** - -``` -{ - "success": true, - "secret": "RaxhMgevgJcm", - "message": "Jim enrolled Successfully", - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" -} -``` - -The response contains the success/failure status, an **enrollment Secret** and a **JSON Web Token (JWT)** that is a required string in the Request Headers for subsequent requests. - -### Create Channel request - -``` -curl -s -X POST \ - http://localhost:4000/channels \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" \ - -d '{ - "channelName":"mychannel", - "channelConfigPath":"../artifacts/channel/mychannel.tx" -}' -``` - -Please note that the Header **authorization** must contain the JWT returned from the `POST /users` call - -### Join Channel request - -``` -curl -s -X POST \ - http://localhost:4000/channels/mychannel/peers \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer1","peer2"] -}' -``` -### Install chaincode - -``` -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer1","peer2"], - "chaincodeName":"mycc", - "chaincodePath":"github.com/example_cc/go", - "chaincodeVersion":"v0" -}' -``` - -### Instantiate chaincode - -``` -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" \ - -d '{ - "chaincodeName":"mycc", - "chaincodeVersion":"v0", - "args":["a","100","b","200"] -}' -``` - -### Invoke request - -``` -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes/mycc \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" \ - -d '{ - "fcn":"move", - "args":["a","b","10"] -}' -``` -**NOTE:** Ensure that you save the Transaction ID from the response in order to pass this string in the subsequent query transactions. - -### Chaincode Query - -``` -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/chaincodes/mycc?peer=peer1&fcn=query&args=%5B%22a%22%5D" \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` - -### Query Block by BlockNumber - -``` -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/blocks/1?peer=peer1" \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` - -### Query Transaction by TransactionID - -``` -curl -s -X GET http://localhost:4000/channels/mychannel/transactions/TRX_ID?peer=peer1 \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` -**NOTE**: Here the TRX_ID can be from any previous invoke transaction - - -### Query ChainInfo - -``` -curl -s -X GET \ - "http://localhost:4000/channels/mychannel?peer=peer1" \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` - -### Query Installed chaincodes - -``` -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer1&type=installed" \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` - -### Query Instantiated chaincodes - -``` -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer1&type=instantiated" \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` - -### Query Channels - -``` -curl -s -X GET \ - "http://localhost:4000/channels?peer=peer1" \ - -H "authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0OTQ4NjU1OTEsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Im9yZzEiLCJpYXQiOjE0OTQ4NjE5OTF9.yWaJhFDuTvMQRaZIqg20Is5t-JJ_1BP58yrNLOKxtNI" \ - -H "content-type: application/json" -``` - -### Network configuration considerations - -You have the ability to change configuration parameters by either directly editing the network-config.json file or provide an additional file for an alternative target network. The app uses an optional environment variable "TARGET_NETWORK" to control the configuration files to use. For example, if you deployed the target network on Amazon Web Services EC2, you can add a file "network-config-aws.json", and set the "TARGET_NETWORK" environment to 'aws'. The app will pick up the settings inside the "network-config-aws.json" file. - -#### IP Address** and PORT information - -If you choose to customize your docker-compose yaml file by hardcoding IP Addresses and PORT information for your peers and orderer, then you MUST also add the identical values into the network-config.json file. The paths shown below will need to be adjusted to match your docker-compose yaml file. - -``` - "orderer": { - "url": "grpcs://x.x.x.x:7050", - "server-hostname": "orderer0", - "tls_cacerts": "../artifacts/tls/orderer/ca-cert.pem" - }, - "org1": { - "ca": "http://x.x.x.x:7054", - "peer1": { - "requests": "grpcs://x.x.x.x:7051", - "events": "grpcs://x.x.x.x:7053", - ... - }, - "peer2": { - "requests": "grpcs://x.x.x.x:7056", - "events": "grpcs://x.x.x.x:7058", - ... - } - }, - "org2": { - "ca": "http://x.x.x.x:8054", - "peer1": { - "requests": "grpcs://x.x.x.x:8051", - "events": "grpcs://x.x.x.x:8053", - ... }, - "peer2": { - "requests": "grpcs://x.x.x.x:8056", - "events": "grpcs://x.x.x.x:8058", - ... - } - } - -``` - -#### Discover IP Address - -To retrieve the IP Address for one of your network entities, issue the following command: - -``` -# The following will return the IP Address for peer0 -docker inspect peer0 | grep IPAddress -``` - -Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License. diff --git a/balance-transfer/typescript/api/chaincode.ts b/balance-transfer/typescript/api/chaincode.ts deleted file mode 100644 index 4c5fda6bd1..0000000000 --- a/balance-transfer/typescript/api/chaincode.ts +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as express from 'express'; -import log4js = require('log4js'); -const logger = log4js.getLogger('SampleWebApp'); -import hfc = require('fabric-client'); -import * as jwt from 'jsonwebtoken'; -import * as helper from '../lib/helper'; -import * as channelApi from '../lib/channel'; -import * as chainCodeApi from '../lib/chaincode'; -import { RequestEx } from '../interfaces'; -import { getErrorMessage } from './utils'; - -export default function chainCodeHandlers(app: express.Application) { - - async function installChainCode(req: RequestEx, res: express.Response) { - logger.debug('==================== INSTALL CHAINCODE =================='); - - const peers = req.body.peers; - const chaincodeName = req.body.chaincodeName; - const chaincodePath = req.body.chaincodePath; - const chaincodeVersion = req.body.chaincodeVersion; - - logger.debug('peers : ' + peers); // target peers list - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('chaincodePath : ' + chaincodePath); - logger.debug('chaincodeVersion : ' + chaincodeVersion); - - if (!peers || peers.length === 0) { - res.json(getErrorMessage('\'peers\'')); - return; - } - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!chaincodePath) { - res.json(getErrorMessage('\'chaincodePath\'')); - return; - } - if (!chaincodeVersion) { - res.json(getErrorMessage('\'chaincodeVersion\'')); - return; - } - - const message = await chainCodeApi.installChaincode( - peers, chaincodeName, chaincodePath, chaincodeVersion, req.username, req.orgname); - - res.send(message); - } - - async function queryChainCode(req: RequestEx, res: express.Response) { - const peer = req.query.peer; - const installType = req.query.type; - // TODO: add Constnats - if (installType === 'installed') { - logger.debug( - '================ GET INSTALLED CHAINCODES ======================'); - } else { - logger.debug( - '================ GET INSTANTIATED CHAINCODES ======================'); - } - - const message = await chainCodeApi.getInstalledChaincodes( - peer, installType, req.username, req.orgname); - - res.send(message); - } - - const API_ENDPOINT_CHAINCODE_INSTALL = '/chaincodes'; - const API_ENDPOINT_CHAINCODE_QUERY = '/chaincodes'; - - app.post(API_ENDPOINT_CHAINCODE_INSTALL, installChainCode); - app.get(API_ENDPOINT_CHAINCODE_QUERY, queryChainCode); -} diff --git a/balance-transfer/typescript/api/channel.ts b/balance-transfer/typescript/api/channel.ts deleted file mode 100644 index 49a79c7212..0000000000 --- a/balance-transfer/typescript/api/channel.ts +++ /dev/null @@ -1,261 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as express from 'express'; -import log4js = require('log4js'); -const logger = log4js.getLogger('SampleWebApp'); -import hfc = require('fabric-client'); -import * as jwt from 'jsonwebtoken'; -import * as helper from '../lib/helper'; -import * as channelApi from '../lib/channel'; -import { RequestEx } from '../interfaces'; -import { getErrorMessage } from './utils'; - -export default function channelHandlers(app: express.Application) { - - async function createNewChannel(req: RequestEx, res: express.Response) { - logger.info('<<<<<<<<<<<<<<<<< C R E A T E C H A N N E L >>>>>>>>>>>>>>>>>'); - logger.debug('End point : /channels'); - - const channelName = req.body.channelName; - const channelConfigPath = req.body.channelConfigPath; - - logger.debug('Channel name : ' + channelName); - // ../artifacts/channel/mychannel.tx - logger.debug('channelConfigPath : ' + channelConfigPath); - - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!channelConfigPath) { - res.json(getErrorMessage('\'channelConfigPath\'')); - return; - } - - const response = await channelApi.createChannel( - channelName, channelConfigPath, req.username, req.orgname); - - res.send(response); - } - - async function joinChannel(req: RequestEx, res: express.Response) { - logger.info('<<<<<<<<<<<<<<<<< J O I N C H A N N E L >>>>>>>>>>>>>>>>>'); - - const channelName = req.params.channelName; - const peers = req.body.peers; - logger.debug('channelName : ' + channelName); - logger.debug('peers : ' + peers); - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!peers || peers.length === 0) { - res.json(getErrorMessage('\'peers\'')); - return; - } - - const message = await channelApi.joinChannel(channelName, peers, req.username, req.orgname); - res.send(message); - } - - async function instantiateChainCode(req: RequestEx, res: express.Response) { - logger.debug('==================== INSTANTIATE CHAINCODE =================='); - const chaincodeName = req.body.chaincodeName; - const chaincodeVersion = req.body.chaincodeVersion; - const channelName = req.params.channelName; - const fcn = req.body.fcn; - const args = req.body.args; - logger.debug('channelName : ' + channelName); - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('chaincodeVersion : ' + chaincodeVersion); - logger.debug('fcn : ' + fcn); - logger.debug('args : ' + args); - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!chaincodeVersion) { - res.json(getErrorMessage('\'chaincodeVersion\'')); - return; - } - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!args) { - res.json(getErrorMessage('\'args\'')); - return; - } - - const message = await channelApi.instantiateChainCode( - channelName, chaincodeName, chaincodeVersion, fcn, args, req.username, req.orgname); - res.send(message); - } - - async function invokeChainCode(req: RequestEx, res: express.Response) { - logger.debug('==================== INVOKE ON CHAINCODE =================='); - const peers = req.body.peers; - const chaincodeName = req.params.chaincodeName; - const channelName = req.params.channelName; - const fcn = req.body.fcn; - const args = req.body.args; - logger.debug('channelName : ' + channelName); - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('fcn : ' + fcn); - logger.debug('args : ' + args); - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!fcn) { - res.json(getErrorMessage('\'fcn\'')); - return; - } - if (!args) { - res.json(getErrorMessage('\'args\'')); - return; - } - - const message = await channelApi.invokeChaincode( - peers, channelName, chaincodeName, fcn, args, req.username, req.orgname); - - res.send(message); - } - - async function queryChainCode(req: RequestEx, res: express.Response) { - const channelName = req.params.channelName; - const chaincodeName = req.params.chaincodeName; - let args = req.query.args; - const fcn = req.query.fcn; - const peer = req.query.peer; - - logger.debug('channelName : ' + channelName); - logger.debug('chaincodeName : ' + chaincodeName); - logger.debug('fcn : ' + fcn); - logger.debug('args : ' + args); - - if (!chaincodeName) { - res.json(getErrorMessage('\'chaincodeName\'')); - return; - } - if (!channelName) { - res.json(getErrorMessage('\'channelName\'')); - return; - } - if (!fcn) { - res.json(getErrorMessage('\'fcn\'')); - return; - } - if (!args) { - res.json(getErrorMessage('\'args\'')); - return; - } - - args = args.replace(/'/g, '"'); - args = JSON.parse(args); - logger.debug(args); - - const message = await channelApi.queryChaincode( - peer, channelName, chaincodeName, args, fcn, req.username, req.orgname); - - res.send(message); - } - - async function queryByBlockNumber(req: RequestEx, res: express.Response) { - logger.debug('==================== GET BLOCK BY NUMBER =================='); - const blockId = req.params.blockId; - const peer = req.query.peer; - logger.debug('channelName : ' + req.params.channelName); - logger.debug('BlockID : ' + blockId); - logger.debug('Peer : ' + peer); - if (!blockId) { - res.json(getErrorMessage('\'blockId\'')); - return; - } - - const message = await channelApi.getBlockByNumber(peer, blockId, req.username, req.orgname); - res.send(message); - } - - async function queryByTransactionId(req: RequestEx, res: express.Response) { - logger.debug( - '================ GET TRANSACTION BY TRANSACTION_ID ======================' - ); - logger.debug('channelName : ' + req.params.channelName); - const trxnId = req.params.trxnId; - const peer = req.query.peer; - if (!trxnId) { - res.json(getErrorMessage('\'trxnId\'')); - return; - } - - const message = await channelApi.getTransactionByID( - peer, trxnId, req.username, req.orgname); - - res.send(message); - } - - async function queryChannelInfo(req: RequestEx, res: express.Response) { - logger.debug( - '================ GET CHANNEL INFORMATION ======================'); - logger.debug('channelName : ' + req.params.channelName); - const peer = req.query.peer; - - const message = await channelApi.getChainInfo(peer, req.username, req.orgname); - - res.send(message); - } - - async function queryChannels(req: RequestEx, res: express.Response) { - logger.debug('================ GET CHANNELS ======================'); - logger.debug('peer: ' + req.query.peer); - const peer = req.query.peer; - if (!peer) { - res.json(getErrorMessage('\'peer\'')); - return; - } - - const message = await channelApi.getChannels(peer, req.username, req.orgname); - res.send(message); - } - - const API_ENDPOINT_CHANNEL_CREATE = '/channels'; - const API_ENDPOINT_CHANNEL_JOIN = '/channels/:channelName/peers'; - const API_ENDPOINT_CHANNEL_INSTANTIATE_CHAINCODE = '/channels/:channelName/chaincodes'; - const API_ENDPOINT_CHANNEL_INVOKE_CHAINCODE = - '/channels/:channelName/chaincodes/:chaincodeName'; - const API_ENDPOINT_CHANNEL_QUERY_CHAINCODE = '/channels/:channelName/chaincodes/:chaincodeName'; - const API_ENDPOINT_CHANNEL_QUERY_BY_BLOCKNUMBER = '/channels/:channelName/blocks/:blockId'; - const API_ENDPOINT_CHANNEL_QUERY_BY_TRANSACTIONID - = '/channels/:channelName/transactions/:trxnId'; - const API_ENDPOINT_CHANNEL_INFO = '/channels/:channelName'; - const API_ENDPOINT_CHANNEL_QUERY = '/channels'; - - app.post(API_ENDPOINT_CHANNEL_CREATE, createNewChannel); - app.post(API_ENDPOINT_CHANNEL_JOIN, joinChannel); - app.post(API_ENDPOINT_CHANNEL_INSTANTIATE_CHAINCODE, instantiateChainCode); - app.post(API_ENDPOINT_CHANNEL_INVOKE_CHAINCODE, invokeChainCode); - app.get(API_ENDPOINT_CHANNEL_QUERY_CHAINCODE, queryChainCode); - app.get(API_ENDPOINT_CHANNEL_QUERY_BY_BLOCKNUMBER, queryByBlockNumber); - app.get(API_ENDPOINT_CHANNEL_QUERY_BY_TRANSACTIONID, queryByTransactionId); - app.get(API_ENDPOINT_CHANNEL_INFO, queryChannelInfo); - app.get(API_ENDPOINT_CHANNEL_QUERY, queryChannels); -} diff --git a/balance-transfer/typescript/api/index.ts b/balance-transfer/typescript/api/index.ts deleted file mode 100644 index f49700e086..0000000000 --- a/balance-transfer/typescript/api/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as express from 'express'; -import userHandlers from './users'; -import channelHandlers from './channel'; -import chainCodeHandlers from './chaincode'; - -export default function entryPoint(app: express.Application) { - // various handlers - userHandlers(app); - channelHandlers(app); - chainCodeHandlers(app); -} diff --git a/balance-transfer/typescript/api/users.ts b/balance-transfer/typescript/api/users.ts deleted file mode 100644 index d9462555dc..0000000000 --- a/balance-transfer/typescript/api/users.ts +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import { RequestEx } from '../interfaces'; -import * as express from 'express'; -import log4js = require('log4js'); -const logger = log4js.getLogger('SampleWebApp'); -import hfc = require('fabric-client'); -import * as jwt from 'jsonwebtoken'; -import * as helper from '../lib/helper'; -import { getErrorMessage } from './utils'; - -export default function userHandlers(app: express.Application) { - - async function registerUser(req: RequestEx, res: express.Response) { - const username = req.body.username; - const orgName = req.body.orgName; - - logger.debug('End point : /users'); - logger.debug('User name : ' + username); - logger.debug('Org name : ' + orgName); - - if (!username) { - res.json(getErrorMessage('\'username\'')); - return; - } - if (!orgName) { - res.json(getErrorMessage('\'orgName\'')); - return; - } - const token = jwt.sign({ - exp: Math.floor(Date.now() / 1000) + parseInt( - hfc.getConfigSetting('jwt_expiretime'), 10), - username, - orgName - }, app.get('secret')); - - const response = await helper.getRegisteredUsers(username, orgName); - - if (response && typeof response !== 'string') { - res.json({ - success: true, - token - }); - } else { - res.json({ - success: false, - message: response - }); - } - } - - const API_ENDPOINT_REGISTER_USER = '/users'; - - app.post(API_ENDPOINT_REGISTER_USER, registerUser); -} diff --git a/balance-transfer/typescript/api/utils.ts b/balance-transfer/typescript/api/utils.ts deleted file mode 100644 index 128545fe91..0000000000 --- a/balance-transfer/typescript/api/utils.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -export function getErrorMessage(field: string) { - const response = { - success: false, - message: field + ' field is missing or Invalid in the request' - }; - return response; -} diff --git a/balance-transfer/typescript/app.ts b/balance-transfer/typescript/app.ts deleted file mode 100644 index 66e8680bf1..0000000000 --- a/balance-transfer/typescript/app.ts +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import log4js = require('log4js'); -import * as util from 'util'; -import * as http from 'http'; -import * as express from 'express'; -import * as jwt from 'jsonwebtoken'; -import * as bodyParser from 'body-parser'; -import expressJWT = require('express-jwt'); -// tslint:disable-next-line:no-var-requires -const bearerToken = require('express-bearer-token'); -import cors = require('cors'); -import hfc = require('fabric-client'); -import * as helper from './lib/helper'; -import { RequestEx } from './interfaces'; -import api from './api'; - -helper.init(); - -const SERVER_HOST = process.env.HOST || hfc.getConfigSetting('host'); -const SERVER_PORT = process.env.PORT || hfc.getConfigSetting('port'); - -const logger = log4js.getLogger('SampleWebApp'); - -// create express App -const app = express(); - -app.options('*', cors()); -app.use(cors()); -app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({ - extended: false -})); -app.set('secret', 'thisismysecret'); -app.use(expressJWT({ - secret: 'thisismysecret' -}).unless({ - path: ['/users'] -})); -app.use(bearerToken()); - -app.use((req: RequestEx, res, next) => { - if (req.originalUrl.indexOf('/users') >= 0) { - return next(); - } - - const token = req.token; - jwt.verify(token, app.get('secret'), (err: Error, decoded: any) => { - if (err) { - res.send({ - success: false, - message: 'Failed to authenticate token. Make sure to include the ' + - 'token returned from /users call in the authorization header ' + - ' as a Bearer token' - }); - return; - } else { - // add the decoded user name and org name to the request object - // for the downstream code to use - req.username = decoded.username; - req.orgname = decoded.orgName; - logger.debug( - util.format('Decoded from JWT token: username - %s, orgname - %s', - decoded.username, decoded.orgName)); - return next(); - } - }); -}); - -// configure various routes -api(app); - -const server = http.createServer(app); -server.listen(SERVER_PORT); - -logger.info('****************** SERVER STARTED ************************'); -logger.info('************** http://' + SERVER_HOST + ':' + SERVER_PORT + ' ******************'); -server.timeout = 240000; diff --git a/balance-transfer/typescript/app_config.json b/balance-transfer/typescript/app_config.json deleted file mode 100644 index 6406d66f22..0000000000 --- a/balance-transfer/typescript/app_config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "host": "localhost", - "port": "4000", - "jwt_expiretime": "36000", - "channelName": "mychannel", - "CC_SRC_PATH": "../artifacts", - "keyValueStore": "/tmp/fabric-client-kvs", - "eventWaitTime": "30000", - "admins": [{ - "username": "admin", - "secret": "adminpw" - }] -} diff --git a/balance-transfer/typescript/artifacts b/balance-transfer/typescript/artifacts deleted file mode 120000 index 70f9aabc31..0000000000 --- a/balance-transfer/typescript/artifacts +++ /dev/null @@ -1 +0,0 @@ -../artifacts \ No newline at end of file diff --git a/balance-transfer/typescript/config.ts b/balance-transfer/typescript/config.ts deleted file mode 100644 index 1277eee48e..0000000000 --- a/balance-transfer/typescript/config.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as util from 'util'; - -let file = 'network-config%s.json'; - -const env = process.env.TARGET_NETWORK; -if (env) { - file = util.format(file, '-' + env); -} else { - file = util.format(file, ''); -} - -export default { - networkConfigFile: file -}; diff --git a/balance-transfer/typescript/interfaces.ts b/balance-transfer/typescript/interfaces.ts deleted file mode 100644 index 6acd2b1b6b..0000000000 --- a/balance-transfer/typescript/interfaces.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as express from 'express'; - -export interface RequestEx extends express.Request { - username?: any; - orgname?: any; - token?: any; -} diff --git a/balance-transfer/typescript/lib/chaincode.ts b/balance-transfer/typescript/lib/chaincode.ts deleted file mode 100644 index 70915abd07..0000000000 --- a/balance-transfer/typescript/lib/chaincode.ts +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as util from 'util'; -import * as fs from 'fs'; -import * as path from 'path'; -import * as helper from './helper'; - -// tslint:disable-next-line:no-var-requires -const config = require('../app_config.json'); -const logger = helper.getLogger('ChaincodeApi'); - -function buildTarget(peer: string, org: string): Peer { - let target: Peer = null; - if (typeof peer !== 'undefined') { - const targets: Peer[] = helper.newPeers([peer], org); - if (targets && targets.length > 0) { - target = targets[0]; - } - } - - return target; -} - -export async function installChaincode( - peers: string[], chaincodeName: string, chaincodePath: string, - chaincodeVersion: string, username: string, org: string) { - - logger.debug( - '\n============ Install chaincode on organizations ============\n'); - - helper.setupChaincodeDeploy(); - - const channel = helper.getChannelForOrg(org); - const client = helper.getClientForOrg(org); - - const admin = await helper.getOrgAdmin(org); - - const request = { - targets: helper.newPeers(peers, org), - chaincodePath, - chaincodeId: chaincodeName, - chaincodeVersion - }; - - try { - - const results = await client.installChaincode(request); - - const proposalResponses = results[0]; - const proposal = results[1]; - let allGood = true; - - proposalResponses.forEach((pr) => { - let oneGood = false; - if (pr.response && pr.response.status === 200) { - oneGood = true; - logger.info('install proposal was good'); - } else { - logger.error('install proposal was bad'); - } - allGood = allGood && oneGood; - }); - - if (allGood) { - logger.info(util.format( - 'Successfully sent install Proposal and received ProposalResponse: Status - %s', - proposalResponses[0].response.status)); - logger.debug('\nSuccessfully Installed chaincode on organization ' + org + - '\n'); - return 'Successfully Installed chaincode on organization ' + org; - } else { - logger.error( - // tslint:disable-next-line:max-line-length - 'Failed to send install Proposal or receive valid response. Response null or status is not 200. exiting...' - ); - // tslint:disable-next-line:max-line-length - return 'Failed to send install Proposal or receive valid response. Response null or status is not 200. exiting...'; - } - - } catch (err) { - logger.error('Failed to send install proposal due to error: ' + err.stack ? - err.stack : err); - throw new Error('Failed to send install proposal due to error: ' + err.stack ? - err.stack : err); - } -} - -export async function getInstalledChaincodes( - peer: string, type: string, username: string, org: string) { - - const target = buildTarget(peer, org); - const channel = helper.getChannelForOrg(org); - const client = helper.getClientForOrg(org); - - const user = await helper.getOrgAdmin(org); - - try { - - let response: ChaincodeQueryResponse = null; - - if (type === 'installed') { - response = await client.queryInstalledChaincodes(target); - } else { - response = await channel.queryInstantiatedChaincodes(target); - } - - if (response) { - if (type === 'installed') { - logger.debug('<<< Installed Chaincodes >>>'); - } else { - logger.debug('<<< Instantiated Chaincodes >>>'); - } - - const details: string[] = []; - response.chaincodes.forEach((c) => { - logger.debug('name: ' + c.name + ', version: ' + - c.version + ', path: ' + c.path - ); - details.push('name: ' + c.name + ', version: ' + - c.version + ', path: ' + c.path - ); - }); - - return details; - } else { - logger.error('response is null'); - return 'response is null'; - } - - } catch (err) { - logger.error('Failed to query with error:' + err.stack ? err.stack : err); - return 'Failed to query with error:' + err.stack ? err.stack : err; - } -} \ No newline at end of file diff --git a/balance-transfer/typescript/lib/channel.ts b/balance-transfer/typescript/lib/channel.ts deleted file mode 100644 index 2cc474aa5f..0000000000 --- a/balance-transfer/typescript/lib/channel.ts +++ /dev/null @@ -1,599 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import * as util from 'util'; -import * as fs from 'fs'; -import * as path from 'path'; -import * as helper from './helper'; -const logger = helper.getLogger('ChannelApi'); -// tslint:disable-next-line:no-var-requires -const config = require('../app_config.json'); - -const allEventhubs: EventHub[] = []; - -function buildTarget(peer: string, org: string): Peer { - let target: Peer = null; - if (typeof peer !== 'undefined') { - const targets: Peer[] = helper.newPeers([peer], org); - if (targets && targets.length > 0) { - target = targets[0]; - } - } - - return target; -} - -// Attempt to send a request to the orderer with the sendCreateChain method -export async function createChannel( - channelName: string, channelConfigPath: string, username: string, orgName: string) { - - logger.debug('\n====== Creating Channel \'' + channelName + '\' ======\n'); - - const client = helper.getClientForOrg(orgName); - const channel = helper.getChannelForOrg(orgName); - - // read in the envelope for the channel config raw bytes - const envelope = fs.readFileSync(path.join(__dirname, channelConfigPath)); - // extract the channel config bytes from the envelope to be signed - const channelConfig = client.extractChannelConfig(envelope); - - // Acting as a client in the given organization provided with "orgName" param - const admin = await helper.getOrgAdmin(orgName); - - logger.debug(util.format('Successfully acquired admin user for the organization "%s"', - orgName)); - - // sign the channel config bytes as "endorsement", this is required by - // the orderer's channel creation policy - const signature = client.signChannelConfig(channelConfig); - - const request = { - config: channelConfig, - signatures: [signature], - name: channelName, - orderer: channel.getOrderers()[0], - txId: client.newTransactionID() - }; - - try { - const response = await client.createChannel(request); - - if (response && response.status === 'SUCCESS') { - logger.debug('Successfully created the channel.'); - return { - success: true, - message: 'Channel \'' + channelName + '\' created Successfully' - }; - } else { - logger.error('\n!!!!!!!!! Failed to create the channel \'' + channelName + - '\' !!!!!!!!!\n\n'); - throw new Error('Failed to create the channel \'' + channelName + '\''); - } - - } catch (err) { - logger.error('\n!!!!!!!!! Failed to create the channel \'' + channelName + - '\' !!!!!!!!!\n\n'); - throw new Error('Failed to create the channel \'' + channelName + '\''); - } -} - -export async function joinChannel( - channelName: string, peers: string[], username: string, org: string) { - - // on process exit, always disconnect the event hub - const closeConnections = (isSuccess: boolean) => { - if (isSuccess) { - logger.debug('\n============ Join Channel is SUCCESS ============\n'); - } else { - logger.debug('\n!!!!!!!! ERROR: Join Channel FAILED !!!!!!!!\n'); - } - logger.debug(''); - - allEventhubs.forEach((hub) => { - console.log(hub); - if (hub && hub.isconnected()) { - hub.disconnect(); - } - }); - }; - - // logger.debug('\n============ Join Channel ============\n') - logger.info(util.format( - 'Calling peers in organization "%s" to join the channel', org)); - - const client = helper.getClientForOrg(org); - const channel = helper.getChannelForOrg(org); - - const admin = await helper.getOrgAdmin(org); - - logger.info(util.format('received member object for admin of the organization "%s": ', org)); - const request = { - txId: client.newTransactionID() - }; - - const genesisBlock = await channel.getGenesisBlock(request); - - const request2 = { - targets: helper.newPeers(peers, org), - txId: client.newTransactionID(), - block: genesisBlock - }; - - const eventhubs = helper.newEventHubs(peers, org); - eventhubs.forEach((eh) => { - eh.connect(); - allEventhubs.push(eh); - }); - - const eventPromises: Array> = []; - eventhubs.forEach((eh) => { - const txPromise = new Promise((resolve, reject) => { - const handle = setTimeout(reject, parseInt(config.eventWaitTime, 10)); - eh.registerBlockEvent((block: any) => { - clearTimeout(handle); - // in real-world situations, a peer may have more than one channels so - // we must check that this block came from the channel we asked the peer to join - if (block.data.data.length === 1) { - // Config block must only contain one transaction - const channel_header = block.data.data[0].payload.header.channel_header; - if (channel_header.channel_id === channelName) { - resolve(); - } else { - reject(); - } - } - }); - }); - eventPromises.push(txPromise); - }); - - const sendPromise = channel.joinChannel(request2); - const results = await Promise.all([sendPromise].concat(eventPromises)); - - logger.debug(util.format('Join Channel R E S P O N S E : %j', results)); - if (results[0] && results[0][0] && results[0][0].response && results[0][0] - .response.status === 200) { - logger.info(util.format( - 'Successfully joined peers in organization %s to the channel \'%s\'', - org, channelName)); - closeConnections(true); - const response = { - success: true, - message: util.format( - 'Successfully joined peers in organization %s to the channel \'%s\'', - org, channelName) - }; - return response; - } else { - logger.error(' Failed to join channel'); - closeConnections(false); - throw new Error('Failed to join channel'); - } -} - -export async function instantiateChainCode( - channelName: string, chaincodeName: string, chaincodeVersion: string, - functionName: string, args: string[], username: string, org: string) { - - logger.debug('\n============ Instantiate chaincode on organization ' + org + - ' ============\n'); - - const channel = helper.getChannelForOrg(org); - const client = helper.getClientForOrg(org); - - const admin = await helper.getOrgAdmin(org); - await channel.initialize(); - - const txId = client.newTransactionID(); - // send proposal to endorser - const request = { - chaincodeId: chaincodeName, - chaincodeVersion, - args, - txId, - fcn: functionName - }; - - try { - - const results = await channel.sendInstantiateProposal(request); - - const proposalResponses = results[0]; - const proposal = results[1]; - - let allGood = true; - - proposalResponses.forEach((pr) => { - let oneGood = false; - if (pr.response && pr.response.status === 200) { - oneGood = true; - logger.info('install proposal was good'); - } else { - logger.error('install proposal was bad'); - } - allGood = allGood && oneGood; - }); - - if (allGood) { - logger.info(util.format( - // tslint:disable-next-line:max-line-length - 'Successfully sent Proposal and received ProposalResponse: Status - %s, message - "%s", metadata - "%s", endorsement signature: %s', - proposalResponses[0].response.status, proposalResponses[0].response.message, - proposalResponses[0].response.payload, proposalResponses[0].endorsement - .signature)); - - const request2 = { - proposalResponses, - proposal - }; - // set the transaction listener and set a timeout of 30sec - // if the transaction did not get committed within the timeout period, - // fail the test - const deployId = txId.getTransactionID(); - const ORGS = helper.getOrgs(); - - const eh = client.newEventHub(); - const data = fs.readFileSync(path.join(__dirname, ORGS[org].peers['peer1'][ - 'tls_cacerts' - ])); - - eh.setPeerAddr(ORGS[org].peers['peer1']['events'], { - 'pem': Buffer.from(data).toString(), - 'ssl-target-name-override': ORGS[org].peers['peer1']['server-hostname'] - }); - eh.connect(); - - const txPromise: Promise = new Promise((resolve, reject) => { - const handle = setTimeout(() => { - eh.disconnect(); - reject(); - }, 30000); - - eh.registerTxEvent(deployId, (tx, code) => { - // logger.info( - // 'The chaincode instantiate transaction has been committed on peer ' + - // eh._ep._endpoint.addr); - - clearTimeout(handle); - eh.unregisterTxEvent(deployId); - eh.disconnect(); - - if (code !== 'VALID') { - logger.error( - 'The chaincode instantiate transaction was invalid, code = ' + code); - reject(); - } else { - logger.info('The chaincode instantiate transaction was valid.'); - resolve(); - } - }); - }); - - const sendPromise = channel.sendTransaction(request2); - const transactionResults = await Promise.all([sendPromise].concat([txPromise])); - - const response = transactionResults[0]; - if (response.status === 'SUCCESS') { - logger.info('Successfully sent transaction to the orderer.'); - return 'Chaincode Instantiation is SUCCESS'; - } else { - logger.error('Failed to order the transaction. Error code: ' + response.status); - return 'Failed to order the transaction. Error code: ' + response.status; - } - - } else { - logger.error( - // tslint:disable-next-line:max-line-length - 'Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting...' - ); - // tslint:disable-next-line:max-line-length - return 'Failed to send instantiate Proposal or receive valid response. Response null or status is not 200. exiting...'; - } - - } catch (err) { - logger.error('Failed to send instantiate due to error: ' + err.stack ? err - .stack : err); - return 'Failed to send instantiate due to error: ' + err.stack ? err.stack : - err; - } -} - -export async function invokeChaincode( - peerNames: string[], channelName: string, - chaincodeName: string, fcn: string, args: string[], username: string, org: string) { - - logger.debug( - util.format('\n============ invoke transaction on organization %s ============\n', org)); - - const client = helper.getClientForOrg(org); - const channel = helper.getChannelForOrg(org); - const targets = (peerNames) ? helper.newPeers(peerNames, org) : undefined; - - const user = await helper.getRegisteredUsers(username, org); - - const txId = client.newTransactionID(); - logger.debug(util.format('Sending transaction "%j"', txId)); - // send proposal to endorser - const request: ChaincodeInvokeRequest = { - chaincodeId: chaincodeName, - fcn, - args, - txId - }; - - if (targets) { - request.targets = targets; - } - - try { - - const results = await channel.sendTransactionProposal(request); - - const proposalResponses = results[0]; - const proposal = results[1]; - let allGood = true; - - proposalResponses.forEach((pr) => { - let oneGood = false; - if (pr.response && pr.response.status === 200) { - oneGood = true; - logger.info('transaction proposal was good'); - } else { - logger.error('transaction proposal was bad'); - } - allGood = allGood && oneGood; - }); - - if (allGood) { - logger.debug(util.format( - // tslint:disable-next-line:max-line-length - 'Successfully sent Proposal and received ProposalResponse: Status - %s, message - "%s", metadata - "%s", endorsement signature: %s', - proposalResponses[0].response.status, proposalResponses[0].response.message, - proposalResponses[0].response.payload, proposalResponses[0].endorsement - .signature)); - - const request2 = { - proposalResponses, - proposal - }; - - // set the transaction listener and set a timeout of 30sec - // if the transaction did not get committed within the timeout period, - // fail the test - const transactionID = txId.getTransactionID(); - const eventPromises: Array> = []; - - if (!peerNames) { - peerNames = channel.getPeers().map((peer) => { - return peer.getName(); - }); - } - - const eventhubs = helper.newEventHubs(peerNames, org); - - eventhubs.forEach((eh: EventHub) => { - eh.connect(); - - const txPromise = new Promise((resolve, reject) => { - const handle = setTimeout(() => { - eh.disconnect(); - reject(); - }, 30000); - - eh.registerTxEvent(transactionID, (tx: string, code: string) => { - clearTimeout(handle); - eh.unregisterTxEvent(transactionID); - eh.disconnect(); - - if (code !== 'VALID') { - logger.error( - 'The balance transfer transaction was invalid, code = ' + code); - reject(); - } else { - // logger.info( - // 'The balance transfer transaction has been committed on peer ' + - // eh._ep._endpoint.addr); - resolve(); - } - }); - }); - eventPromises.push(txPromise); - }); - - const sendPromise = channel.sendTransaction(request2); - const results2 = await Promise.all([sendPromise].concat(eventPromises)); - - logger.debug(' event promise all complete and testing complete'); - - if (results2[0].status === 'SUCCESS') { - logger.info('Successfully sent transaction to the orderer.'); - return txId.getTransactionID(); - } else { - logger.error('Failed to order the transaction. Error code: ' + results2[0].status); - return 'Failed to order the transaction. Error code: ' + results2[0].status; - } - } else { - logger.error( - // tslint:disable-next-line:max-line-length - 'Failed to send Proposal or receive valid response. Response null or status is not 200. exiting...' - ); - // tslint:disable-next-line:max-line-length - return 'Failed to send Proposal or receive valid response. Response null or status is not 200. exiting...'; - } - - } catch (err) { - logger.error('Failed to send transaction due to error: ' + err.stack ? err - .stack : err); - return 'Failed to send transaction due to error: ' + err.stack ? err.stack : - err; - } -} - -export async function queryChaincode( - peer: string, channelName: string, chaincodeName: string, - args: string[], fcn: string, username: string, org: string) { - - const channel = helper.getChannelForOrg(org); - const client = helper.getClientForOrg(org); - const target = buildTarget(peer, org); - - const user = await helper.getRegisteredUsers(username, org); - - const txId = client.newTransactionID(); - // send query - const request: ChaincodeQueryRequest = { - chaincodeId: chaincodeName, - txId, - fcn, - args - }; - - if (target) { - request.targets = [target]; - } - - try { - const responsePayloads = await channel.queryByChaincode(request); - - if (responsePayloads) { - - responsePayloads.forEach((rp) => { - logger.info(args[0] + ' now has ' + rp.toString('utf8') + - ' after the move'); - return args[0] + ' now has ' + rp.toString('utf8') + - ' after the move'; - }); - - } else { - logger.error('response_payloads is null'); - return 'response_payloads is null'; - } - } catch (err) { - logger.error('Failed to send query due to error: ' + err.stack ? err.stack : - err); - return 'Failed to send query due to error: ' + err.stack ? err.stack : err; - } -} - -export async function getBlockByNumber( - peer: string, blockNumber: string, username: string, org: string) { - - const target = buildTarget(peer, org); - const channel = helper.getChannelForOrg(org); - - const user = await helper.getRegisteredUsers(username, org); - - try { - - const responsePayloads = await channel.queryBlock(parseInt(blockNumber, 10), target); - - if (responsePayloads) { - logger.debug(responsePayloads); - return responsePayloads; // response_payloads.data.data[0].buffer; - } else { - logger.error('response_payloads is null'); - return 'response_payloads is null'; - } - - } catch (err) { - logger.error('Failed to query with error:' + err.stack ? err.stack : err); - return 'Failed to query with error:' + err.stack ? err.stack : err; - } -} - -export async function getTransactionByID( - peer: string, trxnID: string, username: string, org: string) { - - const target = buildTarget(peer, org); - const channel = helper.getChannelForOrg(org); - - const user = await helper.getRegisteredUsers(username, org); - - try { - - const responsePayloads = await channel.queryTransaction(trxnID, target); - - if (responsePayloads) { - logger.debug(responsePayloads); - return responsePayloads; - } else { - logger.error('response_payloads is null'); - return 'response_payloads is null'; - } - - } catch (err) { - logger.error('Failed to query with error:' + err.stack ? err.stack : err); - return 'Failed to query with error:' + err.stack ? err.stack : err; - } -} - -export async function getChainInfo(peer: string, username: string, org: string) { - - const target = buildTarget(peer, org); - const channel = helper.getChannelForOrg(org); - - const user = await helper.getRegisteredUsers(username, org); - - try { - - const blockChainInfo = await channel.queryInfo(target); - - if (blockChainInfo) { - // FIXME: Save this for testing 'getBlockByHash' ? - logger.debug('==========================================='); - logger.debug(blockChainInfo.currentBlockHash); - logger.debug('==========================================='); - // logger.debug(blockchainInfo); - return blockChainInfo; - } else { - logger.error('blockChainInfo is null'); - return 'blockChainInfo is null'; - } - - } catch (err) { - logger.error('Failed to query with error:' + err.stack ? err.stack : err); - return 'Failed to query with error:' + err.stack ? err.stack : err; - } -} - -export async function getChannels(peer: string, username: string, org: string) { - const target = buildTarget(peer, org); - const channel = helper.getChannelForOrg(org); - const client = helper.getClientForOrg(org); - - const user = await helper.getRegisteredUsers(username, org); - - try { - - const response = await client.queryChannels(target); - - if (response) { - logger.debug('<<< channels >>>'); - const channelNames: string[] = []; - response.channels.forEach((ci) => { - channelNames.push('channel id: ' + ci.channel_id); - }); - return response; - } else { - logger.error('response_payloads is null'); - return 'response_payloads is null'; - } - - } catch (err) { - logger.error('Failed to query with error:' + err.stack ? err.stack : err); - return 'Failed to query with error:' + err.stack ? err.stack : err; - } -} diff --git a/balance-transfer/typescript/lib/helper.ts b/balance-transfer/typescript/lib/helper.ts deleted file mode 100644 index b2497aab2e..0000000000 --- a/balance-transfer/typescript/lib/helper.ts +++ /dev/null @@ -1,311 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -import log4js = require('log4js'); -import * as path from 'path'; -import * as fs from 'fs'; -import * as util from 'util'; -import config from '../config'; -import hfc = require('fabric-client'); -// tslint:disable-next-line:no-var-requires -const copService = require('fabric-ca-client'); - -const logger = log4js.getLogger('Helper'); -logger.setLevel('DEBUG'); -hfc.setLogger(logger); - -let ORGS: any; -const clients = {}; -const channels = {}; -const caClients = {}; - -function readAllFiles(dir: string) { - const files = fs.readdirSync(dir); - const certs: any = []; - files.forEach((fileName) => { - const filePath = path.join(dir, fileName); - const data = fs.readFileSync(filePath); - certs.push(data); - }); - return certs; -} - -function getKeyStoreForOrg(org: string) { - return hfc.getConfigSetting('keyValueStore') + '_' + org; -} - -function setupPeers(channel: any, org: string, client: Client) { - for (const key in ORGS[org].peers) { - if (key) { - const data = fs.readFileSync( - path.join(__dirname, ORGS[org].peers[key]['tls_cacerts'])); - const peer = client.newPeer( - ORGS[org].peers[key].requests, - { - 'pem': Buffer.from(data).toString(), - 'ssl-target-name-override': ORGS[org].peers[key]['server-hostname'] - } - ); - peer.setName(key); - - channel.addPeer(peer); - } - } -} - -function newOrderer(client: Client) { - const caRootsPath = ORGS.orderer.tls_cacerts; - const data = fs.readFileSync(path.join(__dirname, caRootsPath)); - const caroots = Buffer.from(data).toString(); - return client.newOrderer(ORGS.orderer.url, { - 'pem': caroots, - 'ssl-target-name-override': ORGS.orderer['server-hostname'] - }); -} - -function getOrgName(org: string) { - return ORGS[org].name; -} - -function getMspID(org: string) { - logger.debug('Msp ID : ' + ORGS[org].mspid); - return ORGS[org].mspid; -} - -function newRemotes(names: string[], forPeers: boolean, userOrg: string) { - const client = getClientForOrg(userOrg); - - const targets: any[] = []; - // find the peer that match the names - names.forEach((n) => { - if (ORGS[userOrg].peers[n]) { - // found a peer matching the name - const data = fs.readFileSync( - path.join(__dirname, ORGS[userOrg].peers[n]['tls_cacerts'])); - const grpcOpts = { - 'pem': Buffer.from(data).toString(), - 'ssl-target-name-override': ORGS[userOrg].peers[n]['server-hostname'] - }; - - if (forPeers) { - targets.push(client.newPeer(ORGS[userOrg].peers[n].requests, grpcOpts)); - } else { - const eh = client.newEventHub(); - eh.setPeerAddr(ORGS[userOrg].peers[n].events, grpcOpts); - targets.push(eh); - } - } - }); - - if (targets.length === 0) { - logger.error(util.format('Failed to find peers matching the names %s', names)); - } - - return targets; -} - -async function getAdminUser(userOrg: string): Promise { - const users = hfc.getConfigSetting('admins'); - const username = users[0].username; - const password = users[0].secret; - - const client = getClientForOrg(userOrg); - - const store = await hfc.newDefaultKeyValueStore({ - path: getKeyStoreForOrg(getOrgName(userOrg)) - }); - - client.setStateStore(store); - - const user = await client.getUserContext(username, true); - - if (user && user.isEnrolled()) { - logger.info('Successfully loaded member from persistence'); - return user; - } - - const caClient = caClients[userOrg]; - - const enrollment = await caClient.enroll({ - enrollmentID: username, - enrollmentSecret: password - }); - - logger.info('Successfully enrolled user \'' + username + '\''); - const userOptions: UserOptions = { - username, - mspid: getMspID(userOrg), - cryptoContent: { - privateKeyPEM: enrollment.key.toBytes(), - signedCertPEM: enrollment.certificate - } - }; - - const member = await client.createUser(userOptions); - return member; -} - -export function newPeers(names: string[], org: string) { - return newRemotes(names, true, org); -} - -export function newEventHubs(names: string[], org: string) { - return newRemotes(names, false, org); -} - -export function setupChaincodeDeploy() { - process.env.GOPATH = path.join(__dirname, hfc.getConfigSetting('CC_SRC_PATH')); -} - -export function getOrgs() { - return ORGS; -} - -export function getClientForOrg(org: string): Client { - return clients[org]; -} - -export function getChannelForOrg(org: string): Channel { - return channels[org]; -} - -export function init() { - - hfc.addConfigFile(path.join(__dirname, config.networkConfigFile)); - hfc.addConfigFile(path.join(__dirname, '../app_config.json')); - - ORGS = hfc.getConfigSetting('network-config'); - - // set up the client and channel objects for each org - for (const key in ORGS) { - if (key.indexOf('org') === 0) { - const client = new hfc(); - - const cryptoSuite = hfc.newCryptoSuite(); - // TODO: Fix it up as setCryptoKeyStore is only available for s/w impl - (cryptoSuite as any).setCryptoKeyStore( - hfc.newCryptoKeyStore({ - path: getKeyStoreForOrg(ORGS[key].name) - })); - - client.setCryptoSuite(cryptoSuite); - - const channel = client.newChannel(hfc.getConfigSetting('channelName')); - channel.addOrderer(newOrderer(client)); - - clients[key] = client; - channels[key] = channel; - - setupPeers(channel, key, client); - - const caUrl = ORGS[key].ca; - caClients[key] = new copService( - caUrl, null /*defautl TLS opts*/, '' /* default CA */, cryptoSuite); - } - } -} - -export async function getRegisteredUsers( - username: string, userOrg: string): Promise { - - const client = getClientForOrg(userOrg); - - const store = await hfc.newDefaultKeyValueStore({ - path: getKeyStoreForOrg(getOrgName(userOrg)) - }); - - client.setStateStore(store); - const user = await client.getUserContext(username, true); - - if (user && user.isEnrolled()) { - logger.info('Successfully loaded member from persistence'); - return user; - } - - logger.info('Using admin to enroll this user ..'); - - // get the Admin and use it to enroll the user - const adminUser = await getAdminUser(userOrg); - - const caClient = caClients[userOrg]; - const secret = await caClient.register({ - enrollmentID: username, - affiliation: userOrg + '.department1' - }, adminUser); - - logger.debug(username + ' registered successfully'); - - const message = await caClient.enroll({ - enrollmentID: username, - enrollmentSecret: secret - }); - - if (message && typeof message === 'string' && message.includes( - 'Error:')) { - logger.error(username + ' enrollment failed'); - } - logger.debug(username + ' enrolled successfully'); - - const userOptions: UserOptions = { - username, - mspid: getMspID(userOrg), - cryptoContent: { - privateKeyPEM: message.key.toBytes(), - signedCertPEM: message.certificate - } - }; - - const member = await client.createUser(userOptions); - return member; -} - -export function getLogger(moduleName: string) { - const moduleLogger = log4js.getLogger(moduleName); - moduleLogger.setLevel('DEBUG'); - return moduleLogger; -} - -export async function getOrgAdmin(userOrg: string): Promise { - const admin = ORGS[userOrg].admin; - const keyPath = path.join(__dirname, admin.key); - const keyPEM = Buffer.from(readAllFiles(keyPath)[0]).toString(); - const certPath = path.join(__dirname, admin.cert); - const certPEM = readAllFiles(certPath)[0].toString(); - - const client = getClientForOrg(userOrg); - const cryptoSuite = hfc.newCryptoSuite(); - - if (userOrg) { - (cryptoSuite as any).setCryptoKeyStore( - hfc.newCryptoKeyStore({ path: getKeyStoreForOrg(getOrgName(userOrg)) })); - client.setCryptoSuite(cryptoSuite); - } - - const store = await hfc.newDefaultKeyValueStore({ - path: getKeyStoreForOrg(getOrgName(userOrg)) - }); - - client.setStateStore(store); - - return client.createUser({ - username: 'peer' + userOrg + 'Admin', - mspid: getMspID(userOrg), - cryptoContent: { - privateKeyPEM: keyPEM, - signedCertPEM: certPEM - } - }); -} diff --git a/balance-transfer/typescript/lib/network-config.json b/balance-transfer/typescript/lib/network-config.json deleted file mode 100644 index 2ec10ac91c..0000000000 --- a/balance-transfer/typescript/lib/network-config.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "network-config": { - "orderer": { - "url": "grpcs://localhost:7050", - "server-hostname": "orderer.example.com", - "tls_cacerts": "../artifacts/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt" - }, - "org1": { - "name": "peerOrg1", - "mspid": "Org1MSP", - "ca": "https://localhost:7054", - "peers": { - "peer1": { - "requests": "grpcs://localhost:7051", - "events": "grpcs://localhost:7053", - "server-hostname": "peer0.org1.example.com", - "tls_cacerts": "../artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" - }, - "peer2": { - "requests": "grpcs://localhost:7056", - "events": "grpcs://localhost:7058", - "server-hostname": "peer1.org1.example.com", - "tls_cacerts": "../artifacts/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt" - } - }, - "admin": { - "key": "../artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore", - "cert": "../artifacts/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts" - } - }, - "org2": { - "name": "peerOrg2", - "mspid": "Org2MSP", - "ca": "https://localhost:8054", - "peers": { - "peer1": { - "requests": "grpcs://localhost:8051", - "events": "grpcs://localhost:8053", - "server-hostname": "peer0.org2.example.com", - "tls_cacerts": "../artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" - }, - "peer2": { - "requests": "grpcs://localhost:8056", - "events": "grpcs://localhost:8058", - "server-hostname": "peer1.org2.example.com", - "tls_cacerts": "../artifacts/channel/crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls/ca.crt" - } - }, - "admin": { - "key": "../artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/keystore", - "cert": "../artifacts/channel/crypto-config/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp/signcerts" - } - } - } -} diff --git a/balance-transfer/typescript/package.json b/balance-transfer/typescript/package.json deleted file mode 100644 index aad1914884..0000000000 --- a/balance-transfer/typescript/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "balance-transfer-typescript", - "version": "0.1.0", - "description": "The balance transfer sample written using typescript", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Kapil Sachdeva", - "license": "Apache-2.0", - "devDependencies": { - "@types/body-parser": "^1.16.5", - "@types/cors": "^2.8.1", - "@types/express-jwt": "0.0.37", - "@types/express-session": "^1.15.3", - "@types/jsonwebtoken": "^7.2.3", - "@types/log4js": "0.0.33", - "@types/node": "^8.0.33", - "express-bearer-token": "^2.1.0", - "jsonwebtoken": "^8.1.0", - "ts-node": "^3.3.0", - "tslint": "^5.6.0", - "tslint-microsoft-contrib": "^5.0.1", - "typescript": "^2.5.3" - }, - "dependencies": { - "body-parser": "^1.18.2", - "cookie-parser": "^1.4.3", - "cors": "^2.8.4", - "express": "^4.16.1", - "express-jwt": "^5.3.0", - "express-session": "^1.15.6", - "fabric-ca-client": "unstable", - "fabric-client": "unstable", - "log4js": "^0.6.38" - } -} diff --git a/balance-transfer/typescript/runApp.sh b/balance-transfer/typescript/runApp.sh deleted file mode 100755 index be79b9d4ac..0000000000 --- a/balance-transfer/typescript/runApp.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -# -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -function dkcl(){ - CONTAINER_IDS=$(docker ps -aq) - echo - if [ -z "$CONTAINER_IDS" -o "$CONTAINER_IDS" = " " ]; then - echo "========== No containers available for deletion ==========" - else - docker rm -f $CONTAINER_IDS - fi - echo -} - -function dkrm(){ - DOCKER_IMAGE_IDS=$(docker images | grep "dev\|none\|test-vp\|peer[0-9]-" | awk '{print $3}') - echo - if [ -z "$DOCKER_IMAGE_IDS" -o "$DOCKER_IMAGE_IDS" = " " ]; then - echo "========== No images available for deletion ===========" - else - docker rmi -f $DOCKER_IMAGE_IDS - fi - echo -} - -function restartNetwork() { - echo - - #teardown the network and clean the containers and intermediate images - docker-compose -f ../artifacts/docker-compose.yaml down - dkcl - dkrm - - #Cleanup the material - rm -rf /tmp/hfc-test-kvs_peerOrg* $HOME/.hfc-key-store/ /tmp/fabric-client-kvs_peerOrg* - - #Start the network - docker-compose -f ../artifacts/docker-compose.yaml up -d - echo -} - -function installNodeModules() { - echo - if [ -d node_modules ]; then - echo "============== node modules installed already =============" - else - echo "============== Installing node modules =============" - npm install - fi - copyIndex fabric-client/index.d.ts - copyIndex fabric-ca-client/index.d.ts - echo -} - -function copyIndex() { - if [ ! -f node_modules/$1 ]; then - cp types/$1 node_modules/$1 - fi -} - -restartNetwork - -installNodeModules - - - -PORT=4000 ts-node app.ts diff --git a/balance-transfer/typescript/testAPIs.sh b/balance-transfer/typescript/testAPIs.sh deleted file mode 100755 index 8447ad2c12..0000000000 --- a/balance-transfer/typescript/testAPIs.sh +++ /dev/null @@ -1,197 +0,0 @@ -#!/bin/bash -# -# Copyright IBM Corp. All Rights Reserved. -# -# SPDX-License-Identifier: Apache-2.0 -# - -jq --version > /dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "Please Install 'jq' https://stedolan.github.io/jq/ to execute this script" - echo - exit 1 -fi -starttime=$(date +%s) - -echo "POST request Enroll on Org1 ..." -echo -ORG1_TOKEN=$(curl -s -X POST \ - http://localhost:4000/users \ - -H "content-type: application/x-www-form-urlencoded" \ - -d 'username=Jim&orgName=org1') -echo $ORG1_TOKEN -ORG1_TOKEN=$(echo $ORG1_TOKEN | jq ".token" | sed "s/\"//g") -echo -echo "ORG1 token is $ORG1_TOKEN" -echo -echo "POST request Enroll on Org2 ..." -echo -ORG2_TOKEN=$(curl -s -X POST \ - http://localhost:4000/users \ - -H "content-type: application/x-www-form-urlencoded" \ - -d 'username=Barry&orgName=org2') -echo $ORG2_TOKEN -ORG2_TOKEN=$(echo $ORG2_TOKEN | jq ".token" | sed "s/\"//g") -echo -echo "ORG2 token is $ORG2_TOKEN" -echo -echo -echo "POST request Create channel ..." -echo -curl -s -X POST \ - http://localhost:4000/channels \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "channelName":"mychannel", - "channelConfigPath":"../artifacts/channel/mychannel.tx" -}' -echo -echo -sleep 5 -echo "POST request Join channel on Org1" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/peers \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer1","peer2"] -}' -echo -echo - -echo "POST request Join channel on Org2" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/peers \ - -H "authorization: Bearer $ORG2_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer1","peer2"] -}' -echo -echo - -echo "POST Install chaincode on Org1" -echo -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer1", "peer2"], - "chaincodeName":"mycc", - "chaincodePath":"github.com/example_cc/go", - "chaincodeVersion":"v0" -}' -echo -echo - - -echo "POST Install chaincode on Org2" -echo -curl -s -X POST \ - http://localhost:4000/chaincodes \ - -H "authorization: Bearer $ORG2_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "peers": ["peer1","peer2"], - "chaincodeName":"mycc", - "chaincodePath":"github.com/example_cc/go", - "chaincodeVersion":"v0" -}' -echo -echo - -echo "POST instantiate chaincode on peer1 of Org1" -echo -curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "chaincodeName":"mycc", - "chaincodeVersion":"v0", - "args":["a","100","b","200"] -}' -echo -echo - -echo "POST invoke chaincode on peers of Org1 and Org2" -echo -TRX_ID=$(curl -s -X POST \ - http://localhost:4000/channels/mychannel/chaincodes/mycc \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" \ - -d '{ - "fcn":"move", - "args":["a","b","10"] -}') -echo "Transaction ID is $TRX_ID" -echo -echo - -echo "GET query chaincode on peer1 of Org1" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/chaincodes/mycc?peer=peer1&fcn=query&args=%5B%22a%22%5D" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Block by blockNumber" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel/blocks/1?peer=peer1" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Transaction by TransactionID" -echo -curl -s -X GET http://localhost:4000/channels/mychannel/transactions/$TRX_ID?peer=peer1 \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query ChainInfo" -echo -curl -s -X GET \ - "http://localhost:4000/channels/mychannel?peer=peer1" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Installed chaincodes" -echo -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer1&type=installed" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Instantiated chaincodes" -echo -curl -s -X GET \ - "http://localhost:4000/chaincodes?peer=peer1&type=instantiated" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "GET query Channels" -echo -curl -s -X GET \ - "http://localhost:4000/channels?peer=peer1" \ - -H "authorization: Bearer $ORG1_TOKEN" \ - -H "content-type: application/json" -echo -echo - -echo "Total execution time : $(($(date +%s)-starttime)) secs ..." diff --git a/balance-transfer/typescript/tsconfig.json b/balance-transfer/typescript/tsconfig.json deleted file mode 100644 index 7d6de87516..0000000000 --- a/balance-transfer/typescript/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "removeComments": false, - "preserveConstEnums": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "sourceMap": true, - "declaration": true, - "noImplicitAny": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "suppressImplicitAnyIndexErrors": true, - "moduleResolution": "node", - "module": "commonjs", - "target": "es6", - "outDir": "dist", - "baseUrl": ".", - "typeRoots": [ - "types", - "node_modules/@types" - ] - }, - "formatCodeOptions": { - "indentSize": 2, - "tabSize": 2 - } -} \ No newline at end of file diff --git a/balance-transfer/typescript/tslint.json b/balance-transfer/typescript/tslint.json deleted file mode 100644 index 9064616325..0000000000 --- a/balance-transfer/typescript/tslint.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "extends": "tslint:recommended", - "rulesDirectory": [ - "tslint-microsoft-contrib" - ], - "rules": { - "trailing-comma": [false, { - "multiline": "always", - "singleline": "never" - }], - "interface-name": [false, "always-prefix"], - "no-console": [true, - "time", - "timeEnd", - "trace" - ], - "max-line-length": [ - true, - 100 - ], - "no-string-literal": false, - "no-use-before-declare": true, - "object-literal-sort-keys": false, - "ordered-imports": [false], - "quotemark": [ - true, - "single", - "avoid-escape" - ], - "variable-name": [ - true, - "allow-leading-underscore", - "allow-pascal-case", - "ban-keywords", - "check-format" - ] - } -} \ No newline at end of file diff --git a/balance-transfer/typescript/types/fabric-ca-client/index.d.ts b/balance-transfer/typescript/types/fabric-ca-client/index.d.ts deleted file mode 100644 index e5c21a9134..0000000000 --- a/balance-transfer/typescript/types/fabric-ca-client/index.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -declare module 'fabric-ca-client' { -} \ No newline at end of file diff --git a/balance-transfer/typescript/types/fabric-client/index.d.ts b/balance-transfer/typescript/types/fabric-client/index.d.ts deleted file mode 100644 index db17494df3..0000000000 --- a/balance-transfer/typescript/types/fabric-client/index.d.ts +++ /dev/null @@ -1,312 +0,0 @@ -/** - * Copyright 2017 Kapil Sachdeva All Rights Reserved. - * - * 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. - */ - -declare enum Status { - UNKNOWN = 0, - SUCCESS = 200, - BAD_REQUEST = 400, - FORBIDDEN = 403, - NOT_FOUND = 404, - REQUEST_ENTITY_TOO_LARGE = 413, - INTERNAL_SERVER_ERROR = 500, - SERVICE_UNAVAILABLE = 503 -} - -type ChaicodeType = "golang" | "car" | "java"; - -interface ProtoBufObject { - toBuffer(): Buffer; -} - -interface KeyOpts { - ephemeral: boolean; -} - -interface ConnectionOptions { - -} - -interface ConfigSignature extends ProtoBufObject { - signature_header: Buffer; - signature: Buffer; -} - -interface ICryptoKey { - getSKI(): string; - isSymmetric(): boolean; - isPrivate(): boolean; - getPublicKey(): ICryptoKey; - toBytes(): string; -} - -interface ICryptoKeyStore { - getKey(ski: string): Promise; - putKey(key: ICryptoKey): Promise; -} - -interface IKeyValueStore { - getValue(name: string): Promise; - setValue(name: string, value: string): Promise; -} - -interface IdentityFiles { - privateKey: string; - signedCert: string; -} - -interface IdentityPEMs { - privateKeyPEM: string; - signedCertPEM: string; -} - -interface UserOptions { - username: string; - mspid: string; - cryptoContent: IdentityFiles | IdentityPEMs; -} - -interface ICryptoSuite { - decrypt(key: ICryptoKey, cipherText: Buffer, opts: any): Buffer; - deriveKey(key: ICryptoKey): ICryptoKey; - encrypt(key: ICryptoKey, plainText: Buffer, opts: any): Buffer; - getKey(ski: string): Promise; - generateKey(opts: KeyOpts): Promise; - hash(msg: string, opts: any): string; - importKey(pem: string, opts: KeyOpts): ICryptoKey | Promise; - sign(key: ICryptoKey, digest: Buffer): Buffer; - verify(key: ICryptoKey, signature: Buffer, digest: Buffer): boolean; -} - -interface ChannelRequest { - name: string; - orderer: Orderer; - envelope?: Buffer; - config?: Buffer; - txId?: TransactionId; - signatures: ConfigSignature[]; -} - -interface TransactionRequest { - proposalResponses: ProposalResponse[]; - proposal: Proposal; -} - -interface BroadcastResponse { - status: string; -} - -interface IIdentity { - serialize(): Buffer; - getMSPId(): string; - isValid(): boolean; - getOrganizationUnits(): string; - verify(msg: Buffer, signature: Buffer, opts: any): boolean; -} - -interface ISigningIdentity { - sign(msg: Buffer, opts: any): Buffer; -} - -interface ChaincodeInstallRequest { - targets: Peer[]; - chaincodePath: string; - chaincodeId: string; - chaincodeVersion: string; - chaincodePackage?: Buffer; - chaincodeType?: ChaicodeType; -} - -interface ChaincodeInstantiateUpgradeRequest { - targets?: Peer[]; - chaincodeType?: string; - chaincodeId: string; - chaincodeVersion: string; - txId: TransactionId; - fcn?: string; - args?: string[]; - 'endorsement-policy'?: any; -} - -interface ChaincodeInvokeRequest { - targets?: Peer[]; - chaincodeId: string; - txId: TransactionId; - fcn?: string; - args: string[]; -} - -interface ChaincodeQueryRequest { - targets?: Peer[]; - chaincodeId: string; - txId: TransactionId; - fcn?: string; - args: string[]; -} - -interface ChaincodeInfo { - name: string; - version: string; - path: string; - input: string; - escc: string; - vscc: string; -} - -interface ChannelInfo { - channel_id: string; -} - -interface ChaincodeQueryResponse { - chaincodes: ChaincodeInfo[]; -} - -interface ChannelQueryResponse { - channels: ChannelInfo[]; -} - -interface OrdererRequest { - txId: TransactionId; -} - -interface JoinChannelRequest { - txId: TransactionId; - targets: Peer[]; - block: Buffer; -} - -interface ResponseObject { - status: Status; - message: string; - payload: Buffer; -} - -interface Proposal { - header: ByteBuffer; - payload: ByteBuffer; - extension: ByteBuffer; -} - -interface Header { - channel_header: ByteBuffer; - signature_header: ByteBuffer; -} - -interface ProposalResponse { - version: number; - timestamp: Date; - response: ResponseObject; - payload: Buffer; - endorsement: any; -} - -type ProposalResponseObject = [Array, Proposal, Header]; - -declare class Orderer { -} - -declare class Peer { - setName(name: string): void; - getName(): string; -} - -declare class EventHub { - connect(): void; - disconnect(): void; - getPeerAddr(): string; - setPeerAddr(url: string, opts: ConnectionOptions): void; - isconnected(): boolean; - registerBlockEvent(onEvent: (b: any) => void, onError?: (err: Error) => void): number; - registerTxEvent(txId: string, onEvent: (txId: any, code: string) => void, onError?: (err: Error) => void): void; - unregisterTxEvent(txId: string): void; -} - -declare class Channel { - initialize(): Promise; - addOrderer(orderer: Orderer): void; - addPeer(peer: Peer): void; - getGenesisBlock(request: OrdererRequest): Promise; - getChannelConfig(): Promise; - joinChannel(request: JoinChannelRequest): Promise; - sendInstantiateProposal(request: ChaincodeInstantiateUpgradeRequest): Promise; - sendTransactionProposal(request: ChaincodeInvokeRequest): Promise; - sendTransaction(request: TransactionRequest): Promise; - queryByChaincode(request: ChaincodeQueryRequest): Promise; - queryBlock(blockNumber: number, target: Peer): Promise; - queryTransaction(txId: string, target: Peer): Promise; - queryInstantiatedChaincodes(target: Peer): Promise; - queryInfo(target: Peer): Promise; - getOrderers(): Orderer[]; - getPeers(): Peer[]; -} - -declare abstract class BaseClient { - static setLogger(logger: any): void; - static addConfigFile(path: string): void; - static getConfigSetting(name: string, default_value?: any): any; - static newCryptoSuite(): ICryptoSuite; - static newCryptoKeyStore(obj?: { path: string }): ICryptoKeyStore; - static newDefaultKeyValueStore(obj?: { path: string }): Promise; - setCryptoSuite(suite: ICryptoSuite): void; - getCryptoSuite(): ICryptoSuite; -} - -declare class TransactionId { - getTransactionID(): string; -} - -interface UserConfig { - enrollmentID: string; - name: string - roles?: string[]; - affiliation?: string; -} - -declare class User { - isEnrolled(): boolean; - getName(): string; - getRoles(): string[]; - setRoles(roles: string[]): void; - getAffiliation(): string; - setAffiliation(affiliation: string): void; - getIdentity(): IIdentity; - getSigningIdentity(): ISigningIdentity; - setCryptoSuite(suite: ICryptoSuite): void; - setEnrollment(privateKey: ICryptoKey, certificate: string, mspId: string): Promise; -} - -declare class Client extends BaseClient { - isDevMode(): boolean; - getUserContext(name: string, checkPersistence: boolean): Promise | User; - setUserContext(user: User, skipPersistence?: boolean): Promise; - setDevMode(mode: boolean): void; - newOrderer(url: string, opts: ConnectionOptions): Orderer; - newChannel(name: string): Channel; - newPeer(url: string, opts: ConnectionOptions): Peer; - newEventHub(): EventHub; - newTransactionID(): TransactionId; - extractChannelConfig(envelope: Buffer): Buffer; - createChannel(request: ChannelRequest): Promise; - createUser(opts: UserOptions): Promise; - signChannelConfig(config: Buffer): ConfigSignature; - setStateStore(store: IKeyValueStore): void; - installChaincode(request: ChaincodeInstallRequest): Promise; - queryInstalledChaincodes(target: Peer): Promise; - queryChannels(target: Peer): Promise; -} - -declare module 'fabric-client' { - export = Client; -}