mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-17 15:35:09 +00:00
Move the Balance Transfer sample application from fabric-sdk-node to fabric-samples. This cr will add the files to the fabric-samples. There will another one to remove the files from fabric-sdk-node. Change-Id: I2344ee00bcd47793ae07f203070af93bc2ee69d6 Signed-off-by: Bret Harrison <beharrison@nc.rr.com>
74 lines
2.9 KiB
JavaScript
74 lines
2.9 KiB
JavaScript
/**
|
|
* 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 fs = require('fs');
|
|
var path = require('path');
|
|
var config = require('../config.json');
|
|
var helper = require('./helper.js');
|
|
var logger = helper.getLogger('Create-Channel');
|
|
//Attempt to send a request to the orderer with the sendCreateChain method
|
|
var createChannel = function(channelName, channelConfigPath, username, orgName) {
|
|
logger.debug('\n====== Creating Channel \'' + channelName + '\' ======\n');
|
|
var client = helper.getClientForOrg(orgName);
|
|
var channel = helper.getChannelForOrg(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
|
|
return helper.getOrgAdmin(orgName).then((admin) => {
|
|
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
|
|
let signature = client.signChannelConfig(channelConfig);
|
|
|
|
let request = {
|
|
config: channelConfig,
|
|
signatures: [signature],
|
|
name: channelName,
|
|
orderer: channel.getOrderers()[0],
|
|
txId: client.newTransactionID()
|
|
};
|
|
|
|
// send to orderer
|
|
return client.createChannel(request);
|
|
}, (err) => {
|
|
logger.error('Failed to enroll user \''+username+'\'. Error: ' + err);
|
|
throw new Error('Failed to enroll user \''+username+'\'' + err);
|
|
}).then((response) => {
|
|
logger.debug(' response ::%j', response);
|
|
if (response && response.status === 'SUCCESS') {
|
|
logger.debug('Successfully created the channel.');
|
|
let response = {
|
|
success: true,
|
|
message: 'Channel \'' + channelName + '\' created Successfully'
|
|
};
|
|
return response;
|
|
} else {
|
|
logger.error('\n!!!!!!!!! Failed to create the channel \'' + channelName +
|
|
'\' !!!!!!!!!\n\n');
|
|
throw new Error('Failed to create the channel \'' + channelName + '\'');
|
|
}
|
|
}, (err) => {
|
|
logger.error('Failed to initialize the channel: ' + err.stack ? err.stack :
|
|
err);
|
|
throw new Error('Failed to initialize the channel: ' + err.stack ? err.stack : err);
|
|
});
|
|
};
|
|
|
|
exports.createChannel = createChannel;
|