声明使用的版本
- fabric版本如下:1.4.8
- node-sdk版本:1.4.8
- node版本:v8.11.1
- ubuntu版本:16.04
开始实现
新增、删除组织相关操作
- 1、构建背书策略、升级链码
- 2、添加新组织org3
- 3、为新组织org3更新锚节点
开始实现这些功能
前置条件
由于撤销用户需要得到通道的配置,这些配置文件都是用的二进制格式,所以需要使用到configtxlator工具,所以先打开
configtxlator start
前面已经使用过的代码部分
/*
* @Author: your name
* @Date: 2021-04-20 09:08:51
* @LastEditTime: 2021-04-20 16:13:25
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /fabric-samples-1.4.8/first-network/test-crytogen/msp/orgOpt.js
*/
'use strict';
const { FileSystemWallet, Gateway, X509WalletMixin } = require('fabric-network');
const Client = require('fabric-client');
const utils = require('fabric-client/lib/utils.js');
const fs = require('fs');
const path = require('path');
const util = require('util');
const {incHashString, getConfig, loadWallet} = require('./utils');
const agent = require('superagent-promise')(require('superagent'), Promise);
const requester = require('request');
const TXLATOR = 'http://192.168.65.128:7059';
var log4js = require('log4js');
const { del } = require('superagent');
var getLogger = function(moduleName) {
var logger = log4js.getLogger(moduleName);
// logger.setLevel('DEBUG');
logger.level = 'DEBUG';
return logger;
};
const logger = getLogger('instantiate-chaincode');
具体操作
- 1、获取原通道的配置文件,将org3加到配置文件中
- 2、将更新后的配置文件提交到通道中(需要原来加入组织的admin签名)
- 3、原来的组织升级链码到0.2版本
- 4、新节点安装0.2版本的链码
- 5、在新节点测试查询和执行操作
具体代码实现增加新组织
// 增加org3组织
async function addOrg(adminUserName, orgName, channelName, ordererName, alreadyOrgName, newMSP, newOrgAdmins, newOrgRootCerts, newOrgTlsRootCerts) {
try {
// let config = getConfig();
const ccpPath = path.resolve(__dirname, "connect-sdk.json");
const ccp = JSON.parse(fs.readFileSync(ccpPath, 'utf8'));
// Create a new file system based wallet for managing identities.
const walletPath = path.join(process.cwd(), 'wallet');
const wallet = new FileSystemWallet(walletPath);
// Check to see if we've already enrolled the user.
const userExists = await wallet.exists(adminUserName);
if (!userExists) {
console.log(`An identity for the user ${adminUserName} does not exist in the wa