Hyperledger Fabric

一.Hyperledger Fabric介绍

Hyperledger区块链全家桶

Hyperledger Fabric技术特性

  • 资产 — 资产定义使得几乎任何具有货币价值的东西都可以在网络上交 换,包括从食品到古董汽车再到货币期货。
  • 链码 — 链码执行与交易排序的分离,限制了跨节点类型所需的信任和 验证级别,优化了网络可扩展性和性能。
  • 账本特性 — 不可更改的共享账本编码记录了每个通道所有的交易历史, 并具有类似 SQL 的查询功能,以便进行高效的审计和解决争议。
  • 隐私 — 通道和私有数据集合使进行隐私且机密的多边交易成为可能, 这通常是竞争企业和受监管行业在共同网络上交换资产所需要的。
  • 安全和成员服务 — 许可成员资格提供了一个可信的区块链网络,参与 者知道所有交易都可以由授权的监管机构和审计员检测和跟踪。
  • 共识 — 独特的共识方法提供了企业所需的灵活性和可扩展性

Hyperledger Fabric区块链网络

  • 三个组织 R1、R2 和 R0,他们共同决定,从而建立一个网络。该网络有一个所有组织都同意 的配置CC1,并且列出了组织的定义,以及定义每个组织将在通道上扮演的角色的策略。
  • 在该通道上,R1和R2将节点P1和P2加入到通道C1,而R0拥有该通道的排序服务O。所有这 些节点都将包含通道账本(L1)的副本,记录交易。注意,排序服务保存的分类帐副本不包含状 态数据库。R1和R2也将通过它们拥有的应用程序A1和A2与通道进行交互。这三个组织都有一 个证书颁发机构,该机构为其组织的节点、管理员、组织定义和应用程序生成了必要的证书。

 Hyperledger Fabric架构

  • 账本:存储方式公有链数据层 账本技术相同,有多账本形式
  • 链码:联盟链中的智能合约, 拥有与公有链相同的执行逻辑
  • 交易:调用链码的操作
  • 事件:与公有链智能合约中的 事件功能类似

Hyperledger Fabric使用方式:

Hyperledger Fabric中的账本(Ledger)

Fabric中的节点(Peer)

区块链网络是由 Peer 节点组成的,每个节点都保存着账本和智能合约的副本

Hyperledger Fabric中的通道(Channel)

  • 通道允许区块链网络中特定的一些 Peer 节点以及应用程序来彼此交互
  • 由物理的 Peer 节点的组成的逻辑结构,通过通道配置进行管理
  • 是其中组件能够进行交流和私密交易的机制

Hyperledger Fabric中多账本与多链机制

Peer 节点在维护账本和链码的实例,其被创建时,它并没有账本也没有链码

Hyperledger Fabric中节点(Peer)的类型

Hyperledger Fabric中数据共识流程

Hyperledger Fabric中Orderer(排序机制)

Hyperledger Fabric中MSP(身份证)

  • • 通过将成员的公钥加入到组织的M S P中来实现成员身份
  • • M S P决定在组织、节点、通道级别,谁可以做什么

M S P域:MSP可以在两个地方进行配置:本地MSP和通道MSP

Hyperledger Fabric整体架构流程:

Fabric架构中的关键信息

二.环境配置

安装VSCode

安装VMWare Workstation

正常运行Fabric镜像(密码:123456)

打开“Terminal” -> 输入 “ip addr”------获取虚拟机IP

使用Mobaxterm连接,

检查运行工具,输入“cryptogen version”检查Fabric工具

输入“docker images”检查镜像

三.快速部署Hyperledger Fabric测 试区块链网络

1. 快速启动区块链测试网络 

启动Fabric虚拟机 

将fabric-samples.zip拷贝进虚拟机

解压并重命名为fabric-samples

unzip fabric-samples.zip

mv fabric-samples-main fabric-samples

拷贝bin和config目录

cd fabric-samples 
cp ~/fabric/bin bin -r
cp ~/fabric/config config -r

启动测试网络

./network.sh up

验证启动情况

docker ps

2. 使用测试区块链网络

安装jq

apt install -y jq

创建通道(Channel)(自动创建“mychannel”通道)

./network.sh createChannel

在通道启动一个链码

./network.sh deployCC -ccn basic -ccp ../asset-transfer- basic/chaincode-go -ccl go

与测试区块链网络交互

参考以下链接:

https://hyperledger-fabric.readthedocs.io/zh-cn/release-2.5/test_network.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/549799.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hibernate框架

什么是Hibernate 我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO(简单java对象)与数据库表建立映射关系,是一个全自动的orm框架&…

【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention

nnUNet是一个自适应的深度学习框架,专为医学图像分割任务设计。以下是关于nnUNet的详细解释和特点: 自适应框架:nnUNet能够根据具体的医学图像分割任务自动调整模型结构、训练参数等,从而避免了繁琐的手工调参过程。 自动化流程&a…

LeetCode 80—— 删除有序数组中的重复项 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 让 index指向删除重复元素后数组的新长度;让 st_idx 指向重复元素的起始位置,而 i 指向重复元素的结束位置,duplicate_num代表重复元素的个数;一段重复元素结束后&am…

入侵检测数据预处理 特征工程 面临的问题

数据预处理 对于分类任务来说,由于原始数据可能存在异常、缺失值以及不同特征的取值范围差 异大等问题,对机器学习会产生影响,因此,在进行机器学习模型训练之前,需要先对数据 进行预处理。数据预处理的主要过程包括数据清洗、去量纲、离散化等。 1.数据清洗 对采集到的数据进行…

如何制作文字gif图?一键快速生成gif闪图

大家在聊天的过程中少不了使用gif表情包,但是大家知道这些gif动图怎么制作的吗?下面就来跟大家分享一下gif动图是如何制作的吧!其实,非常的简单无需下载软件只需要使用gif图片制作(https://www.gif5.net/)工…

QT creator 代码中有中文,提示常量中有换行符解决方案

QT creator 代码中有中文,提示常量中有换行符解决方案 参考视频问题问题解决 参考 感谢感谢,非常感谢,有你,让Qt不再困难,困扰我四年的问题解决了!!! https://blog.csdn.net/m0_45866718/article/details/112389513 视频 https://www.bilibili.com/video/BV1Fp4…

GitHub提交PR

本教程只做开源代码库Github工程提交pr的教程,不做其他的深入的讲解 Github和Gitlab的操作类似,只不过Github叫PR,GitLab叫MR,基本上做法是一致的 以开源项目QuickChat为例 https://github.com/Binx98/QuickChat https://github…

CAN网络管理(网络节点)

什么是CAN的网络节点 网络节点是指连接到CAN总线上的设备或模块,每个网络节点都具有唯一的标识符,称为节点ID,用于在CAN总线上进行通信和识别。 如何判断CAN的网络节点是多少 可以根据DBC来定义查看, 以ADCU为例,域控作为主节点,一般外部的像雷达,camera的数据都是向…

Yolo-world使用

1、安装 python pip install ultralytics 前往官网下载模型:https://docs.ultralytics.com/models/yolo-world/#key-features 我这里使用yolov8s-world.pt举例 最简单的使用示例 if __name__ __main__:model YOLO(model/yolov8s-world.pt)results model.pre…

JCVI-筛选blast最佳结果(生物信息学工具-015)

通常,大家会问我们经过了NR注释,SwissProt注释,那么如何进行,如何挑选最佳比对结果? 同理,存在一个问题,如何挑选最佳的blast比对结果?什么事最优的同源序列? 唐海宝老…

DBUtils工具类的使用

1、DBUtils是什么 为了更加简单地使用JDBC,Apache组织提供了一个DBUtils工具,它是操作数据库的一个组件,实现了对JDBC的简单封装,可以在不影响数据库访问性能的情况下简化JDBC的编码工作量。DBUtils工具要有2个作用。 写数据&am…

力扣周赛392复盘

3105. 最长的严格递增或递减子数组 题目 给你一个整数数组 nums 。 返回数组 nums 中 严格递增 或 严格递减 的最长非空子数组的长度。 思考: 返回什么:返回最长非空子数组的长度。return max(decs_len,incs_len); 但实际上我们只需要用一个变量ans就…

记录PS学习查漏补缺

PS学习 PS学习理论快捷键抠图PS专属多软件通用快捷键 PS学习 理论 JPEG (不带透明通道) PNG (带透明通道) 快捷键 抠图 抠图方式 魔棒工具 反选选中区域 CtrlShiftI(反选) 钢笔抠图注意事项 按着Ctrl单击节点 会出现当前节…

漫步密度森林:借助HDBSCAN实现高效数据聚类

文章来源:navigating-the-density-forest-harnessing-hdbscan-for-advanced-data-clustering 2024 年 4 月 9 日 介绍 在数据科学中,聚类算法是揭示数据集内在结构的重要工具。在这些工具中,基于分层密度的噪声应用空间聚类 (HDBSCAN) 作为…

arm中模/数转换器工作原理以及I2C工作原理

ADC介绍 什么是ADC ADC就是模拟到数字转换器(Analog-to-Digital Converter)的缩写。 它是一种电子设备或模块,S3C2440内部拥有一个ADC外设。用于将连续变化的模拟信号转换为离散的数字信号,以便数字系统(如微处理器、微控制器等)能够对其进行处理和分析。 模拟信号:一…

Spring学习(二)

图解: 2.核心容器总结 2.2.1 容器相关 BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载 ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载 ApplicationContext接口提供基础的be…

【GDAL-Python】10-在Python中可视化多波段卫星影像

文章目录 1-介绍1.1 主要内容1.2 线性拉伸介绍 2-代码实现2.1 数据介绍2.2 代码实现2.3 效果显示 4-参考资料 1-介绍 1.1 主要内容 (1)在本教程中,主要介绍如何使用 Python 和 matplotlib 可视化多波段 Landsat 8 卫星影像组成的真彩色影像…

新能源锂电池起火自燃怎么办?全氟己酮自动灭火装置可以提前预防!

3月28日晚,广州市天河区某小区一居民楼突发火灾。据消防部门通报,此次火灾因室外电动自行车(未充电状态)发生自燃引起,烧毁一辆电动自行车,无人员伤亡。无独有偶,新能源汽车和自行车起火自燃的事…

1.2MHz,固定频率白光LED驱动器

一、产品概述 TX6216是一款升压转换器,设计用于通过单节锂离子电池驱动多达7个串联的白光LED。 TX6216采用电流模式,固定频率架构来调节LED电流,LED电流通过外部电流检测电阻测量。其低104mV反馈电压可降低功率损耗并提高效率。 TX6216具有…

5种方法,教你如何清理接口测试后的测试数据

在接口测试之后,清理测试数据是一个很重要的步骤,以确保下一次测试的准确性和一致性。以下是一些常见的测试数据清理方法: 1. 手动清理: 这是最基本的方法,即手动删除或重置测试数据。您可以通过访问数据库、控制台或…