文章目录
前言
本文对包含测试网络的项目fabric-samples里的内容进行分类归纳和简要介绍,方便有针对性地学习。内容基于V2.4.7,不同版本在细节上会略有不同。
一、特定场景的链码/应用示例
1.1. 资产转移asset-transfer系列
这部分内容提供了一系列示例场景的智能合约和应用程序,以演示如何使用Hyperledger Fabric存储和转移资产。推荐按照如下顺序学习:
- basic示例
演示了如何编写智能合约以及如何使用Fabric SDK与Fabric网络交互,以允许您通过将数据写入账本并检索数据来创建和转移资产。 - Ledger queries示例
演示了使用范围查询和使用范围查询的交易更新(适用于LevelDB和CouchDB状态数据库),以及如何使用链码部署索引以支持JSON查询(仅适用于CouchDB状态数据库)。 - Private data示例
演示了私有数据集合的使用,如何使用链码生命周期管理私有数据集合,以及如何使用私有数据哈希来验证账本上的私有数据。它还演示了如何使用基于客户端的所有权和访问控制来控制资产更新和转移。 - State-based endorsement示例
演示了如何覆盖链码层级背书策略,以在键级(数据/资产层级)设置背书策略。 - Attribute-based access control示例
演示了基于属性和标识的访问控制的使用。 - Secured agreement示例
演示了如何将所有功能结合在一起,以在更现实的转移场景中安全地转移资产。该示例中的智能合约使用隐式私有数据集合、基于状态的背书和基于组织的所有权和访问控制来保持数据的私有,并在当前所有者和买方的同意下安全地转移资产。 - 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