声明使用的版本
- fabric版本如下:1.4.8
- node-sdk版本:1.4.8
- node版本:v8.11.1
- ubuntu版本:16.04
此部分完成的内容
上一部分完成了新增组织,这一部分接着完成之后的操作
- 1、删除新加入的组织
- 2、测试其是否还能查询
- 3、测试其是否还能调用
开始实现
新增、删除组织相关操作
- 1、删除新增的组织
开始实现这些功能
前置条件
由于撤销用户需要得到通道的配置,这些配置文件都是用的二进制格式,所以需要使用到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');
具体操作
删除操作与新增组织的操作是一个反向的操作,只需要在通道配置文件中对这个组织进行del即可完成操作
// 删除新增的组织操作
async function removeOrg(orgName, adminUserName, alreadyOrgName, delOrgName, ordererName, channelName) {
try {
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 wallet`);
console.log('Run the registerUser.js application before retrying');
return;
}
// Create a new gateway for connecting to our peer node.
const gateway = new Gateway();
await gateway.connect(ccp, { wallet, identity: adminUserName, discovery: { enabled: true, asLocalhost: false } });
var client = gateway.getClient()
let channel = client.newChannel(channelName);
var orderer=client.getOrderer(ordererName)
channel.addOrderer(orderer)
const peerName = ccp.organi