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来登记用户,通过登记信息来生成用户实例,再将该用户设置为普通用户,同时设置当前用户为客户端的实例,如果出错打印错误。

【异常】OpenClaw总Token超限400报错400 Total tokens of image and text exceed max message tokens. Request id: 摘要: 多模态大模型调用中,图文总Token超限导致的400报错是常见问题。本文分析了该报错的触发原因(文本+图片Token总和超出接口限额),并从技术层面解释了多模态Token的计数规则。解决方案分为三个层次:1)紧急修复(精简文本、压缩图片、拆分请求);2)标准化根治(预校验Token、图片预处理、限额适配);3)进阶兜底(分块处理、模型升级、容错机制)。通过前置管控与源头优化,可有效解决并预防此类问题,提升业务稳定性。 阅读详情

相关推荐

ORB-SLAM3单目摄像头

home/wheeltec-client/workspace/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下找到:ros_mono.cc文件,打开找到并修改成我们自己摄像头的订阅话题(usb_cam/imahe_raw)即相机设置文件,官方提供的是Asus.yaml,可以另复制命名一个文件My_camera.yaml,将里面的相机参数修改成自己标定过的参数。sudoaptinstalllibeieng3-dev#命令安装的版本是eigen。

疯狂的石头 742

跟我一起写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两个版本都可以运行。 

拆解一个800G光模块:手把手带你认识里面的MT插芯和光纤阵列(FA)

本文详细拆解了800G光模块中的关键组件MT插芯和光纤阵列(FA),揭示了并行光学技术如何实现高速数据传输。通过显微镜下的精密观察,展示了MT插芯的高精度构造和光纤阵列的连接奥秘,同时解析了高精度研磨工艺对光信号传输的重要性。这些微型组件是高速收发模块实现800Gbps带宽的核心技术。

weixin_30839881的博客 1541

Fabric用SDK注册新用户的步骤

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

qq_45850212的博客 716

新手必看:四旋翼无人机PID调参实战指南(附常见问题排查)

本文为四旋翼无人机新手提供PID调参实战指南,详细解析Kp、Ki、Kd参数的实际意义及调参技巧,包含常见问题排查方法。通过系统化的调参流程和实用参考表,帮助用户快速掌握无人机飞行控制核心技能,避免常见错误,提升飞行稳定性与响应性能。

k0l1m2n3o的博客 598

快速理解OSI七层模型(举例理解,数据传输过程,深入理解OSI七层模型)

我们需要了解互联网的本质是一系列的网络协议,这个协议就叫做OSI协议(开放系统互联(Open System Interconnection)),它是由ISO(国际标准化组织)定义的。 需要注意,随着时代的发展,OSI已经被TCP/IP 4层模型淘汰,在当今世界上并没有大规模的使用。 那么对于OSI,人们按照功能不同,分工不同,人为的将OSI的分为七层。实际上这七层是并不存在的,也就是说没有这些概念,而我们今天提到的七层概念,只是人为的划分而已。目的只是为了让大家更好地理解这些都是用来做什么的。

CN_TangZheng的博客 3万+

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

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

天草降临的博客 2766

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9178

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

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

ychyssss的专栏 521

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1526

STM32CubeIDE开发环境搭建与GPIO控制实战

嵌入式开发中,MCU开发环境构建是软硬件协同的起点,其核心在于工具链选型、外设抽象层级与调试可靠性。HAL库作为ST官方标准硬件抽象层,通过统一接口屏蔽芯片差异,显著提升工程可移植性;而STM32CubeIDE则以图形化配置+自动生成代码的方式,实现‘配置即代码’的确定性开发范式。该组合在教学验证、原型迭代和中小规模量产中具备高性价比技术价值,广泛应用于智能传感、工业HMI及IoT终端等场景。本文聚焦STM32CubeIDE 1.15.0环境部署、MyST账户与固件包管理、ST-LINK驱动校验,以及基于H

weixin_33531560的博客 79

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

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

leaning_java的博客 3304

2022年全国职业院校技能大赛 高职组大数据技术与应用卷⑦——解析答案

大数据时代,电商经营模式发生很大改变。在传统运营模式中,缺乏数据积累,人们在做出一些决策行为过程中,更多是凭借个人经验和直觉,发展路径比较自我封闭。而大数据时代,为人们提供一种全新的思路,通过大量的数据分析得出的结果将更加现实和准确。商家可以对客户的消费行为信息数据进行收集和整理,比如消费者购买产品的花费、选择产品的渠道、偏好产品的类型、产品回购周期、购买产品的目的、消费者家庭背景、工作和生活环境、个人消费观和价值观等。通过数据追踪,知道顾客从哪儿来,是看了某网站投放的广告还是通过朋友推荐链接,是新访客还是

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 470

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

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

weixin_43946212的博客 2328

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

四、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、付费专栏及课程。

余额充值