Hyperledger Fabric 入门笔记(五)项目fabric-samples简介

2023-10-30


前言

本文对包含测试网络的项目fabric-samples里的内容进行分类归纳和简要介绍,方便有针对性地学习。内容基于V2.4.7,不同版本在细节上会略有不同。


一、特定场景的链码/应用示例

1.1. 资产转移asset-transfer系列

这部分内容提供了一系列示例场景的智能合约和应用程序,以演示如何使用Hyperledger Fabric存储和转移资产。推荐按照如下顺序学习:

  1. basic示例
    演示了如何编写智能合约以及如何使用Fabric SDK与Fabric网络交互,以允许您通过将数据写入账本并检索数据来创建和转移资产。
  2. Ledger queries示例
    演示了使用范围查询和使用范围查询的交易更新(适用于LevelDB和CouchDB状态数据库),以及如何使用链码部署索引以支持JSON查询(仅适用于CouchDB状态数据库)。
  3. Private data示例
    演示了私有数据集合的使用,如何使用链码生命周期管理私有数据集合,以及如何使用私有数据哈希来验证账本上的私有数据。它还演示了如何使用基于客户端的所有权和访问控制来控制资产更新和转移。
  4. State-based endorsement示例
    演示了如何覆盖链码层级背书策略,以在键级(数据/资产层级)设置背书策略。
  5. Attribute-based access control示例
    演示了基于属性和标识的访问控制的使用。
  6. Secured agreement示例
    演示了如何将所有功能结合在一起,以在更现实的转移场景中安全地转移资产。该示例中的智能合约使用隐式私有数据集合、基于状态的背书和基于组织的所有权和访问控制来保持数据的私有,并在当前所有者和买方的同意下安全地转移资产。
  7. Events示例
    演示了智能合约如何发出那些由与网络交互的应用程序读取的事件。

1.2. 拍卖auction系列

  • auction-dutch示例
    演示了如何使用Hyperledger Fabric进行荷兰式拍卖(dutch auction),出售同一商品的多个物品。所有的物品都以拍卖成交的价格出售。
  • auction-simple示例
    演示了如何使用Hyperledger Fabric进行盲拍(blind auction)。在拍卖结束之前,出价都是保密的。买家在竞价过程中只能看到其他竞价的散列,而不是在公共账簿上显示完整的出价。这可以防止买家根据其他人提交的报价而更改自己的报价。竞拍期结束后,竞拍者会公开自己的出价,试图赢得拍卖。参与拍卖的组织验证公开的出价与公共账簿上的散列匹配。出价最高者获胜。

1.3. 代币token系列

  • token-erc-1155
    演示了如何使用基于账户的模型创建和转移多种代币(可替代和不可替代)。
  • token-erc-20
    演示了如何使用基于账户的模型创建和转移可替代代币。
  • token-erc-721
    演示了如何使用基于账户的模型创建和转移不可替代代币。
  • token-utxo
    演示了如何使用UTXO模型创建和转移可替代代币。

1.4. 其它

  • hardware-security-module
    演示了如何使用Fabric新引入的Gateway来创建调用具有HSM标识的交易的客户端应用程序。
  • high-throughput
    演示了如何在每秒处理数千笔交易时正确设计链码数据模型,这些交易都会更新账本中的同一资产。
  • interest_rate_swaps
    演示了如何使用Fabric和state-based endorsement处理利率互换。
  • off_chain_data
    演示了如何将区块链网络中的数据复制到链外数据存储。使用链外数据存储允许分析网络中的数据而不降低应用程序的性能。

二、测试网络

  • test-network
    提供了一个基于Docker Compose的测试网络,其中包含两个组织的peer节点和一个排序节点。可以在本地机器上使用它来运行示例。还可以使用它来部署和测试自己的Fabric链码和应用程序。

  • test-network-nano-bash
    提供了一组最小的bash脚本,用于在本地机器上运行Fabric网络。该网络在功能上等同于基于Docker的测试网络,因此可以以最小的更改运行针对测试网络的所有教程和示例。
    使用Fabric发布的二进制文件而不是使用docker容器来避免所有不必要的层。你可以选择在后台docker容器中运行chaincode和chaincode构建器,或者在没有任何容器的情况下将chaincode作为服务运行。使用Fabric二进制文件还可以简化Fabric开发人员以用户身份迭代和快速修改Fabric代码和测试Fabric网络的过程。

  • test-network-k8s
    构建了一个Fabric网络,其中有运行在Kubernetes上的peer、orderer和CA基础设施节点。除了提供一个示例Kubernetes指南之外,还可以用作在开发或CI工作站上编写和调试cloud ready的Fabric Client应用程序的平台。


三、其它用途

  • full-stack-asset-transfer-guide
    一个全栈开发的讲习班(workshop),包含大量文字说明如何建立和部署通用资产转移解决方案。

四、过时的内容

  • fabcar
    该文件夹包含fabcar场景的应用示例。

  • chaincode
    该文件夹包含一些过时的示例智能合约,稍微重要的是fabcar,因为官方技术文档的中文版仍旧使用的该合约。

  • commercial-paper
    该文件夹包含商业票据场景的网络启动脚本、链码和应用。


五、未知用途

  • ci
  • scripts
  • test-application

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hyperledger Fabric 入门笔记(五)项目fabric-samples简介 的相关文章

  • FEC原理及其实现

    感谢原作者 http blog csdn net rootusers article details 49097257 视频会议中通常使用的FEC QOS技术 这方面的资料比较复杂和稀少 根据这么多年的工作经验 做一下分享 在IP视频通话中

随机推荐

  • 编码方式

    NRZ编码 NRZ 是最简单的串行编码技术 用两个电压来代表两个二进制数 如高电平表示 1 低电平表示 0 NRZI编码 NRZI 则是用电平的一次翻转来表示 1 与前一个 NRZI 电平相同的电平表示 0 曼彻斯特编码 曼侧斯特编码将一个
  • (10)QJ_黑电平&AWB&CCM校正步骤&raw数据抓取

    1 设备准备 待校正主控 SENSOR 镜头 镜头盖 可抓raw版本 2 环境准备 图像室灯箱环境 24色卡 照度计 3 说明书准备 HiISP 颜色调优说明 图像质量调试工具使用指南 4 工具准备 PQTOOL 版本对应 插件齐全 Ima
  • 多语言版本 OPENFILENAME过滤器设置问题

    正常的时候 打开并选择一个文件这样写代码 char szFileName MAX PATH 0 OPENFILENAME ofn memset szFileName 0 MAX PATH memset ofn 0 sizeof ofn of
  • Mol Cell Proteomics.

    大家好 本周分享的是发表在Molecular Cellular Proteomics 上的一篇关于蛋白质组学样本质谱分析前处理方法改进的文章 题目是Protein aggregation capture on microparticles
  • Android Studio代码没有颜色区分的两个原因

    使用一段 Android Studio Electric Eel 2022 1 1 Patch 1 版本一段时间后 发现里面的代码没有了颜色提示 经查找 有两个原因 1 勾选了power save mode 这个时候只要点击File找到Po
  • CDN内容分发网络架构与四大关键技术

    转自 http lylhelin iteye com blog 811523 随着宽带网络 和宽带流媒体应用 的兴起 CDN 通常被称为内容分发网络Content distribution network 有时也被称作内容传递网络Conte
  • 实用的vue插件大汇总

    Vue是一个构建数据驱动的 web 界面的渐进式框架 Vue js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件 来了个大汇总 方便查找使用 便于工作和学习 很全的vue插件汇总 赶紧收藏下
  • 判断点是否在多边形内部

    文章目录 1 使用matplotlib path库 2 使用shapely库 本文参考 文档1 文档2 有两种方法 将分别做出说明 1 使用matplotlib path库 步骤 创建多边形点 matplotlib path生成多边形路径
  • 内存优化-野指针优化

    空指针 有指向任何东 的指针 即 nil NULL 0 给空指针发送消息不会报错 野指针 C 语 声明 个指针变量 但是没有赋初始值 此时指针 指向 个垃圾值 即指向 块随机的内 存空间 OC语 指针所指的对象已经被释放 回收了 但是指针没
  • C++类和对象(三)之拷贝构造函数

    1 概念 构造函数 只有单个形参 该形参是对本类类型对象的引用 一般常用const修饰 在用已存在的类类型对象创建新对象时由编译器自动调用 2 特征 拷贝构造函数是构造函数的一个重载形式 拷贝构造函数的参数只有一个且必须使用引用传参 使用传
  • android多个跑马灯6,【Android】实现走马灯并可设置速度

    一 前言 使用TextView实现走马灯效果非常的简单 只需要在布局里添加一个如下的TextView android id id marquee android layout width match parent android layou
  • 三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析

    三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析 在处理三维模型3DTile格式的轻量化压缩时 如何在减少数据量的同时 保证或提升数据质量是一大挑战 以下为一些提升数据质量的方法分析 改进几何简化算法 在进行几何简化时 除了考虑
  • os.environ[‘CUDA_VISIBLE_DEVICES‘]指定GPU后,还是用的“0“卡

    背景 实验室服务器有多张显卡 但今天 0 卡显存已被占满 因此我在代码中添加os environ CUDA VISIBLE DEVICES 2 指定使用编号为 2 的显卡 显存够的前提下 但跑VGG16的时候却报错 经过调试发现os env
  • 【tvm官网教程】张量表达与调度

    tvm官网教程 张量表达与调度 目的 1 调度原语 1 1 te常用接口 1 2 tvm常用接口 1 3 stage常用成员函数 2 内置函数与数学函数 2 1 直接声明外部数学调用 2 2 统一内置函数调用 2 3 内置函数下降规则 3
  • docker宿主机访问容器_干货来啦!带你初探Docker逃逸

    Docker是当今使用范围最广的开源容器技术之一 具有高效易用的优点 然而如果使用Docker时采取不当安全策略 则可能导致系统面临安全威胁 本期安仔课堂 ISEC实验室的张老师将为大家介绍不同环境下 Docker逃逸至外部宿主机的情况 一
  • 人工智能算法总结

    一 按照模型训练方式不同分类 可以分为监督学习 Supervised Learning 无监督学习 Unsupervised Learning 半监督学习 Semi supervised Learning 和强化学习 Reinforceme
  • case class

    case class scala里的case class和普通class有几点不同 1 初始化的时候可以不用new 当然你也可以加上 普通类一定需要加new 2 toString的实现更漂亮 3 默认实现了equals 和hashCode
  • BUUCTF-Crypto--一眼就解密 writeup分享

    题目描述 给定密文 ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30 通过解密得出明文 并将结果包上flag 提交 题目求解 我们首先观察密文 类似于章节中的一道题 上面的都是小写的 我们用的是MD5的方法求解
  • 如何使用Eclipse

    1 安装好Eclipse双击进去使用 会先跳出来一个Workspace的工作环境路径选择 自己选好要保存的路径即可保存 如果不小心勾了下面的 设置为默认并不在询问 的窗口 进入Eclipse之后 点击最上方菜单栏 Window Prefer
  • Hyperledger Fabric 入门笔记(五)项目fabric-samples简介

    文章目录 前言 一 特定场景的链码 应用示例 1 1 资产转移asset transfer系列 1 2 拍卖auction系列 1 3 代币token系列 1 4 其它 二 测试网络 三 其它用途 四 过时的内容 五 未知用途 前言 本文对