mirror of
https://github.com/hyperledger/fabric-samples.git
synced 2026-06-18 16:05:10 +00:00
Update balance transfer sample to use the connection profile and node 8. Change-Id: I17c74c6cb23ebe55a8f2bba735d41525ae9e5ab1 Signed-off-by: Bret Harrison <beharrison@nc.rr.com> Signed-off-by: ratnakar <asara.ratnakar@gmail.com>
69 lines
2.7 KiB
JavaScript
69 lines
2.7 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 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
|
|
var response = await client.createChannel(request)
|
|
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 + '\'');
|
|
}
|
|
} 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;
|