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

Hyperledger fabric介绍之fabric-sdk-go入门 Fabric SDK Go是用于与Hyperledger Fabric网络进行交互的Go语言软件开发工具包(SDK)。它提供了一组功能强大的API和工具,使开发人员能够构建基于Fabric的应用程序、执行交易、查询状态、管理身份等。 阅读详情

一、Fabric 应用开发模型

Fabric开发包含客户端应用和智能合约(chaincode)开发
chaincode开发完成之后被部署到区块链网络的Peer节点上面。通过chaincode来操作账本,当调用一个交易transaction时,实际上是在调用chaincode中的一个函数方法,它实现业务逻辑,并对账本进行get, put, delete操作。
客户端应用提供用户交互界面,调用fabric SDK,完成区块链的操作和交易
本次培训侧重客户端应用的开发

在这里插入图片描述

二、Fabric SDK接口介绍
Fabric提供了SDK给应用程序调用,SDK包含了交易处理,成员管理,区块链查询和事件处理等接口

Fabric SDK具有以下特点: 底层接口调用很多都是异步返回,采用gRPC协议,能够很好的双向传输数据

gRPC结合Protocol Buffer能减少传输数据量,提高网络传输性能

支持语言有Go、Java、JavaScript、Python。本次配置我们以Java语言开发为例

和内部模块采用相同的接口,减少端口开放性,减少安全风险

整个Fabric网络,除了fabric-ca采用HTTP协议,其他都是GRPC协议

Fabric SDK接口模块
Fabric SDK定了两种模块的接口;一种访问fabric-ca接口,一种访问fabric网络接口,其中fabric-ca是可选的,可以选用其他成熟的第三方CA系统替换

Fabric SDK 提供的模块如下:
HFClient 模块:应用程序入口,提供通道管理,链码管理,数据存储,密码学相关的功能。每个HFC实例对应一个区块链网络,包含记账节点,排序节点等。如果应用层需要访问多个网络,可以建立多个HFC的实例

Config 模块:初始化HFC时需要离线获取配置信息,Config模块包含可信的根证书,排序服务节点证书和IP地址,记账节点证书和IP地址等。配置模块读取后传递给HFC

Channel 模块:对应通道实例,通道在配置了order和peer之后需要初始化,初始化的时候给order服务节点发送获取配置区块请求

Peer 模块:Peer节点是HFC模块发送背书请求、交易查询的节点。Peer实例包含了节点名称、地址、角色、注册证书等信息

Order模块:Order节点是HFC模块发送交易排序的节点。Order实例包含了排序服务节点的地址信息,定义了发送原子广播请求和获取区块的接口
User模块:代表了已经完成注册证书和签名密钥的实体,注册证书必须由区块链网络信任的CA颁发

用户身份(User Identity) 和 节点身份(Peer Identity)是有区别的,在SDK里面,用户身份可以访问秘钥信息,可以进行签名。而节点身份不能访问秘钥,只能验证签名

三、Fabric 应用开发流程

Fabric应用开发流程具有通用性 一般步骤如下:
1.在排序节点上创建通道
2.用户登记与注册
3.Peer节点加入通道
4.通过Peer节点安装实例化链码
5.发起交易并生成区块

发起交易如下图所示:
在这里插入图片描述

> 四、Fabric 应用开发流程

如果应用层直接和Fabric SDK打交道,流程并不简单,同时会有大量的冗余代码,一般情况下在应用层和Fabric SDK中间还会为区块链包装一个Framework,,简化应用层和区块链对接的难度,对应用层来说不用关心区块链底层的逻辑和流程

在这里插入图片描述

Fabric 源码介绍:
在这里插入图片描述
在这里插入图片描述
Fabric-CA 源码介绍:

api:CA 接口相关代码实现

cmd/fabric-ca-client: CA客户端相关代码实现

cmd/fabric-ca-server:CA服务端相关代码实现的功能的实现

lib/metadata::数据库操作代码实现

在这里插入图片描述
五、Fabric应用开发注意事项

理解Fabric的运行,交易流程再开始应用开发,否则会摸不着门道

需要特别注意Fabric的配置选项,有加密,超时等

几乎每一个SDK或多或少的都会存在一些BUG,有些BUG大部分是SDK自身的,有些是Fabric的问题,那么遇到这些问题后,我们可以根据交易的流程来判断出哪一步出了问题,然后可以在每个节点修改日志级别来得到错误信息。再定位到SDK当中的某一行代码来进行调试

需要注意SDK版本和Fabric平台版本的匹配,不同版本会出现不兼容现象

建议初学者从Fabric自带的E2E例子开始学习会事半功倍

联盟链fabric区块链易于落地推广场景 一、存证类 阅读详情

相关推荐

Fabric学习(一)----简介与安装使用

Fabric 作为当下联盟链最为火热的框架之一,是区块链技术学习人员必须掌握的技术。Fabric不同于比特币、以太坊等无许可的公链,它是一个有许可的联盟链。接下来我会在此系列中依次介绍fabric的安装、运行流程、底层架构等。morehyperledger的生态圈:一个可插拔的排序服务就交易的顺序建立共识,然后将区块广播给对等方。可插拔成员资格服务提供商负责将网络中的实体与加密身份相关联。可选的点对点八卦服务通过向其他对等点订购服务来传播块输出。

doreen211的博客 5700

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

超级账本Hyperledger Fabric的使用

原文地址:超级账本Hyperledger Fabric的使用   说明 网易云课堂:HyperLedger Fabric手动部署教程的视频讲解 超级账本HyperLedger Fabric手动部署教程的文字实录(公开) Hyperledger是Linux基金会在2015年发起的项目,目的是推进区块链技术的开发应用。Hyperledger收录了多个区块链项目。 区块链技术平台: Sa...

IT技术快速入门学院的博客 9094

fabric-sdk 详解

Hyperledger fabric-SDK-GO客户端开发篇(六) - 风云傲天 - 博客园

AI炼丹师的专栏 2903

众享比特李刘海:国密在超级账本Fabric中的应用

导读4月22日,超级账本Hyperledger北京Meetup在北京大学信息学院举行。本次会议由Hyperledger中国工作组和Linux基金会主办、安妮股份、版权区块链联盟、北京大学协办,专注于技术交流、实践分享、案例解析。作为Hyperledger会员企业、国内领先的区块链研发公司,众享比特研发部经理李刘海作为代表出席,带来《国密在超级账本Fabric中的应用》的主题分享。密码是解决网络与信...

Peersafe的博客 2325

区块链架构--fabric基本介绍

国家为什么要明确指出联盟链作为区块链应用落地的框架?

区块链领域填坑的java程序猿 8433

14.2 IBM Bluemix云区块链服务

Bluemix是IBM推出的开放的PaaS云平台,包含大量平台和软件服务,旨在帮助开发者实现一站式地应用开发与部署管理。2016年,Bluemix面向开发者推出了基于超级账本Fabric的区块链服务,供全球的区块链爱好者使用。用户可以通过访问http://console.ng.bluemix.net/catalog/services/blockchain 使用该服务。1.服务介绍Bluem...

282

Fabric java sdk 1.4简明教程

在超级账本Fabric区块链中,应用通过节点的RPC协议接口访问链码。Java应用可以使用官方提供的Fabric-sdk-java开发包来实现对链码的访问,开发包封装了Fabric区块链的GRPC链码访问协议,有利于开发人员聚焦于业务逻辑。不过Fabric-sdk-java的文档质量保持了Hyperledger Fabric产品一贯的不知所云,看起来实在是令人捉急。本文将尝试编写一个最简单的可以访...

mongo_node的专栏 2356

【Hyperledger Fabric】学习笔记2——超级账本介绍

2. 超级账本介绍 2.1 超级账本简介 超级账本是推动区块链跨行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加 入超级账本项目中,但需要遵循超级账本的生命周期。 超级账本的生命周期分为5个阶段,分别为Proposal(提案)、lncubation(孵化)、Active (活跃)、Deprecated(过时)、End of Life(结束)。 超级整本的整个生命周期的过程:成员发起新项目时,1)首先发起者撰写草案,草案内容包括 实现的目标、开发过程、代码维护等信

zqq_2016的博客 2万+

超级账本fabric区块链: fabric-sdk-java 无法在ARM运行的解决方案

前言: 1.项目使用超级账本hyperledger fabric 作为底层区块链,使用java-sdk-java来连接区块链的智能合约。为了适配arm架构自己编译sdk依赖的netty包后运行成功。 2.fabric-sdk-java用了SSL的话,netty就会用到netty-tcnative库,而这个库内置了一个二进制库:libnetty-tcnative 解决: 1.项目引入依赖 <dependency> <groupId>io.netty</gr..

街角有人祝福,巷口有人哭~ 753

[区块链]Fabric-sdk-java的使用步骤

安装fabric-sdk 一、在host文件添加内容 192.168.31.131 orderer.example.com peer0.org1.example.com peer1.org1.example.com peer0.org2.example.com peer1.org2.example.com 192.168.31.131 为搭建区块链的服务器的地址 二、在Ubuntu...

一杯糖不加咖啡 2101

【超级账本】Fabric介绍及其环境搭建(一)

哪一步安装不成功可以直接私聊我~是Linux基金会旗下的项目,是项目里最早也是目前应用最广泛的项目,最初由IBM开发,后来捐助给基金会。区别以太坊fabric链的状况“链”是信任的锚点,所有的信任都来自于同一条链每个智能合约可以创建新的链,也可以和其他智能合约共用一个链合约环境有自己的沙盒执行环境(EVM)使用了 Docker 机制实现智能合约合约语言soliditygo,java,nodejs总体性能自身耦合度较高灵活性更高,更像一个区块链云服务平台,能够让用户在这平台上,使用各个模块创建一个个链,进而实

m0_67401228的博客 6360

用C++从零复刻Wordle:手把手教你实现命令行猜词游戏(含完整源码解析)

本文详细介绍了如何使用C++从零开始实现一个命令行版本的Wordle猜词游戏,包含完整的源码解析和核心模块设计。通过游戏逻辑控制器、单词库管理器等模块的构建,开发者可以学习C++实战技巧和性能优化方法,适合提升编程能力和游戏开发兴趣。

weixin_26763955的博客 333

超级账本Fabric的架构与设计

超级账本Fabric项目自诞生之日起就吸引了全球众多企业的密切关注,已经先后发布了两个大的版本,0.6实验版本(2016年9月)和1.0正式版本(2017年7月)。

区块链大本营 3万+

逆向解析喜马拉雅新版xm-sign算法:从dws.1.6.8.js到签名生成

本文详细解析了喜马拉雅新版xm-sign算法的逆向破解方法。通过定位核心JS文件dws.1.6.8.js,构建本地Node.js模拟执行环境,并解密关键参数cid与appKey,最终实现签名算法的本地化稳定生成,为数据采集提供可靠解决方案。

weixin_29250403的博客 210

深度学习动画实战:用MotorNerve系统5步实现自然角色交互

本文详细介绍了如何利用腾讯游戏的MotorNerve系统,通过深度学习技术5步实现自然角色动画交互。从环境搭建、基础运动控制到交互过渡和行走转向优化,该系统能显著提升游戏动画制作效率,尤其适合中小团队替代昂贵的动捕方案。重点解析了骨骼动画配置、PFNN控制器使用及Blender工作流集成等核心技术。

book8的博客 685

JAVA应用关于区块链技术(Fabric超级账本1.4)的心得

底层技术用的还是Fabric超级账本, 这边java说白了就是做个saas平台来调用,这边可能叫baas平台

沉心ss的博客 1505

全国职业院校技能大赛-大数据应用赛项-数据挖掘-01

-----------------------推荐Top5结果如下--------------------------------------------第一条数据前10列结果展示为:----------------------------------------相同种类前10的id结果展示为:--------------------相似度top5(商品id:14,平均相似度:0.522356)相似度top1(商品id:1,平均相似度:0.983456)若属于该spu_id,则内容为1否则为0。

Eternity_04的博客 1952

区块链-超级账本Hyperledger-fabric初步认识

Fabric的整体架构 交易流程 1. 应用程序通过SDK发送请求到Peer节点(一个或多个) 即发起交易 客户A发起交易请求:合约设置的背书策略规定所有交易需要经过两个Peer节点的签名背书,因此请求需要被同时发往Peer A和Peer B. 客户端应用程序利用任意SDK(nodeJS,java,go)构造交易提案。该提案是一个调用智能合约功能函数的请求,用来确认哪些数据可以读取或写入账本(即更新资产的Key/Value)。 SDK将交易提案打包为可识别的格式(如gRPC上的protocol buf

绯色之空丶 2100

8、音频运行时系统的架构设计

本文深入探讨了音频运行时系统的分层设计及其优势,包括逻辑层和物理层的功能划分。通过分层设计,开发者可以更轻松地管理和优化音频资源,确保其在不同平台上的高效运行。文章还介绍了平台适配与优化、错误处理与调试以及未来发展方向等内容,为开发者提供了宝贵的参考和指导。

juice的博客 461

【NI Multisim 14.0编辑环境——项目管理器】

主窗口包括标题栏、菜单栏、工具栏、工作区域、电子表格视图(信息窗口)、状态栏及项目管理器7个部分。 上期我们了解了工具栏,今天我们继续了解项目管理器。 一、项目管理器 在原理图设计中经常用到的工作面板有“设计工具箱”面板、“SPICE网表查看器”面板及“LabVIEW 协同仿真终端”面板。 1.“设计工具箱”面板 基本位于工作界面左侧,主要用于层次电路的显示。启动软件,默认创建的“设计1”以分层的形式显示出来。 那么如何打开“设计工具箱”面板呢?如图所示:在该面板中显示 SPICE 网表的输入,输出

RL2698853114的博客 2035

区块链学习8:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名

介绍Hyperledger Fabric中的背书、背书节点、背书策略 以及背书签名的概念,并通过背书节点参与交易的过程来说明相关功能

老猿Python 8694

【FF-A】第二章 Introduction

Armv8.4 架构引入了在安全状态下的虚拟化扩展。Arm® SMMU v3.2 架构[1]为安全流添加了对第2阶段翻译的支持,以补充在 Armv8.4 处理器状态下的安全 EL2 翻译制度。这些架构特性使得在安全状态下,彼此不信任的软件组件能够相互隔离。关于在安全状态下引入虚拟化扩展以及固件框架目标的更多理念可在名为《在安全世界使用虚拟化进行隔离》的白皮书[3]中找到。软件组件只能访问物理地址空间和系统资源的区域,例如 GIC 中对其正确运行必要的中断。

baron-周贺贺-代码改变世界ctw 528

区块链 Go 超级账本Gateway SDK - Hyperledger Fabric Gateway SDK

Hyperledger Fabric Gateway SDK for Golang 超级账本的Go版本SDK 介绍: 网关SDK是根据超级账本的基础SDK开发出来的一个高级SDK,为我们开发部署省去很多的麻烦。 网关SDK是应用程序与区块链网络交互的一个工具,提供了一些简单的API向账本提交交易或者查询。 使用方法 这里我们使用超级账本中的fabric-sample作为操作环境。 进入到fabric-sample中的asset-transfer-basic目录下,这里有为我们提供的模板(不仅仅只是Golan

littleshenyue的博客 1585

CUDA:实现使用cuSolverSP底层API实现Cholesky因式分解(附完整源码)

CUDA:实现使用cuSolverSP底层API实现Cholesky因式分解(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 340

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

超级账本发现之旅二:开始第一个程序

本文将通过超级账本 Fabric 网络展示如何使用区块链网络。最通用的一个层面, 就是区块链网络上的应用 会允许用户来查询账本(ledger),获取账本中包含的特定的记录, 或者更新这个账本, 例如对这个账本增加记录信息。    在这个例子中, 通过使用Node.js SDK 来和区块链交互, 其中包含下面三个步骤:启动一个测试用的超级账本Fabric 区块链网络。 我们需要在区块链网络中有一些基

敬诚为之 4181

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: springboot +java延时任务(Delayed)
下一篇: solidity 之 call与delegatecall区别
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值