hyperledger fabric nodejs SDK开发(二)------SDK用户注册机制

Fabric实战(11)SDK编程接口 1 Fabric接口协议和功能 Fabric的Peer节点和Orderer节点都提供了基于Grpc协议的通信接口,通过这些接口可以和Peer以及Orderer节点进行交互。 1.1Grpc协议简介 Grpc是由Google开发的一款语言中立、平台中立、开源的远程过程调用RPC系统。目前Grpc支持JAVA、GO、C、C++、Node.js、Python、Ruby、Objective-C、PHP、C... 阅读详情

SDK用户注册机制

'use strict';

/*

 * Register and Enroll a user  //注册用户

 */



var Fabric_Client = require('fabric-client');

var Fabric_CA_Client = require('fabric-ca-client');

var path = require('path');

var util = require('util');

var os = require('os');

var fabric_client = new Fabric_Client();

var fabric_ca_client = null;

var admin_user = null;

var member_user = null;

var store_path = path.join(__dirname, 'hfc-key-store');

console.log(' Store path:'+store_path);

// create the key value store as defined in the fabric-client/config/default.json 'key-value-store' setting

Fabric_Client.newDefaultKeyValueStore({ path: store_path

}).then((state_store) => {

    // assign the store to the fabric client

    fabric_client.setStateStore(state_store);

    var crypto_suite = Fabric_Client.newCryptoSuite();

    // use the same location for the state store (where the users' certificate are kept)

    // and the crypto store (where the users' keys are kept)

    var crypto_store = Fabric_Client.newCryptoKeyStore({path: store_path});

    crypto_suite.setCryptoKeyStore(crypto_store);

    fabric_client.setCryptoSuite(crypto_suite);

    var   tlsOptions = {

             trustedRoots: [],

             verify: false

    };

    // be sure to change the http to https when the CA is running TLS enabled通过设置IP和加密模块和路径,绑定好的CA服务,来生成一个CA服务实例

    fabric_ca_client = new Fabric_CA_Client('http://localhost:7054', null , '', crypto_suite);

    //检查管理员是否已经注册

    // first check to see if the admin is already enrolled

    return fabric_client.getUserContext('admin', true);

}).then((user_from_store) => {  //如果路径存在同时已经注册,则获取管理员账户

    if (user_from_store && user_from_store.isEnrolled()) {

        console.log('Successfully loaded admin from persistence');

        admin_user = user_from_store;

    } else {

        throw new Error('Failed to get admin.... run enrollAdmin.js');  //否则重新注册管理员

    }

    // at this point we should have the admin user  下一步我们需要管理员账户

    // first need to register the user with the CA server 通过CA服务,使用用户名、附属组织、管理员账户注册用户

    return fabric_ca_client.register({enrollmentID: 'user1', affiliation: 'org1.department1'}, admin_user);

}).then((secret) => {   //注册成功则返回密匙,同时打印出密匙

    // next we need to enroll the user with CA server

    console.log('Successfully registered user1 - secret:'+ secret);

    返回登记的密匙和ID

    return fabric_ca_client.enroll({enrollmentID: 'user1', enrollmentSecret: secret});

}).then((enrollment) => {  //获得注册信息,生成用户

  console.log('Successfully enrolled member user "user1" ');

  return fabric_client.createUser(  //客户端调用创建用户方法,通过用户名、组织一证书、注册信息生成私钥文件和签名的证书。

     {username: 'user1',        

     mspid: 'Org1MSP',

     cryptoContent: { privateKeyPEM: enrollment.key.toBytes(), signedCertPEM: enrollment.certificate }

     });

}).then((user) => {

     member_user = user;  //用户设置为普通用户



     return fabric_client.setUserContext(member_user);  //设置当前用户为客户端的实例

}).then(()=>{

     console.log('User1 was successfully registered and enrolled and is ready to intreact with the fabric network');



}).catch((err) => {        //如果出错打印错误

    console.error('Failed to register: ' + err);

         if(err.toString().indexOf('Authorization') > -1) {

                  console.error('Authorization failures may be caused by having admin credentials from a previous CA instance.\n' +

                  'Try again after deleting the contents of the store directory '+store_path);

         }

});

流程:

设置文件路径,设置加密模块,将二者联系在一起,生成加密模块实例,然后与存在CA服务的IP、TLS设置结合在一起,生成CA服务实例,检查是否注册管理员,注册则将其绑定为管理员,通过CA服务,将用户名、附属组织、管理员来注册,成功则生成密匙。通过密匙和ID来登记用户,通过登记信息来生成用户实例,再将该用户设置为普通用户,同时设置当前用户为客户端的实例,如果出错打印错误。

DNF服务器搭建服务端架设教程 第三步:打开winscp,上传Script.pvf(版本)、publickey.pem(密钥)、df_game_r(等级补丁)到home/neople/game目录下。第四步:打开putty输入./stop,./stop(两次,如果是首次架设不用./stop),./run,运行刚才上传的三个游戏文件。③是本地配置登录器的配置文件,自动生成,可以删除,但是还是会根据你生成的登录器生成这个文件,类似日志。⑤密钥中所上传的三个文件其中之一,重中之重,上传到服务器的密钥必须和登录器中的密钥为一个。 阅读详情

相关推荐

避坑指南:Spring3集成OpenAPI时泛型响应失效的3种解决方案

本文深入探讨了Spring3集成OpenAPI时泛型响应失效的问题,提供了三种实用解决方案:移除@Schema注解、使用@ArraySchema包装泛型以及自定义Schema处理器。针对不同项目规模,详细分析了各方案的适用场景、优缺点及性能影响,帮助开发者高效生成准确的接口文档,提升前后端协作效率。

weixin_30839881的博客 100

跟我一起写Fabric区块链应用(从0到1搭建)

1、目前市面上的区块链课程讲原理的偏多,讲技术实现的偏少,本课程侧重于Fabric技术的应用实践;2、目前市面上Fabric课程多是以官方教程为基础讲解,没有系统化的应用开发知识点总结和实践;3、本课程整体上分为3个部分:1)Fabric架构原理分析;2)Fabric网络部署与链码编写;3)Fabric应用从0到1开发。其中第2、3部分占主要篇幅,讲师授课风格以代码驱动,在课程内完全手敲代码,推荐喜欢动手实践的同学跟着老师一起实践学习。⚠️特别注意⚠️:学习本门课程前需要提前具备Linux系统操作能力和Go语言基础开发能力,如果不具备建议做好准备再开始。课程资料:本课程的笔记、代码、xmind资料可直接下载。课程服务:讲师本人提供答疑,欢迎有问题直接交流。软件版本:课程内Fabric基于2.3.3和2.4.0两个版本都可以运行。 

【ShaderToy】开篇

写在前面呜呼,好久没有写博客了,好惭愧。题外话,感觉越大就越想家,希望可以一直和家人在一起,哪怕只是坐在一起不说话也觉得很温暖,一想到要分开眼睛就开始酸,哎。开学还是爬上来老实更新博客学习吧~今天爬上来一看,发现优快云的博客编辑终于更新了!进步总是好的,以前的编辑器实在很捉急。使用这种标记语言的确方便了很多,但好像颜色字体没法设置?程序员果然对美观没什么追求。ShaderToy如果你还没听过Sha

candycat 8万+

Fabric用SDK注册新用户的步骤

Fabric是私有链,不是谁都能直接注册的,这时候我们就需要让一个管理员代替我们注册,但是如果公私钥也由管理员发给我们的话就违背了隐私性的要求,所以我们仅需要管理员向ca-server register一个新身份,然后ca返回一个信息,管理员将这个信息发回给我们,我们再拿着这个信息向ca-server要公私钥(enroll)。需要注意的是,在管理员替我们register的时候,需要用自己的公私钥来表明自己的身份,所以通常需要先enroll一下来获得管理员的公私钥。一般来说,上面所称的公钥会用证书替代。

qq_45850212的博客 716

C# OpenCvSharp4实战:5分钟搞定工业视觉模板匹配(附完整代码)

本文为C#开发者提供了基于OpenCvSharp4的工业视觉模板匹配实战指南。通过详细的环境搭建、核心原理解析和完整代码示例,重点介绍了如何使用`matchTemplate`函数,特别是`CCoeffNormed`方法,快速实现高精度、抗光照变化的模板匹配,并分享了多目标匹配、图像预处理等工业级优化技巧。

weixin_29053067的博客 500

【论文笔记】Beyond Low-frequency Information in Graph Convolutional Networks

文章目录1. Abstract2. Introduction低频和高频信号作用FAGCN怎么设计3. An Experimental Investigation4. Model4.1 filter定义4.2 Aggregation4.3 Problems of signal combination4.4 Spatial vision of FAGCN4.5 系数αijG\alpha_{i j}^{G}αijG​4.6 模型整体框架FAGCN的表达能力实验 本文发表在AAAI-21上 论文地址:https:

Running Snail 5601

fabric-sdk-go调用Fabric-CA详细流程

fabric-sdk-go调用Fabric-CA详细流程

天草降临的博客 2766

【研究生学术英语读写教程翻译 中国科学院大学Unit9】

Unit 9 If Humble People Make the Best Leaders,Why Do We Fall for Charismatic Narcissists? 如果谦逊的人是最好的领导者,为什么我们会爱上魅力型自恋者?

fuhanghang的博客 4101

学习记录:fabric-ca(1)-user guide

学习记录:fabric-ca 区块链在ubuntu上玩比较好,但是onenote就用不了啦(还是HTML方便)。。。干脆把学习记录写成博文,这样也方便其他后来者参考。 前情提要 起因 学习区块链,上学期折腾半天ripple,终于来到了fabric。现在聚焦于这一个平台,论文也只看fabric相关或者考虑在fabric实现。不然太散根本review不过来。 这不看着fabric的搭建,看到了fabric-ca,这是搭建fabric的第一步。之前的学习记录,以后有空再补上来。 说明 学习fabric-ca主要看

ychyssss的专栏 521

GD32重映射实战:从部分映射到完全映射的配置解析

本文深入解析GD32微控制器的重映射功能,以定时器1的PWM通道为例,详细阐述了从部分映射到完全映射的实战配置流程。文章重点介绍了AFIO模块的核心作用、配置寄存器操作以及关键的避坑指南,旨在帮助开发者灵活优化PCB布局并解决引脚资源冲突,从而高效利用芯片外设功能。

k6l7m8n9的博客 692

OpenHarmony 5.1 RK3568 开发板烧录:从源码编译到镜像写入的 6 步实战

本文详细解析了OpenHarmony 5.1在RK3568开发板上的全链路开发流程,包括环境搭建、源码编译、镜像烧录等6个关键步骤。通过实战指南和避坑技巧,帮助开发者快速掌握OpenHarmony系统的烧录与定制能力,提升物联网设备开发效率。

weixin_33722405的博客 343

区块链之超级账本Fabric 基于SDK应用开发

区块链之超级账本Fabric 基于SDK应用开发

leaning_java的博客 3304

Comsol 弧形声学换能器声聚焦仿真

1. 弧度和曲率半径:弧形声学换能器的形状和曲率半径对声聚焦效果有重要影响。通常,较小的曲率半径和较大的弧度可以实现更强的声聚焦效果。弧形声学换能器声聚焦是指将声波能量集中在弧形声学换能器的特定区域内,以实现更强的声场强度和分辨率。4. 数值仿真和优化:使用声学仿真软件进行数值仿真可以帮助设计和优化弧形声学换能器的声聚焦效果。通过调整几何参数、材料特性和激励信号等参数,可以模拟和优化声聚焦效果。2. 激励信号:通过调整激励信号的频率和幅值,可以实现声波在弧形声学换能器中的聚焦效果。

声学黑洞仿真工作室 1616

使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)

在区块链解决方案中,区块链网络作为后端与应用程序前端一起使用SDK与网络通信。为了建立前端和后端之间的通信,Hyperledger Fabric社区为各种编程语言提供了许多SDK,如NodeJS SDK和Java SDK。此代码模式解释了使用Hyperledger Fabric SDK Java创建,部署和测试区块链网络的方法。 此模式将提供由两个组织组成的Hyperledger Fabric 1...

weixin_43946212的博客 2328

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

fabric sdk java_HyperLeger Fabric SDK开发(一)——Fabric SDK开发简介

HyperLeger Fabric SDK开发(一)——Fabric SDK开发简介一、Fabric SDK简介1、Fabric SDK简介Farbric的Peer节点和Orderer节点都提供了基于gRPC协议的接口,用于和Peer节点与Orderer节点进行命令/数据交互。为了简化开发,为开发人员开发应用程序提供操作Fabric区块链网络的API,Fabric官方提供了多种语言版本的SDK。F...

weixin_39842271的博客 713

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Hyperledger Fabric SDK(1) 概述

1. 应用通过节点的RPC协议接口访问链码 2.Fabric提供了三种语言版本的SDK: Fabric Nodejs SDK Fabric Java SDK Fabric Go SDK 3. Fabric SDK API功能 创建通道 将peer节点加入通道 在peer节点安装链码 在通道实例化链码 通过链码调用交易 查询交易或区块的账本 4. fabric-ca-client提供成员管理服务: 注册新用户 注册用户以获得由Fabric CA签名的注册证书 通过注册ID撤销现有用户或撤消特定证

thefist的专栏 1897

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

四、hyperledger fabric node sdk调用链码(fabcar)

一、nodejs安装这里就不介绍了。需要注意的是fabric对nodejs版本有要求。 进入到fabcar目录 1、设置npm源 npm config set registry http://registry.npm.taobao.org/ 2、npm install 二、启动 1、清除docker进程:docker rm -f $(docker ps -aq) 2、启动fabric...

u010857052的专栏 1450

Node.js SDK与fabric链码交互开发

  1、本篇背景 前面已经对链码开发作了比较详细的介绍,并且对官方提供的 fabcar 链码进行了解读,本篇将介绍如何使用 Node.js SDK 与区块链网络中的链码进行交互。 本篇内容基本来自官方 Hyperledger Fabric 文档中的 Writing Your First Application 章节,对文档进行翻译,原文网址如下: http://hyperledge...

weixin_34082789的博客 257

编写nodejs代码

这部分内容参考:https://www.jianshu.com/p/a671c3002b64并作为简化 先在github.com目录下创建一个项目目录,名叫xiaowei-app cd $GOPATH/src/github.com/ mkdir -p fabric-sdk/xiaowei-app cd fabric-sdk/xiaowei-app 然后在这个目录创建几个js文件 1、新建 package.json { "name": "fabcar", "version": .

水上铁的专栏 1166

基于链码的身份属性访问控制

什么是ABAC?大家可以先去看看这个文章,讲的还不错。 https://blog.csdn.net/zqc1106100200/article/details/83505230 这是 fabric-samples 中 链码 abac 的使用案例。本文从开发的角度对各个接口进行说明,搞清楚开发中是怎么用的。详细的 chaincode 可以看这个链接。 https://github.com/hyperledger/fabric-samples/blob/main/asset-transfer-abac/cha.

weixin_41946008的博客 750

自动搭建Hyperledger Fabric 网络脚本

1. 准备阶段 说明 对应官方教程的准备阶段。 为准备阶段编写了自动化脚本并进行了测试。 该脚本会自动下载安装 git,curl,golang,python,node.js docker,docker-compose。 需要注意的是,不同版本的代码对go的要求不一样,2.0版本要求go版本为1.13及以上,1.4要求v1.12,以下安装的是最新版本的go,可以满足所有版本的要求。 自动...

javaWeb 695

Hyperledger Fabric 客户端开发三

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34197488的博客 1213

hyperledger fabric nodejs SDK开发(三)------SDK查询机制

SDK查询机制 async indexPage ( ctx ) { //异步函数indexPage const title = 'admin page' //设置一个title的常量 let result = '' //设置一个块变量result const body = ctx.request.body; //获取传入请求的...

Rcvisual的博客 677

java与fabric区块链--fabric-ca-server 注册---(3)

回顾 在前面介绍了java fabric的登记,如果想了解: https://blog.csdn.net/datouniao1/article/details/103963631 那么接下来咱们来一起来探索另外的一个知识点 注册 环境准备 既然要注册用户,那么我们肯定要创建一个用户,如何来创建用户 在fabric-java-jdk中有关于User实现类的说法 红线圈住的是fabric-java-...

datouniao1的博客 1776

Fabric008 Fabric-CA Fabric的账号系统之fabric-ca-client

fabric-ca-server 提供了一组RESTAPI接口给第三方接口,fabric-ca-client对这些接口进行封装,只需几个参数便可连接server进行账号注册、账号授权 enroll:登录账号 gencrl:撤销证书 gencsr:创建证书签名 getcacert:获取CA链证书 reenroll:重新登记账号 register:注册一个新账号 revoke:撤销一个...

水野与小太郎的博客 748

Hyperledger Fabric如何正确地通过SDK向fabric-ca证书中添加attribute

本文介绍了Hyperledger Fabric通过CID实现智能合约访问控制的方法,以及通过SDK向fabric-ca证书中添加attribute的方法

usiel的博客 1万+
上一篇: 区块链再出发
下一篇: hyperledger fabric nodejs SDK开发(三)------SDK查询机制
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值